Skip to content

ahnuchen/cc-mini

Repository files navigation

cc-mini - Claude Code-like CLI Assistant

一个类似 Claude Code 的命令行 AI 助手,支持多种工具调用和智能代码编辑。

注意:本项目主要用于学习和理解 Claude Code 的架构设计,包括 4A 架构、工具调用机制、MCP 协议等核心概念。

文档

  • 架构文档 - 4A 架构、数据流设计、工具调用机制详解

功能特性

  • 🤖 AI 对话:基于 Anthropic Claude API 的智能对话
  • 📁 文件操作:读取、写入、列出、删除文件和目录
  • 🔍 代码搜索:自然语言搜索、正则表达式搜索、glob 匹配
  • 🛠️ 命令执行:执行命令行命令(带用户确认)
  • ✏️ 代码编辑:智能搜索替换、代码诊断
  • 🔧 配置支持:支持 .env~/.claude/settings.json
  • 🔌 MCP 支持:通过 Model Context Protocol 扩展工具能力

MCP 功能

MCP (Model Context Protocol) 允许通过外部服务器扩展工具能力。

配置 MCP 服务器

~/.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"
      ]
    }
  ]
}

可用的 MCP 服务器

服务器 功能 说明
@modelcontextprotocol/server-filesystem 文件系统操作 提供文件读写、搜索等工具
@modelcontextprotocol/server-git Git 操作 提供 Git 提交、历史、分支管理
@modelcontextprotocol/server-brave-search 搜索 提供向量搜索和语义搜索
@modelcontextprotocol/server-postgres 数据库 提供 PostgreSQL 数据库操作

使用 MCP 工具

启动 CLI 时会自动加载 MCP 服务器,工具会自动集成到 Claude 可用工具列表中。

在对话中输入 mcp 命令可以切换 MCP 工具的启用/禁用状态。

待完善功能(对比 Claude Code)

功能 状态 说明
多文件编辑 支持同时编辑多个文件
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-mini

使用示例

文件操作

You: 读取 src/index.ts 文件的内容
Assistant: [读取文件内容...]

代码搜索

You: 搜索项目中所有使用 axios 的地方
Assistant: [搜索结果...]

命令执行

You: 运行 npm test
Assistant: [执行测试...]

代码编辑

You: 将所有 console.log 替换为 logger.debug
Assistant: [执行替换...]

MCP 工具

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

致谢

About

Claude Code-like CLI Assistant

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors