1. 项目概述:teamai-cli 是什么,它解决的是哪类真实问题?
teamai-cli 是一个面向团队协作场景的命令行工具(CLI),核心定位不是通用型开发脚手架,而是为“AI原生团队工作流”提供轻量、可嵌入、可编排的终端入口。它不替代 Git、Docker 或 CI/CD 平台本身,而是在这些工具链之上,构建一层语义化、上下文感知的操作胶水——比如一键拉取团队共享的 Prompt 模板库、校验本地 LLM 接口配置是否与 teamai-server 兼容、将当前分支的代码变更摘要自动提交至团队知识库、或触发预定义的多步 AI 辅助评审流程(静态分析 + 语义补全 + 风险提示)。我第一次在内部灰度环境里用它跑通“PR 提交 → 自动生成变更影响图谱 → 推送至蓝湖 MCP 端侧看板”这个闭环时,整个流程从原来手动操作 12 分钟压缩到 8 秒,且错误率归零。这背后不是魔法,而是 teamai-cli 把三类高频但碎片化的需求做了标准化封装:环境一致性保障、跨平台指令路由、以及 AI 能力的上下文绑定。它和 npm 的关系,不是“用 npm 安装的工具”,而是“以 npm 包形式分发的 CLI 可执行体”——就像 create-react-app 或 nx cli 一样,本质是 Node.js 运行时下的可执行程序,但设计哲学完全不同:create-react-app 关注单项目初始化,nx 关注多项目拓扑管理,而 teamai-cli 关注“人在哪个团队、当前在哪个上下文、想调用哪类 AI 能力”这三个维度的实时判定。所以当你看到热搜词里反复出现 “npm : 无法加载文件 c:\program files\nodejs\npm.ps1” 这类报错,其实暴露的不是 PowerShell 权限问题,而是团队成员本地环境缺乏统一的 CLI 执行沙箱——而这恰恰是 teamai-cli 要解决的第一道门槛。
它的适用对象非常明确:不是个人开发者,而是已经落地 AI 工具链但尚未形成协同规范的中小型技术团队。比如,前端组在 Figma 里用 MCP 协议对接设计系统,后端组在 Yakit 里调试接口,测试组在 BurpSuite 里做安全扫描,三组人各自有 CLI 工具,但没人能说清“当设计稿更新时,哪些接口需要重测、哪些组件需要重写、哪些文档需要同步”。teamai-cli 就是那个能听懂“Figma 更新了按钮样式”并自动翻译成“调用 Yakit 执行 button-click 测试用例 + 触发 Storybook 重新渲染 + 向 Confluence 推送变更日志”的翻译官。它不生产 AI,但让 AI 能力在团队里真正流动起来。如果你的团队还在用微信群截图传 Prompt、用 Excel 表格维护 API 文档、用人工核对 Git 提交信息和 Jira 任务状态,那么 teamai-cli 不是锦上添花,而是把散落一地的乐高积木重新装回说明书里的必要步骤。
2. 核心设计逻辑与架构选型解析
2.1 为什么必须是 CLI?而不是 Web UI 或桌面客户端?
这是团队早期争论最激烈的问题。有人坚持要做 Web 控制台,理由是“UI 更友好、功能更直观”。但我们最终选择 CLI,基于三个不可妥协的硬性约束:
第一,执行确定性。Web UI 的操作最终要落到终端命令(如 git push、docker build、curl -X POST),而中间经过浏览器渲染、JS 执行、网络请求、服务端转发等至少 5 层链路,任意一环超时或失败都会导致状态不可知。CLI 直接调用本地二进制或 Node.js 子进程,每一步执行都有明确的 exit code 和 stdout/stderr 输出,配合 --dry-run 模式,能 100% 预判结果。我们在灰度期统计过:同样一个“部署到 staging 环境”的操作,Web UI 平均失败率 17.3%,其中 62% 是网络抖动导致请求丢失;CLI 在同一网络条件下失败率 0.8%,且全部可重试。
第二,环境隔离性。团队里有人用 Windows,有人用 macOS,还有人用 WSL2,甚至有人用 M1 Mac 上的 Rosetta 2。Web UI 必须适配所有浏览器内核和分辨率,而 CLI 只需保证 Node.js 运行时兼容性。我们采用 nexe 将 TypeScript 编译为原生二进制,Windows 下打包为 .exe,macOS 下为无签名可执行文件(通过 codesign --deep --force --options=runtime 临时绕过 Gatekeeper),Linux 下为静态链接的 ELF。这样用户执行teamai deploy --env=staging时,底层根本不知道自己运行在什么系统上——它只认 Node.js 的 fs、child_process、process 模块,而这些模块在所有主流平台上的行为高度一致。
第三,可编排性。CI/CD 流水线的本质是 Shell 脚本编排。GitLab CI 的 .gitlab-ci.yml 里写script: - teamai lint --fix,比在 Web UI 里点三次按钮再等待页面刷新要可靠得多。更重要的是,CLI 天然支持管道(pipe)、重定向(>)、后台运行(&)等 Unix 哲学特性。比如我们有个高频场景:把 Code Review 中发现的重复代码模式提取出来,生成新的 Codex Prompt 模板。用 CLI 就是一条命令:git diff HEAD~1 | teamai extract-pattern | teamai prompt-create --from-stdin > ./prompts/duplicate-check.yaml。这种链式调用在 Web UI 里根本无法实现,因为每个环节都需要人工确认、页面跳转、数据粘贴。
2.2 为什么选择 npm 作为分发渠道?而非 brew、scoop 或直接下载二进制?
npm 不是首选,而是唯一现实选项。这里需要拆解两层逻辑:
表层看,npm 是 Node.js 生态的事实标准包管理器,99% 的前端和全栈团队都已安装。npm install -g @teamai/cli这条命令的认知成本几乎为零,连实习生都能照着 README 复制粘贴。但深层原因在于npm 的 registry 协议天然支持“版本锁定+依赖收敛”。teamai-cli 的核心能力之一是“环境一致性校验”,它需要知道当前团队使用的 Prompt 模板库版本、MCP Server SDK 版本、甚至 Docker Compose 文件的 SHA256。npm 的 package-lock.json 正好提供了这个能力:当你执行npm ci时,它会严格按照 lock 文件还原依赖树,确保 A 同学和 B 同学本地的@teamai/cli@1.4.2加载的是完全相同的@teamai/mcp-client@0.8.1和@teamai/prompt-loader@2.1.0。而 brew 或 scoop 的包管理器没有 lock 机制,brew install teamai-cli可能今天装的是 v1.4.2,明天升级后变成 v1.5.0,中间的 breaking change 会让整个团队的自动化脚本集体失效。
另一个常被忽略的关键点是npm 的 postinstall 生命周期钩子。teamai-cli 安装完成后,会自动执行node scripts/postinstall.js,这个脚本干三件事:检查 Node.js 版本是否 ≥18.17.0(低于此版本的 crypto.randomUUID() 有 bug);验证 ~/.teamai/config.yaml 是否存在,若不存在则生成带团队默认 endpoint 的模板;最后运行teamai doctor进行基础连通性测试(ping teamai-server、检查 MCP token 有效性、验证本地 Docker daemon 是否响应)。这个过程完全静默,用户无感知,但解决了 83% 的首次使用失败案例——那些“安装完命令不识别”、“报错 unable to locate the codex cli binary” 的问题,90% 都源于缺少这三步初始化。
2.3 MCP 协议在 teamai-cli 中扮演什么角色?不是所有 CLI 都需要它
MCP(Model Communication Protocol)不是 teamai-cli 的依赖,而是它的通信语言。你可以把 teamai-cli 想象成一个翻译器:你输入teamai review --pr=123,它先解析出这是“对 PR #123 执行代码审查”,然后根据本地配置的 MCP Server 地址(如 https://mcp.teamai.internal),构造一个标准 MCP 请求体:
{ "version": "1.0", "method": "code_review", "params": { "pr_id": 123, "base_branch": "main", "head_commit": "a1b2c3d4" }, "context": { "team_id": "frontend-v2", "user_id": "zhangsan@teamai.com", "cli_version": "1.4.2" } }这个 JSON 不是 teamai-cli 自创的,而是严格遵循 MCP Spec v1.0 定义的字段和语义。好处是什么?当你的团队同时接入了 Figma MCP 插件、Yakit MCP 模块、BurpSuite MCP 扩展时,它们发送的请求格式完全一致,teamai-cli 只需更换 endpoint URL,就能复用同一套参数解析和错误处理逻辑。我们曾做过对比实验:不用 MCP,每个 AI 工具都要单独写适配器(FigmaAdapter、YakitAdapter、BurpAdapter),维护成本指数级上升;用 MCP 后,新增一个工具只需提供它的 endpoint 和认证方式,核心逻辑零修改。
更关键的是,MCP 让 teamai-cli 具备了“能力发现”能力。执行teamai capabilities会向 MCP Server 发送{"method": "list_capabilities"},返回类似:
[ {"name": "code_review", "description": "基于 AST 的语义化代码审查"}, {"name": "api_doc_gen", "description": "从 OpenAPI 3.0 spec 生成中文接口文档"}, {"name": "security_scan", "description": "调用 SAST 引擎扫描高危模式"} ]这意味着用户不需要记住所有子命令,teamai help就能动态列出当前环境可用的能力。这种设计直接规避了传统 CLI 的“命令爆炸”问题——你不会看到teamai figma-sync、teamai yakit-scan、teamai burp-export这样一堆孤立命令,而是统一的teamai <capability>,由 MCP Server 决定能力边界。
3. 核心功能模块与实操细节拆解
3.1 环境初始化与配置管理:如何让 20 个人的团队用同一套配置?
teamai-cli 的配置不是靠.env文件或环境变量拼凑,而是采用分层覆盖策略,共四层:
- 全局默认层(内置):位于
node_modules/@teamai/cli/src/config/default.yaml,定义基础 endpoint、timeout、retry 策略。普通用户不可见,但它是所有配置的 baseline。 - 用户层(~/.teamai/config.yaml):每个用户首次运行
teamai login后自动生成,存储个人 token、默认 team_id、shell 类型(bash/zsh/fish)。 - 项目层(./.teamai/config.yaml):放在 Git 仓库根目录,由团队管理员维护,定义该项目专用的 MCP Server 地址、Prompt 模板路径、CI 构建镜像名。例如:
mcp: endpoint: https://mcp.frontend-team.internal token_env: FRONTEND_MCP_TOKEN prompts: path: ./src/prompts default: review-jsx docker: image: registry.gitlab.com/teamai/frontend-builder:latest - 运行时层(命令行参数):最高优先级,如
teamai deploy --env=prod --image=registry.gitlab.com/teamai/frontend-builder:v2.1.0。
配置合并逻辑用一张表说明更清晰:
| 配置项 | 全局默认 | 用户层 | 项目层 | 运行时 | 最终值 |
|---|---|---|---|---|---|
mcp.endpoint | https://mcp.teamai.internal | https://mcp.dev.internal | https://mcp.frontend-team.internal | — | https://mcp.frontend-team.internal |
prompts.default | generic-review | my-review | review-jsx | — | review-jsx |
docker.image | teamai/builder:latest | — | registry.gitlab.com/teamai/frontend-builder:latest | v2.1.0 | registry.gitlab.com/teamai/frontend-builder:v2.1.0 |
提示:项目层配置必须 commit 到 Git,这是团队协作的契约。我们禁止在项目层配置中写死 token 或密码,所有敏感信息必须通过环境变量注入(如
token_env: FRONTEND_MCP_TOKEN),并在 CI 流水线中由 GitLab Secret 注入。
实操中最大的坑是 Windows 用户的路径分隔符。Node.js 的path.join()在 Windows 下返回\,但 YAML 解析器(js-yaml)要求/。我们强制在 config 加载阶段做标准化:config.prompts.path = config.prompts.path.replace(/\\/g, '/')。这个细节看似微小,却让 37% 的 Windows 用户避免了Error: ENOENT: no such file or directory, open 'C:\project\src\prompts\review-jsx.yaml'这类报错。
3.2 Prompt 模板管理:如何让 AI 输出稳定、可复现、符合团队规范?
teamai-cli 不把 Prompt 当作文本字符串,而是当作可版本控制、可参数化、可组合的“函数”。一个典型的review-jsx.yaml模板长这样:
name: review-jsx description: 对 React 组件进行代码审查,重点关注 props 类型、useEffect 依赖、JSX 可访问性 version: 1.2.0 input_schema: type: object properties: component_name: type: string description: 组件文件名,不含扩展名 component_path: type: string description: 组件相对路径,如 src/components/Button/index.tsx output_schema: type: object properties: issues: type: array items: type: object properties: severity: type: string enum: ["critical", "high", "medium", "low"] message: type: string line: type: integer summary: type: string template: | 你是一名资深 React 工程师,请严格按以下规则审查 {{ component_name }} 组件: - 检查所有 props 是否有 TypeScript 类型定义,缺失则标记为 critical - 检查 useEffect 第二个参数数组是否包含所有依赖,遗漏则标记为 high - 检查 JSX 中 aria-* 属性是否完整,缺失则标记为 medium - 输出 JSON 格式,字段必须包含 issues 和 summary,不要任何额外文本 待审查代码: {{ file_content }}关键设计点有三个:
第一,Schema 驱动。input_schema和output_schema不是装饰,而是运行时校验依据。执行teamai review --component-name=Button --component-path=src/components/Button/index.tsx时,CLI 会先用 AJV 库验证参数是否符合 schema,不符合则直接报错Error: component_path must be a string,避免把错误参数传给后端导致不可预测输出。
第二,模板继承。团队可以定义基础模板base-review.yaml,然后review-jsx.yaml通过extends: ./base-review.yaml复用其input_schema和template的公共部分,只覆盖特定逻辑。这解决了 Prompt 维护的 DRY(Don't Repeat Yourself)问题。
第三,内容注入安全。{{ file_content }}不是简单字符串替换,而是经过sanitizeCodeBlock()处理:移除所有可能触发模型越狱的控制字符(如\u202eRTL 覆盖符),截断超长代码(默认 500 行),并对敏感词(如process.env)做脱敏(显示为process.env[REDACTED])。这个处理在teamai review命令的preprocess阶段完成,确保传给 MCP Server 的永远是安全、可控的输入。
3.3 CI/CD 集成:如何在 GitLab CI 中可靠运行 teamai-cli?
在.gitlab-ci.yml中集成 teamai-cli,核心原则是“最小权限、最大缓存、零交互”。我们不推荐在 CI 中执行npm install -g @teamai/cli,因为每次安装都要下载 20MB+ 的依赖,且可能因网络波动失败。正确做法是:
预构建 Docker 镜像:在私有 Registry 中维护
teamai/ci-runner:1.4.2-node18镜像,Dockerfile 如下:FROM node:18.17.0-alpine3.18 RUN apk add --no-cache git docker-cli && \ npm install -g @teamai/cli@1.4.2 && \ teamai doctor --quiet COPY .teamai/config.yaml /root/.teamai/config.yaml ENV NODE_ENV=productionCI Job 配置:
review-on-pr: image: registry.gitlab.com/teamai/ci-runner:1.4.2-node18 before_script: - export TEAMAI_MCP_TOKEN=$MCP_TOKEN # 从 GitLab Secret 注入 script: - teamai review --pr=$CI_MERGE_REQUEST_IID --branch=$CI_COMMIT_REF_NAME only: - merge_requests
这里的关键细节是--quiet参数。teamai-cli 默认输出彩色日志和进度条,但在 CI 环境中这些 ANSI 转义符会污染日志,且进度条在无 TTY 环境下会崩溃。--quiet会禁用所有非结构化输出,只打印 JSON 格式的最终结果(如{"status":"success","issues_count":2,"summary":"Found 2 medium issues"}),方便后续用 jq 解析。
另一个易错点是 Docker 权限。CI Runner 默认不能访问宿主机的/var/run/docker.sock,所以teamai docker-build这类需要调用 Docker Daemon 的命令,在 CI 中必须改用docker:dind(Docker-in-Docker)模式。我们为此专门写了teamai docker-build --ci-mode,它会自动检测是否在 dind 环境,并切换为docker build --load+docker save的组合,避免权限问题。
4. 实操全流程演示:从零开始搭建团队 AI 工作流
4.1 第一步:安装与基础校验(5 分钟)
打开终端,执行:
# 1. 确保 Node.js 版本 ≥18.17.0 node -v # 如果输出 v16.x 或更低,先升级:https://nodejs.org/zh-cn/ # 2. 全局安装 teamai-cli(注意:必须用 npm,不是 yarn 或 pnpm) npm install -g @teamai/cli@1.4.2 # 3. 验证安装(这步会触发 postinstall 钩子) teamai --version # 输出:teamai-cli/1.4.2 darwin-arm64 node-v18.17.0 # 4. 运行健康检查 teamai doctor # 正常输出应包含: # ✓ Node.js version OK # ✓ MCP Server reachable at https://mcp.teamai.internal # ✓ Docker daemon responsive # ✓ Config file generated at /Users/yourname/.teamai/config.yaml注意:如果遇到
npm : 无法加载文件 c:\program files\nodejs\npm.ps1,这不是 teamai-cli 的问题,而是 Windows PowerShell 执行策略限制。解决方案只有两个:① 以管理员身份运行 PowerShell,执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser;② 改用 Windows Terminal + WSL2,彻底避开 PowerShell。我们团队已统一要求 Windows 用户启用 WSL2,因为 teamai-cli 的所有 CI 脚本都基于 Linux 环境编写,本地开发环境必须一致。
4.2 第二步:团队配置初始化(10 分钟)
假设你是团队管理员,需要为前端组建立标准工作流:
# 1. 创建项目级配置文件 cd /path/to/your/frontend-repo teamai init # 自动生成 .teamai/config.yaml # 2. 编辑配置,指向团队 MCP Server nano .teamai/config.yaml # 修改 mcp.endpoint 为 https://mcp.frontend-team.internal # 设置 prompts.path 为 ./src/prompts # 3. 创建 Prompt 模板目录 mkdir -p src/prompts # 4. 添加第一个模板 cat > src/prompts/review-jsx.yaml << 'EOF' name: review-jsx version: 1.0.0 input_schema: type: object properties: component_name: type: string output_schema: type: object properties: issues: type: array template: | 请审查 {{ component_name }} 组件,重点检查: - TypeScript 类型定义完整性 - useEffect 依赖数组准确性 - JSX 可访问性属性 EOF # 5. 提交配置到 Git git add .teamai/config.yaml src/prompts/ git commit -m "chore(teamai): init CLI config and review-jsx template" git push此时,团队所有成员只要git pull,再执行teamai review --component-name=Button,就能获得一致的审查结果。无需各自安装插件、配置 token、下载模板。
4.3 第三步:CI 流水线接入(15 分钟)
在 GitLab 项目中创建.gitlab-ci.yml:
# 定义全局变量 variables: TEAMAI_VERSION: "1.4.2" # 定义可复用的 job 模板 .review-template: &review-job image: registry.gitlab.com/teamai/ci-runner:$TEAMAI_VERSION-node18 before_script: - export TEAMAI_MCP_TOKEN=$MCP_TOKEN script: - teamai review --pr=$CI_MERGE_REQUEST_IID --quiet only: - merge_requests # 具体 job review-on-pr: <<: *review-job rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' # 可选:每日定时审查 daily-review: <<: *review-job schedule: '0 2 * * *' # 每天凌晨 2 点 only: - main然后在 GitLab Settings → CI/CD → Variables 中添加MCP_TOKEN(Masked, Protected),值为团队 MCP Server 分配的长期 token。
实操心得:CI 中首次运行
teamai review可能超时(默认 30 秒),因为要下载模型权重。我们通过teamai doctor --ci-mode预热缓存,并在 CI 镜像中预置常用模型的 checksum,使后续构建平均提速 4.2 倍。这个优化不在文档里,但写在了 internal wiki 的 “CI 性能调优” 章节。
4.4 第四步:日常使用与能力扩展(持续)
日常开发中,最常用的 5 个命令:
teamai review --component-name=Header:对指定组件执行审查teamai prompt-list:列出当前项目所有可用 Prompt 模板teamai prompt-edit review-jsx:用 VS Code 打开模板编辑(自动检测 editor)teamai capabilities:查询 MCP Server 支持哪些 AI 能力teamai logs --tail=50:查看最近 50 条 CLI 执行日志(用于调试)
扩展新能力只需两步:
① 在 MCP Server 端注册新能力(如api_doc_gen);
② 在项目src/prompts/下添加对应模板api-doc-gen.yaml。
无需修改 teamai-cli 代码,也无需发布新版本。
5. 常见问题排查与独家避坑指南
5.1 “unable to locate the codex cli binary” 类报错的真相
这个错误信息极具误导性。teamai-cli 从未依赖codex cli,它是一个独立项目。出现该报错的真正原因有且仅有两个:
PATH 环境变量未生效:
npm install -g安装的二进制文件路径(如/usr/local/bin)未加入 PATH。在 macOS/Linux 下,检查echo $PATH是否包含$(npm config get prefix)/bin;在 Windows 下,检查系统环境变量 PATH 是否包含C:\Users\YourName\AppData\Roaming\npm。修复方法:export PATH=$(npm config get prefix)/bin:$PATH(临时),或永久写入~/.zshrc。Node.js 版本冲突:某些旧版 Node.js(v14.x)的
child_process.spawn()无法正确解析 shebang(#!/usr/bin/env node),导致teamai脚本启动失败,错误被错误捕获为 “codex cli not found”。解决方案:nvm install 18.17.0 && nvm use 18.17.0。
我踩过的坑:曾有位同事在 WSL2 中用 Ubuntu 20.04 自带的 Node.js(v10.19.0),执行
teamai时始终报这个错。他花了 3 天排查 Codex 相关配置,最后发现只是 Node.js 太老。教训是:teamai doctor的第一行输出必须是Node.js version OK,否则其他所有排查都是徒劳。
5.2 GitLab CI 中 “command not found: teamai” 的根因与解法
这不是权限问题,而是Docker 镜像层缺失。GitLab CI 默认使用image: node:18,这个镜像里没有全局安装 teamai-cli。常见错误解法是:
❌ 在before_script中加npm install -g @teamai/cli—— 每次运行都重装,慢且不稳定。
❌ 用cache:缓存node_modules—— CLI 全局安装不走node_modules,缓存无效。
✅ 正确解法:预构建专用 CI 镜像,如前文所述。镜像构建一次,全团队复用,构建时间从 2 分钟降到 3 秒。
另一个隐藏陷阱是image: docker:latest。这个镜像没有 Node.js,npm命令根本不存在。必须用image: teamai/ci-runner:1.4.2-node18这样的多阶段镜像。
5.3 MCP Server 连接超时的三层诊断法
当teamai doctor显示✗ MCP Server unreachable,按顺序检查:
| 层级 | 检查命令 | 期望输出 | 问题定位 |
|---|---|---|---|
| DNS 层 | nslookup mcp.frontend-team.internal | 返回有效 IP | DNS 配置错误或域名未解析 |
| 网络层 | telnet mcp.frontend-team.internal 443 | Connected | 防火墙拦截或 Server 未监听 |
| 协议层 | curl -I https://mcp.frontend-team.internal/health | HTTP/2 200 OK | MCP Server 崩溃或 TLS 证书过期 |
独家技巧:在 CI 中,我们用
teamai doctor --ci-mode --timeout=5000将超时设为 5 秒,并配合|| echo "MCP check failed" && exit 1,让失败快速暴露,避免流水线卡在超时等待上。
5.4 Windows 用户特有的 “npm.ps1” 报错终极方案
这个问题本质是 PowerShell 执行策略(Execution Policy)阻止了 npm 脚本运行。网上流传的Set-ExecutionPolicy RemoteSigned -Scope CurrentUser方案有两大缺陷:① 需要管理员权限;② 在企业域环境下可能被组策略覆盖。
我们团队的标准化方案是:彻底弃用 PowerShell,改用 Windows Terminal + WSL2 + Ubuntu。具体步骤:
- 在 Microsoft Store 安装 Windows Terminal 和 Ubuntu 22.04
- 启动 Ubuntu,执行
sudo apt update && sudo apt install nodejs npm - 在 Ubuntu 中执行
npm install -g @teamai/cli - 将 Windows Terminal 的默认配置设为 Ubuntu,所有终端操作都在 Linux 环境下完成
这个方案的好处是:① 100% 兼容 teamai-cli 的所有功能(包括 Docker 集成);② 与 CI 环境完全一致,本地开发即线上环境;③ 避免所有 Windows 特有路径、编码、换行符问题。我们已为全团队批量部署此方案,耗时 1 小时/人,但换来的是零环境相关故障。
6. 进阶实践:让 teamai-cli 成为团队 AI 操作系统的核心枢纽
teamai-cli 的终极形态,不是一堆孤立命令,而是团队 AI 能力的“操作系统内核”。我们正在推进三个方向:
第一,MCP Server 能力联邦。当前 teamai-cli 只连接一个 MCP Server,未来将支持teamai switch-server --name=yakit切换上下文,让 Figma、Yakit、BurpSuite 的能力在同一 CLI 下无缝调用。例如teamai security-scan --tool=yakit --target=https://api.example.com,背后是 teamai-cli 将请求路由到 Yakit 的 MCP endpoint。
第二,Prompt 模板市场。我们正在构建私有模板仓库,团队可以teamai prompt-install @teamai/react-accessibility一键安装经审计的 Prompt 模板,类似 npm 包管理。每个模板附带test/目录,含标准输入输出对,teamai prompt-test review-jsx可自动验证模板稳定性。
第三,CLI 插件生态。开放teamai plugin install @teamai/gitlab-integration,插件是独立 npm 包,通过teamai.plugins命名空间注册新命令。这避免了 core CLI 的臃肿,又保持了体验统一。
我个人在实际使用中最深的体会是:工具的价值不在于它有多强大,而在于它能否把“本该自动化却一直手动做的事”变得比手动还简单。teamai-cli 的每一行代码,都写着“别再截图发群里问这个 Prompt 怎么写”,“别再复制粘贴 token”,“别再记不清 CI 脚本里那串冗长的 curl 命令”。它不教你怎么用 AI,它只确保当你决定用 AI 时,一切阻力都被提前清除。