git-ai 是一个全局命令行工具:默认行为与 git 保持一致(代理系统 git),同时提供 ai 子命令用于代码索引与检索能力。
当前索引/符号提取支持以下语言与文件后缀:
- JavaScript:
.js、.jsx - TypeScript:
.ts、.tsx - Java:
.java
npm i -g git-ai
# or
yarn global add git-ai- 开发指引:DEVELOPMENT.md
- 文档中心(使用/概念/排障):docs/README.md
- 设计说明:docs/design.md
- Agent 集成(Skills/Rules):docs/mcp.md
git-ai 会把大多数命令直接转发给 git:
git-ai init
git-ai status
git-ai add -A
git-ai commit -m "msg"
git-ai push -u origin main所有 AI 相关能力放在 git-ai ai 下:
git-ai ai index --overwrite
git-ai ai query Indexer --limit 10
git-ai ai semantic "semantic search" --topk 5
git-ai ai pack
git-ai ai unpack
git-ai ai servegit-ai 提供一个基于 MCP 的 stdio Server,供 Agent/客户端以工具方式调用:
search_symbols:按子串搜索符号并返回文件位置semantic_search:基于 LanceDB + SQ8 的语义检索
建议先在目标仓库生成索引:
git-ai ai index --overwrite然后启动 MCP Server(会在 stdio 上等待客户端连接,这是正常的):
cd /ABS/PATH/TO/REPO
git-ai ai serve{
"mcpServers": {
"git-ai": {
"command": "git-ai",
"args": ["ai", "serve"]
}
}
}说明:
git-ai ai serve默认使用当前目录作为仓库定位起点(类似 git 的用法)。- 若宿主无法保证 MCP 进程的工作目录(cwd)指向仓库目录,推荐由 Agent 在首次调用前先执行一次
set_repo({path: \"/ABS/PATH/TO/REPO\"}),或在每次 tool 调用里传path参数。
本仓库提供了 Agent 可直接复用的 Skill/Rule 模版:
使用方式:
- 在 Trae 中打开本仓库后,Agent 会自动加载
.trae/skills/**下的 Skill。 - 需要给 Agent 加约束时,把 Rule 内容放到你的 Agent 配置/系统规则中(也可以直接引用本仓库的
.trae/rules/**作为规范来源)。
在任意 git 仓库中安装 hooks:
git-ai ai hooks install
git-ai ai hooks status说明:
pre-commit:自动index --overwrite+pack,并把.git-ai/meta.json与.git-ai/lancedb.tar.gz加入暂存区。pre-push:再次pack,若归档发生变化则阻止 push,提示先提交归档文件。post-checkout/post-merge:若存在.git-ai/lancedb.tar.gz则自动unpack。
为了避免把较大的索引归档直接存进 Git 历史,推荐对 .git-ai/lancedb.tar.gz 启用 Git LFS。
git lfs install
git lfs track ".git-ai/lancedb.tar.gz"
git add .gitattributes
git commit -m "chore: track lancedb archive via git-lfs"也可以用 git-ai 触发(仅在已安装 git-lfs 的情况下生效):
git-ai ai pack --lfs如果你环境设置了 GIT_LFS_SKIP_SMUDGE=1,或发现 .git-ai/lancedb.tar.gz 不是有效的 gzip 文件:
git lfs pull