Tencent's TeamAI Syncs Your Agent Skills Across the Team

Tencent's Free Tool Syncs Your Agent Skills Across Your Whole Team

🎬 Signal Coders 📅 Sep 9, 2026 ⏱ 7:52
TeamAI Tencent team sync hooks git

📄 The One Markdown File Problem

For two years, configuring an AI coding agent meant one markdown file in the repo root — CLAUDE.md, AGENTS.md, a rules folder. Beautiful for one developer; it starts to strain at forty. 0:00

The failure mode at scale: every copy drifts, nobody knows which version is current, and the genuinely good prompt engineering ends up in one senior engineer's dotfiles — where it helps exactly one person.
"TeamAI's answer is the most boring and most obviously correct answer in all of software: put it in git."

🐙 TeamAI's Answer: Put It in Git

TeamAI (teamai-cli) configures 11 AI coding agents — Claude Code, Codex, Cursor, OpenCode, OpenClaw, Hermes, DeepSeek Harness, Coder, Zcode, CodeBuddy, WorkBuddy — all pulling skills, rules, hooks, and MCP servers from one shared Git repo. 0:38

Install & setup: npm install -g teamai-cli. Admin creates a shared "experience" repo (GitHub, GitLab, GitCode, CNB, TGit, or self-hosted), grants write access, runs teamai init with the URL. Tencent also maintains teamai-hub templates preloaded with production skills/rules/review agents — "a starting harness in about 90 seconds."
The one decision members make — scope: default project scope (resources under the project dir) vs --scope user (under home, for every repo you'll ever touch). "Two flags, one mental model."

🔗 Why Hooks Are Load-Bearing

The sync loop is the interesting part — four arrows: teamai push → branch + merge request → reviewer merges → a SessionStart hook runs teamai pull. 1:09

The concept worth understanding: a hook is not a tool the model chooses to call — it's a shell command the runtime executes at a fixed point in the session lifecycle, deterministically, before the model gets a vote.
Why this matters: the model cannot forget to sync, cannot decide the team rules are unimportant today, cannot be talked out of it by a long context window. "The sync lives entirely outside the model's control loop — which is the only place you can put something you actually need to be true."

📦 What the Repo Contains

The readme spells out the layout file by file. 1:45

PathWhat it is
skills/name/skill.mdSkills
rules/*.mdRules
docs/Docs — not all loaded by default (progressive disclosure)
agents/name.yamlAgent definitions
hooks/hooks.yamlHooks
mcp/mcp.yamlMCP config
teamai.yamlPackages (npm + Claude Code plugins, currently)
culture.mdMission, values, working principles — injected into every session
culture.md — the eyebrow-raiser: "a supported, documented, YAML-adjacent mechanism for shipping corporate values directly into the context window of a language model. Your onboarding deck has become a build artifact."
The env/ directory holds shared team-level env vars and switches — with the explicit readme note: "Do not put secrets here." "Somebody on that team has been on call before."

🎛️ Roles, Tags & Subscriptions

Three admin controls, configured once, received on the next teamai pull. 3:06

ControlWhat it does
TeamAI rolesRole → namespace mapping: a frontend engineer syncs frontend skills, not the DB migration playbook
TeamAI tagsTag skills/rules so people subscribe only to the tags they need
TeamAI sourceSubscribe your repo to additional skill repos — another team's public repo or a shared org repo
"That last one is quietly the most ambitious idea in the project: a package registry for institutional knowledge."

⚡ Friction Scoring

The part the video keeps circling back to — your session gets scored. 4:00

How it works: when a session ends, the Stop hook scores it by friction — the times you interrupted the agent, the tool calls you denied, the tool that failed and got retried. "The software watches for the moments where you and the machine disagreed, and treats disagreement as a data source rather than noise."
The sharp insight: the real knowledge in your codebase isn't in the sessions where everything worked — it's in the session where you stopped the agent three times because it kept running the wrong migration command. That tribal knowledge lives only in your head. TeamAI catches the moment fresh, prompts you to write it up, and pushes it to the repo as a learning, recallable by every agent on the team.
"High friction is high information. Your worst half hour becomes somebody else's smooth afternoon."

⚠️ The Honest Gaps

The reality check, stated plainly in the readme. 4:46

What's beta: Team Context (recall, learnings, codebase graph, team wiki) and Team Improvement (friction learnings, sessions digest, dashboard) are both marked beta. Packages cover npm + Claude Code plugins only. Models is "not implemented" for every provider. Of 11 agents across 13 capability columns, only five are fully filled: Claude Code, Codex, Cursor, CodeBuddy, Coder. Hermes and DeepSeek Harness carry skills, docs, and team-context columns only.
The point of the honesty: "A table that admits what it doesn't do yet is a table you can plan around."

🌀 The Irony

The part the author can't stop thinking about. 5:12

"For two years the pitch for AI coding agents was escape — escape the ticket, the process, the meeting where four people argue about a lint rule. And the natural end state of that freedom turns out to be a merge request, a reviewer approval, a role-based namespace, a subscription feed, and a culture document injected into every session so the robot knows the company values. We did not escape process. We taught it to the machines."
The closing line: the AI coding agent arrived two years ago as a novelty. This week it got a git history, a code reviewer, and a value statement. "That is not a toy anymore. That is a coworker with an onboarding doc."

💡 Key Takeaways

  1. One git repo configures 11 agents — skills, rules, hooks, MCP, all from a single shared repository.
  2. Hooks are load-bearing — SessionStart runs teamai pull deterministically, outside the model's control loop, so the model can't skip the sync.
  3. The sync loop is a merge request — push → review → merge → pull; config becomes infrastructure with an owner and rollback.
  4. culture.md ships values into every context window — onboarding deck becomes a build artifact.
  5. Friction scoring turns disagreement into data — interruptions, denied tool calls, failed retries → team learnings.
  6. Sources = a registry for institutional knowledge — subscribe to other teams' skill repos.
  7. Honest gaps — Team Context/Improvement are beta; Models not implemented; 5 of 11 agents fully supported.
  8. We didn't escape process — we taught it to the machines — the agent got a git history and a value statement.

📍 Timestamp Index

0:00 Eleven agents, one config repo
0:06 The one markdown file problem
0:38 Put it in git
1:09 The four-arrow sync loop
1:45 What the repo contains
2:08 culture.md injects team values
3:06 Roles, tags & subscriptions
4:00 Your session gets scored on friction
4:46 The honest compatibility gaps
5:12 The irony of escaping process
☰ View all