一个类似 Claude Code 的命令行 AI 助手,支持多种工具调用和智能代码编辑。
注意:本项目主要用于学习和理解 Claude Code 的架构设计,包括 4A 架构、工具调用机制、MCP 协议等核心概念。
- 架构文档 - 4A 架构、数据流设计、工具调用机制详解
- 🤖 AI 对话:基于 Anthropic Claude API 的智能对话
- 📁 文件操作:读取、写入、列出、删除文件和目录
- 🔍 代码搜索:自然语言搜索、正则表达式搜索、glob 匹配
- 🛠️ 命令执行:执行命令行命令(带用户确认)
- ✏️ 代码编辑:智能搜索替换、代码诊断
- 🔧 配置支持:支持
.env和~/.claude/settings.json - 🔌 MCP 支持:通过 Model Context Protocol 扩展工具能力
MCP (Model Context Protocol) 允许通过外部服务器扩展工具能力。
在 ~/.claude/mcp_config.json 中配置 MCP 服务器:
{
"mcpServers": [
{
"name": "filesystem",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"node",
"dist/index.js"
]
},
{
"name": "git",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-git",
"node",
"dist/index.js"
]
}
]
}| 服务器 | 功能 | 说明 |
|---|---|---|
@modelcontextprotocol/server-filesystem |
文件系统操作 | 提供文件读写、搜索等工具 |
@modelcontextprotocol/server-git |
Git 操作 | 提供 Git 提交、历史、分支管理 |
@modelcontextprotocol/server-brave-search |
搜索 | 提供向量搜索和语义搜索 |
@modelcontextprotocol/server-postgres |
数据库 | 提供 PostgreSQL 数据库操作 |
启动 CLI 时会自动加载 MCP 服务器,工具会自动集成到 Claude 可用工具列表中。
在对话中输入 mcp 命令可以切换 MCP 工具的启用/禁用状态。
| 功能 | 状态 | 说明 |
|---|---|---|
| 多文件编辑 | ⏳ | 支持同时编辑多个文件 |
| Git 集成 | ⏳ | 自动提交、查看历史、分支管理 |
| 流式响应 | ⏳ | 实时显示 AI 回复内容 |
| 智能上下文感知 | ⏳ | 自动读取相关文件到上下文 |
| 项目结构理解 | ⏳ | 自动分析项目结构和依赖 |
| 测试运行与修复 | ⏳ | 自动运行测试并修复失败用例 |
| 代码审查 | ⏳ | 自动检查代码质量、安全性 |
| 重构建议 | ⏳ | 智能重构建议 |
| 文档生成 | ⏳ | 自动生成代码文档 |
| 远程会话存储 | ⏳ | 保存和恢复对话历史 |
| IDE 集成 | ⏳ | 与 VS Code、JetBrains 等集成 |
| Web UI | ⏳ | 浏览器界面支持 |
# 克隆项目
git clone <repository-url>
cd cc-mini
# 安装依赖
pnpm install
# 编译
pnpm build方式一:环境变量 (.env)
创建 .env 文件:
ANTHROPIC_API_KEY=your_api_key_here
DEFAULT_MODEL=claude-3-5-sonnet-20241022
MAX_TOKENS=4096方式二:Claude 设置文件 (~/.claude/settings.json)
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "your_token_here",
"ANTHROPIC_BASE_URL": "https://api.anthropic.com",
"API_TIMEOUT_MS": "300000",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-3-5-sonnet-20241022"
}
}注意:某些 API 端点(如 open.bigmodel.cn)需要使用 apiKey(X-Api-Key 头)。本项目已自动处理此情况。
# 开发模式
pnpm dev
# 生产模式
pnpm start# 编译
pnpm build
# 全局安装
npm install -g .
# 或使用 pnpm
pnpm install -g .
# 安装后可在任何目录使用
cc-miniYou: 读取 src/index.ts 文件的内容
Assistant: [读取文件内容...]
You: 搜索项目中所有使用 axios 的地方
Assistant: [搜索结果...]
You: 运行 npm test
Assistant: [执行测试...]
You: 将所有 console.log 替换为 logger.debug
Assistant: [执行替换...]
You: 使用 git 提交当前更改
Assistant: [调用 MCP git 工具...]
| 工具名 | 描述 | 来源 |
|---|---|---|
read_file |
读取文件内容 | 内置 |
write_file |
写入或创建文件 | 内置 |
list_dir |
列出目录内容 | 内置 |
delete_file |
删除文件或目录 | 内置 |
search_codebase |
自然语言搜索 | 内置 |
grep |
正则表达式搜索 | 内置 |
glob |
Glob 模式匹配 | 内置 |
run_command |
执行命令 | 内置 |
search_replace |
搜索替换 | 内置 |
get_diagnostics |
代码诊断 | 内置 |
read_file |
文件系统操作 | MCP |
write_file |
文件系统操作 | MCP |
git_commit |
Git 提交 | MCP |
git_log |
Git 历史 | MCP |
| 命令 | 说明 |
|---|---|
exit / quit |
退出 CLI |
clear |
清除对话历史 |
mcp |
切换 MCP 工具 |
cc-mini/
├── src/ # 源代码
│ ├── cli/ # CLI 交互
│ ├── config/ # 配置管理
│ ├── context/ # 上下文管理
│ ├── mcp/ # MCP 客户端
│ ├── tools/ # 工具实现
│ ├── types/ # 类型定义
│ └── index.ts # 入口
├── dist/ # 编译输出
├── docs/ # 架构文档
├── .claude/ # Claude 配置
│ ├── settings.json
│ └── mcp_config.json
├── package.json
├── tsconfig.json
└── README.md
pnpm build # 编译
pnpm dev # 开发模式
pnpm start # 运行
pnpm lint # ESLint 检查
pnpm typecheck # TypeScript 类型检查本项目采用 4A 架构设计:
- Abstraction(抽象层):统一接口设计
- Automation(自动化层):工具调用循环
- Analytics(分析层):代码分析和搜索
- Adaptability(适应层):多配置和扩展支持
详细的架构设计、数据流、工具调用机制请查看 架构文档。
MIT
- Anthropic - Claude AI
- Claude Code - 灵感来源
- Model Context Protocol - MCP 规范