<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>TeamAI on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/teamai/</link>
        <description>Recent content in TeamAI on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Wed, 09 Sep 2026 20:26:39 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/teamai/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>teamai-cli</title>
        <link>https://producthunt.programnotes.cn/en/p/teamai-cli/</link>
        <pubDate>Wed, 09 Sep 2026 20:26:39 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/teamai-cli/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1763911307513-02cf2f8b7c5d?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3ODg5NTY2ODF8&amp;ixlib=rb-4.1.0" alt="Featured image of post teamai-cli" /&gt;&lt;h1 id=&#34;tencentteamai-cli&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Tencent/teamai-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tencent/teamai-cli&lt;/a&gt;
&lt;/h1&gt;&lt;p align=&#34;center&#34;&gt;
  &lt;img src=&#34;assets/teamai-cli-logo.svg&#34; alt=&#34;teamai-cli&#34;&gt;
&lt;/p&gt;
&lt;h1 id=&#34;teamai--make-every-team-ai-native&#34;&gt;TeamAI — Make Every Team AI Native
&lt;/h1&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;README.md&#34; &gt;English&lt;/a&gt; | &lt;a class=&#34;link&#34; href=&#34;README.zh-CN.md&#34; &gt;简体中文&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://github.com/Tencent/teamai-cli/actions/workflows/ci.yml/badge.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;CI&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/teamai-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/npm/v/teamai-cli.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;npm version&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;https://www.npmjs.com/package/teamai-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://img.shields.io/npm/dm/teamai-cli.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;npm downloads&#34;
	
	
&gt;&lt;/a&gt;
&lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;&lt;img src=&#34;https://img.shields.io/badge/License-MIT-yellow.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;License: MIT&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;TeamAI manages your team&amp;rsquo;s skills, rules, MCP, and knowledge across Claude Code, Codex, CodeBuddy, WorkBuddy, OpenCode, Cursor, and other AI agents.&lt;/p&gt;
&lt;h2 id=&#34;contributors&#34;&gt;Contributors
&lt;/h2&gt;&lt;p&gt;Thanks to everyone who has contributed to TeamAI!&lt;/p&gt;
&lt;a href=&#34;https://github.com/Tencent/teamai-cli/graphs/contributors&#34;&gt;
  &lt;img src=&#34;https://contrib.rocks/image?repo=Tencent/teamai-cli&#34; alt=&#34;Contributors&#34; /&gt;
&lt;/a&gt;
&lt;p&gt;Made with &lt;a class=&#34;link&#34; href=&#34;https://contrib.rocks&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;contrib.rocks&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start
&lt;/h2&gt;&lt;h3 id=&#34;install&#34;&gt;Install
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g teamai-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;team-admin--solo-user&#34;&gt;Team admin / solo user
&lt;/h3&gt;&lt;p&gt;Create a shared-experience repo on your git host (GitHub, GitLab, GitCode, CNB, TGit, or a private Git service), &lt;strong&gt;grant write access to team members&lt;/strong&gt;, then run &lt;code&gt;teamai init https://github.com/yourorg/yourrepo&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;No team repo yet?&lt;/strong&gt; Start from a template pre-loaded with production-ready skills, rules, and review agents. Browse the &lt;a class=&#34;link&#34; href=&#34;https://github.com/teamai-hub&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;teamai-hub&lt;/a&gt; org, click &lt;strong&gt;Use this template&lt;/strong&gt;, then &lt;code&gt;teamai init&lt;/code&gt; against your new repo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;team-members&#34;&gt;Team members
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Choose one, depending on where you want resources installed&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Project-scope init (default, resources installed under the project directory)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; /path/to/my-project
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai init https://github.com/yourorg/yourrepo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Or, user-scope init (resources installed under ~/)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai init https://github.com/yourorg/yourrepo --scope user
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Once initialized, every AI session automatically pulls the latest skills / rules and other Harness updates published by admins — no manual sync needed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Full usage guide:&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;docs/usage-guide.md&#34; &gt;docs/usage-guide.md&lt;/a&gt; (&lt;a class=&#34;link&#34; href=&#34;docs/usage-guide.zh-CN.md&#34; &gt;中文版&lt;/a&gt;) — covers everything from team creation to day-to-day use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;product-architecture&#34;&gt;Product architecture
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Team Execution × Team Context (beta) × Team Improvement (beta)&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Layer&lt;/th&gt;
					&lt;th&gt;Job&lt;/th&gt;
					&lt;th&gt;In this CLI today&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Team Execution&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Make every agent work the team&amp;rsquo;s way&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;init&lt;/code&gt; / &lt;code&gt;pull&lt;/code&gt; / &lt;code&gt;push&lt;/code&gt;, skills, rules, agents, hooks, MCP, env&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Team Context&lt;/strong&gt; (beta)&lt;/td&gt;
					&lt;td&gt;Make every agent understand the team&lt;/td&gt;
					&lt;td&gt;recall, learnings, codebase graph, teamwiki&amp;hellip;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Team Improvement&lt;/strong&gt; (beta)&lt;/td&gt;
					&lt;td&gt;Make every execution improve the team&lt;/td&gt;
					&lt;td&gt;friction-based share-learnings, sessions, digest, dashboard&amp;hellip;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th rowspan=&#34;2&#34;&gt;Agent&lt;/th&gt;
      &lt;th colspan=&#34;7&#34;&gt;Team Execution&lt;/th&gt;
      &lt;th colspan=&#34;3&#34;&gt;Team Context (beta)&lt;/th&gt;
      &lt;th colspan=&#34;3&#34;&gt;Team Improvement (beta)&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;th&gt;skills&lt;/th&gt;&lt;th&gt;rules&lt;/th&gt;&lt;th&gt;docs&lt;/th&gt;&lt;th&gt;env&lt;/th&gt;&lt;th&gt;agents&lt;/th&gt;&lt;th&gt;hooks&lt;/th&gt;&lt;th&gt;mcp&lt;/th&gt;
      &lt;th&gt;learnings&lt;/th&gt;&lt;th&gt;codebase&lt;/th&gt;&lt;th&gt;teamwiki&lt;/th&gt;
      &lt;th&gt;usage&lt;/th&gt;&lt;th&gt;sessions&lt;/th&gt;&lt;th&gt;dashboard&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;Claude Code&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Codex&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Cursor&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;CodeBuddy&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;WorkBuddy&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;OpenCode&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;OpenClaw&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Hermes&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;DeepSeek Harness&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;—&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Qoder&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;td align=&#34;center&#34;&gt;✓&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Git providers&lt;/strong&gt; — GitHub · GitLab · GitCode · CNB · TGit · private Git service.&lt;/p&gt;
&lt;h3 id=&#34;distribution-controls&#34;&gt;Distribution Controls
&lt;/h3&gt;&lt;p&gt;Team-wide settings an admin configures once and delivers to every member on &lt;code&gt;teamai pull&lt;/code&gt;:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Capability&lt;/th&gt;
					&lt;th&gt;Command&lt;/th&gt;
					&lt;th&gt;What it does&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Roles&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai roles&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Define role → namespace mappings so each member syncs only the skills for their role.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Tags&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai tags&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Tag skills / rules so members subscribe to just the tags they need.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Sources&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai source&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Subscribe to additional skill repos — other teams&amp;rsquo; public repos, or shared/public repos within your own org; subscribed skills sync automatically on pull.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;team-execution&#34;&gt;Team Execution
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;One Team. One Harness. Every Agent.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;TeamAI keeps skills, rules, docs, and hooks in a shared git repo and distributes them to every member&amp;rsquo;s local AI tools through a &amp;ldquo;push → review &amp;amp; merge → pull&amp;rdquo; flow — with support for subscribing to other teams&amp;rsquo; or shared repos&amp;rsquo; Harness.&lt;/p&gt;
&lt;h3 id=&#34;how-it-works&#34;&gt;How It Works
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;teamai&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;push&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;create&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;branch&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MR&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;reviewer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;approves&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;merges&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                                         &lt;span class=&#34;err&#34;&gt;↓&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              &lt;span class=&#34;n&#34;&gt;SessionStart&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;hook&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;teamai&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;pull&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;→&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;synced&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;local&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AI&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tools&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;what-gets-shared&#34;&gt;What Gets Shared
&lt;/h3&gt;&lt;p&gt;Each resource is delivered to every agent:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Resource&lt;/th&gt;
					&lt;th&gt;In the team repo&lt;/th&gt;
					&lt;th&gt;Notes&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Skills&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;skills/&amp;lt;name&amp;gt;/SKILL.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Rules&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;rules/*.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Docs&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Foundational project docs; not all loaded by default (progressive disclosure)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Agents&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;agents/&amp;lt;name&amp;gt;.yaml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Culture&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;culture.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Team mission, values, and working principles — injected into each agent&amp;rsquo;s CLAUDE.md / AGENTS.md so every session inherits them&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CLAUDE.md&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;claudemd/*.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Env&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;env/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Shared team-level environment variables and switches; do not put secrets here&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Hooks&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;hooks/hooks.yaml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;mcp/mcp.yaml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Packages&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai.yaml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Currently npm packages and Claude Code plugins only&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Models&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;—&lt;/td&gt;
					&lt;td&gt;Not implemented for every provider yet&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For file formats and full workflows, see the &lt;a class=&#34;link&#34; href=&#34;docs/usage-guide.md&#34; &gt;Usage Guide&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;team-context-beta&#34;&gt;Team Context (beta)
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Every agent understands how the team works.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Beyond distributing the Harness, TeamAI organizes accumulated team experience and code structure into a searchable knowledge base that the AI recalls automatically when needed.&lt;/p&gt;
&lt;h3 id=&#34;automatic-experience-sharing&#34;&gt;Automatic Experience Sharing
&lt;/h3&gt;&lt;p&gt;When a session ends, the Stop hook scores it by &lt;strong&gt;friction&lt;/strong&gt; — signals that the session hit something worth remembering: you interrupted or corrected the AI, denied a tool call, or the AI had to retry failing tools. A long-but-routine session (lots of tool calls, no friction) does not trigger; a session where you actually fought a problem does. If the score is high enough, the AI suggests:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;teamai&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;session&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;may&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contain&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;problem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;worth&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;documenting&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;you&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;interrupted&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AI&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;twice&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AI&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;retried&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;failing&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tools&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;8&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;times&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Task&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Fix&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;duplicate&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;project&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;level&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Hook&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;injection&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Consider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;running&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;teamai&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;share&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;learnings&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;summarize&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;what&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;you&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;learned&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;share&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;it&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;team&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The hint names the non-zero friction signals that triggered it and, when available, includes a redacted, single-line summary of the first task. The &lt;code&gt;/teamai-share-learnings&lt;/code&gt; skill summarizes the session and pushes a learning document directly to the team repo. Each session is prompted at most once. Teams can switch the hint off with &lt;code&gt;sharing.contributeHint.enabled: false&lt;/code&gt; in &lt;code&gt;teamai.yaml&lt;/code&gt; (members: &lt;code&gt;contributeHintEnabled&lt;/code&gt; in local config) while keeping the rest of the Stop hook.&lt;/p&gt;
&lt;h3 id=&#34;team-knowledge-recall&#34;&gt;Team Knowledge Recall
&lt;/h3&gt;&lt;p&gt;Let the AI automatically search accumulated team knowledge before a task. This feature is &lt;strong&gt;off by default&lt;/strong&gt; and must be enabled explicitly — teams can set &lt;code&gt;sharing.recall.enabled: true&lt;/code&gt; in &lt;code&gt;teamai.yaml&lt;/code&gt; as the default, and members can override locally:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;# on: deploy the teamai-recall subagent + inject guidance rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall disable    &lt;span class=&#34;c1&#34;&gt;# off: remove the subagent and rules&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall status     &lt;span class=&#34;c1&#34;&gt;# show effective state (team default + user override)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Search runs via a subagent&lt;/strong&gt;: once enabled, &lt;code&gt;teamai pull&lt;/code&gt; deploys the built-in &lt;code&gt;teamai-recall&lt;/code&gt; subagent into each AI tool&amp;rsquo;s &lt;code&gt;agents/&lt;/code&gt; directory. The AI invokes it before a task — the subagent extracts keywords, runs the search, reads the matched source files, and returns a structured summary of team knowledge. The subagent first runs a relevance precheck (&lt;code&gt;teamai recall --check&lt;/code&gt;) and skips retrieval entirely when the task is unrelated to team knowledge. Under the hood it shells out to the &lt;code&gt;teamai recall&lt;/code&gt; command, which you can also run manually:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ teamai recall &lt;span class=&#34;s2&#34;&gt;&amp;#34;port conflict&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;1/2&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; MR review caught a port-conflict bug ★1 &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;user&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Author: member-a &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; Score: 18.5 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; Tags: troubleshooting, networking
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;2/2&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; Deployment configuration best practices &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;project&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Author: member-b &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; Score: 12.0 &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; Tags: deploy, config
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Matched: conflict &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; Missing: port
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;codebase-knowledge-graph&#34;&gt;Codebase Knowledge Graph
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;teamai import&lt;/code&gt; parses source repos into a structured graph under &lt;code&gt;teamwiki/&lt;/code&gt;, enabling structurally-aware retrieval:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai import --from-repo https://github.com/org/repo
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai import --from-org myorg              &lt;span class=&#34;c1&#34;&gt;# batch import all repos&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai codebase --extract /path/to/repo     &lt;span class=&#34;c1&#34;&gt;# local extract into teamwiki/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai codebase --lint --output /path/to/repo &lt;span class=&#34;c1&#34;&gt;# check the locally extracted graph&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;The graph stores components, interfaces, configs, and cross-repo import edges. &lt;code&gt;teamai recall&lt;/code&gt; uses it for graph-boosted re-ranking.
When a recall hit comes from a codebase page, the result includes a &lt;code&gt;Sources:&lt;/code&gt; line listing the relevant source file paths — giving agents a direct starting point for code changes instead of re-exploring the repo.&lt;/p&gt;
&lt;p&gt;Edges come from two tracks that run together, with AST results taking precedence on overlap:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AST track&lt;/strong&gt; (TypeScript/JavaScript, Python, Go): a WASM &lt;a class=&#34;link&#34; href=&#34;https://tree-sitter.github.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;tree-sitter&lt;/a&gt; parser resolves &lt;code&gt;import&lt;/code&gt;/&lt;code&gt;require&lt;/code&gt;, call sites, and TS &lt;code&gt;implements&lt;/code&gt; clauses to precise file-to-file &lt;code&gt;DEPENDS_ON&lt;/code&gt; / &lt;code&gt;REFERENCES&lt;/code&gt; / &lt;code&gt;IMPLEMENTS&lt;/code&gt; edges (tagged &lt;code&gt;code-ast&lt;/code&gt;, with confidence weights).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Heuristic track&lt;/strong&gt; (all languages, including Java/Rust): regex-based extraction (tagged &lt;code&gt;code-heuristic&lt;/code&gt;), which also covers languages the AST track does not.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The WASM parser is a pure-JavaScript dependency — no native toolchain is required. If it fails to load for any reason, extraction falls back to the heuristic track and records an &lt;code&gt;AST_UNAVAILABLE&lt;/code&gt; gap. Set &lt;code&gt;TEAMAI_SKIP_AST=1&lt;/code&gt; to force heuristic-only extraction.&lt;/p&gt;
&lt;h2 id=&#34;team-improvement-beta&#34;&gt;Team Improvement (beta)
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;Every execution makes the entire team smarter.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&#34;maintenance&#34;&gt;Maintenance
&lt;/h3&gt;&lt;p&gt;As skills and knowledge accumulate, prune what the team no longer uses. &lt;code&gt;teamai recall maintenance&lt;/code&gt; archives low-confidence learnings and flags stale skills, rules, and docs for cleanup or updates:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall maintenance --prune --dry-run      &lt;span class=&#34;c1&#34;&gt;# preview&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall maintenance --prune --archive      &lt;span class=&#34;c1&#34;&gt;# archive unused learnings&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;teamai recall maintenance --update-quality       &lt;span class=&#34;c1&#34;&gt;# draft updates for stale skills / docs&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Insight into how the team actually uses its AI tools, and a starting point for turning session friction into shared skills, rules, and knowledge:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Capability&lt;/th&gt;
					&lt;th&gt;Command&lt;/th&gt;
					&lt;th&gt;What it shows&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Usage&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai digest&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Weekly team digest — token usage, conversation volume, and intervention rate.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Sessions&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai session save&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Privacy-scrubbed per-session summaries (tool sequence, prompt turns, interventions) that feed the digest&amp;rsquo;s Session Highlights.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Dashboard&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai dashboard&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Web dashboard showing team members&amp;rsquo; live coding-session status, intervention count, and token usage.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;KB Health&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;teamai dashboard&lt;/code&gt; → KB Health&lt;/td&gt;
					&lt;td&gt;Built-in dashboard page reporting knowledge-base usage &amp;amp; health — coverage by type, top recalled entries, silent entries, recall trend, author contributions, and a maintenance console.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;commands&#34;&gt;Commands
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Command&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai init&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Initialize: OAuth login, link repo, register member, inject hooks&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai pull&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Pull team resources and inject into local AI tools&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai push&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Push local resources to a branch and open a Merge Request&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai packages [install] [target]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Install declared npm packages and Claude plugins; with a target, also update &lt;code&gt;teamai.yaml&lt;/code&gt;. Bare &lt;code&gt;teamai packages&lt;/code&gt; installs everything; &lt;code&gt;teamai packages install &amp;lt;target&amp;gt;&lt;/code&gt; adds one&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai status&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Show local vs team repo diff&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai contribute&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Share session experience to team repo&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai recall &amp;lt;query&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Search the team knowledge base (BM25 + graph-boost)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai recall enable/disable/status&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Toggle or check recall state&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai recall promote [learningId]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Promote a high-confidence learning to formal knowledge (skills/rules/docs)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai recall maintenance&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Maintain knowledge base health: prune low-confidence learnings, writeback confidence scores, flag stale entries&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai import&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Import knowledge (&lt;code&gt;--dir&lt;/code&gt;, &lt;code&gt;--from-repo&lt;/code&gt;, &lt;code&gt;--from-org&lt;/code&gt;, &lt;code&gt;--from-repo-list&lt;/code&gt;, &lt;code&gt;--from-mr&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai codebase --extract [path]&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Extract code facts and build the local graph under &lt;code&gt;teamwiki/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai codebase --lint&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Knowledge graph health check&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai ci extract-mr --url &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;CI: extract knowledge from MR, post comments, write after merge&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai members&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;List team members&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai roles&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Manage team roles and namespaces&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai tags&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Manage tag-based skill/rule filtering&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai skill exclude add/remove/list&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Manage skills excluded from local sync (&lt;a class=&#34;link&#34; href=&#34;docs/usage-guide.md#excluding-skills-you-dont-need&#34; &gt;usage guide&lt;/a&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai source&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Manage skill subscription sources (other teams or your org&amp;rsquo;s shared repos)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai remove &amp;lt;type&amp;gt; &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Remove a resource and open MR&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai session save&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Record a privacy-scrubbed session summary to a monthly log (&lt;code&gt;--push&lt;/code&gt; feeds &lt;code&gt;digest&lt;/code&gt;)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai digest&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Generate weekly team usage digest&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai doctor&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Diagnose configuration issues&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;teamai uninstall&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Remove all teamai resources and hooks&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;license&#34;&gt;License
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;MIT&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;contributing&#34;&gt;Contributing
&lt;/h2&gt;&lt;p&gt;PRs are welcome! Please read &lt;a class=&#34;link&#34; href=&#34;.github/CONTRIBUTING.md&#34; &gt;CONTRIBUTING.md&lt;/a&gt; first.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
