一款智能 AI 驱动的编码命令行工具,帮助您使用自然语言命令编写、分析和理解代码。
- AI 驱动的代码助手:使用自然语言与代码库交互
- 人工审核批准:在工具执行前审查并批准操作
- 标签式问题界面:用于多步骤用户交互的精美 TUI:
- 问题之间的标签导航
- 进度指示器("步骤 X / Y")
- 方向键导航(←→ 切换标签,↑↓ 选择选项)
- 支持富 Markdown/代码预览的预览面板
- 深色模式主题配蓝色高亮
- 提交验证(必须回答所有问题)
- "其他"选项的内联自定义输入(支持英文/中文)
- 丰富的终端 UI:支持 Markdown 渲染和语法高亮的精美输出
- 多模型支持:兼容 OpenAI API(OpenAI、DeepSeek 等)
- 可扩展的中间件系统:通过中间件添加自定义行为
- 异步架构:基于 asyncio 构建响应式交互
- Python 3.11 或更高版本
- uv(推荐的包管理器)
# 克隆仓库
git clone https://github.com/77z-zhou/DeepCode.git
cd deepcode
# 安装依赖
uv sync
# 或以开发模式安装
uv pip install -e .pip install -e .# 运行 deepcode
deepcode
# 或使用 Python
python -m deepcode首次运行会提示您配置:
- API 提供商(OpenAI、DeepSeek 等)
- API 密钥
- 模型名称
- 工作区目录
启动 CLI 并与 Agent 对话:
deepcode/help- 显示帮助信息/clear- 清屏/model- 更换 AI 模型/compact- 压缩对话上下文/cost- 显示 API 使用成本/exit- 退出程序/init- 重新初始化配置
配置存储在项目目录中。首次运行将引导您完成设置:
# 示例配置结构
{
"model": "gpt-4", # 模型标识符
"api_key": "sk-...", # API 密钥
"base_url": null, # 自定义 API 基础 URL(可选)
"workspace": ".", # 工作目录
"recursion_limit": 50, # Agent 递归限制
"skills_dir": ".claude/skills" # 自定义技能目录
}deepcode/
├── deepcode/
│ ├── __init__.py
│ ├── __main__.py # 入口点
│ ├── cli/ # CLI 接口
│ │ ├── app.py # 主 CLI 应用程序
│ │ ├── commands/ # 内置命令
│ │ └── utils.py # TUI 组件(标签式界面)
│ ├── core/
│ │ ├── agent.py # 主要 Agent 逻辑
│ │ ├── model.py # 模型工厂
│ │ └── middleware/ # Agent 中间件
│ ├── config/ # 配置管理
│ └── bus/ # 异步通信的消息总线
├── tests/ # 测试套件
├── pyproject.toml # 项目元数据
└── README.md
# 运行所有测试
pytest
# 运行测试并生成覆盖率报告
pytest --cov=deepcode本项目遵循标准 Python 约定并使用类型提示。
-
标签式问题界面(
deepcode/cli/utils.py):_present_user_questions()- 主要 TUI 入口- 完整的 prompt_toolkit 实现,带自定义键绑定
- 语法高亮的富 Markdown 预览
-
Agent(
deepcode/core/agent.py):- 基于 LangGraph 的 Agent,集成 LangChain
- 带进度回调的流式响应
- HITL(人工审核)支持
-
消息总线(
deepcode/bus/):- 入站/出站消息的异步发布/订阅
- 协调 CLI 和 Agent 之间的通信
- langchain - Agent 框架
- langgraph - Agent 编排
- prompt_toolkit - 终端 UI 框架
- rich - 富文本和格式化
- typer - CLI 框架
- pydantic - 数据验证
- loguru - 日志记录
- questionary - 交互式提示
MIT License - 详见 LICENSE 文件
欢迎贡献!请随时提交 Pull Request。
构建于:
- LangChain - AI Agent 框架
- prompt_toolkit - 终端 UI
- Rich - 终端格式化



