终端优先的 AI 编程 Agent,用自然语言在本地仓库中读代码、改代码、跑命令、调试问题。
Project description
CodeI
终端优先的 AI 编程 Agent,用自然语言在本地仓库中读代码、改代码、跑命令、调试问题。
Rust 实现,单二进制分发,支持 OpenAI 兼容 API、Anthropic、vLLM 等 Provider,提供全屏 TUI、行式 REPL 与 SDK。
特性
- 多 Provider:OpenAI、Anthropic、任意 OpenAI 兼容端点(vLLM、本地模型等)
- 内置工具:
read/write/edit/grep/glob/list_dir/shell/definition,以及子 Agenttask - MCP:通过 Model Context Protocol 扩展外部工具
- 会话持久化:SQLite 存储,支持恢复、导出、压缩
- TUI:基于 Ratatui 的全屏交互,流式输出、滚动、Slash 补全、剪贴板复制
- 安全策略:破坏性工具可要求审批;Shell 支持超时与沙箱限制
- 国际化:界面支持
zh-CN/en-US - 可编程:
codei-sdk供脚本与 CI 集成
快速开始
从源码构建
git clone https://github.com/007gzs/codei.git
cd codei
cargo build --release -p codei
./target/release/codei --help
初始化配置
codei config init
配置文件默认位于 ~/.config/codei/config.toml。示例:
[defaults]
model = "gpt-4o"
provider = "openai"
temperature = 0.2
max_tokens = 8192
language = "zh-CN"
[providers.openai]
api_key_env = "OPENAI_API_KEY"
base_url = "https://api.openai.com/v1"
# 本地 vLLM / OpenAI 兼容服务
[providers.custom]
api_key = "empty"
base_url = "http://localhost:8000/v1"
api_style = "openai"
tool_format = "tools" # vLLM 请使用 tools,不要用 functions
也可在配置中直接写 api_key(优先于 api_key_env)。
启动交互
# 全屏 TUI(默认)
codei
# 指定工作目录
codei --cwd /path/to/your/project
# 行式 REPL
codei --no-tui
# 单次提问并打印结果
codei -p "解释这个项目的结构"
# 自动批准工具调用
codei -y
# 调试日志(写入 ~/.local/share/codei/logs/debug.log)
codei --verbose
配置说明
| 配置项 | 说明 |
|---|---|
defaults.provider |
使用的 Provider 名称 |
defaults.model |
默认模型 |
defaults.language |
UI 语言:zh-CN / en-US |
providers.*.base_url |
API 地址 |
providers.*.api_style |
openai 或 anthropic |
providers.*.tool_format |
tools(推荐)或 functions(旧版 function calling) |
agent.max_tool_rounds_per_turn |
单轮最多工具调用次数 |
tools.shell.enabled |
是否启用 shell 工具 |
项目级配置可放在 .codei/config.toml;项目说明可写在 AGENTS.md 或 .codei/rules/。
完整设计见 docs/DESIGN.md。
CLI 命令
codei # 交互模式
codei -p "你的问题" # 单次执行
codei -c # 继续最近一次会话
codei -r <session-id> # 恢复指定会话
codei config show # 查看合并后的配置
codei config init # 创建用户配置
codei session list # 列出会话
codei session delete <id> # 删除会话
codei session export <id> # 导出 JSONL
codei mcp init # 创建 MCP 配置
codei mcp list # 列出 MCP 服务器
codei mcp add <name> -- <cmd> # 添加 MCP 服务器
TUI 快捷键
| 操作 | 按键 |
|---|---|
| 发送消息 | Enter |
| 滚动聊天 | PageUp / PageDown,Home / End |
| 选中复制(终端原生) | Shift + 鼠标拖动 |
| 复制全部聊天 | Ctrl+Shift+Y 或 /copy |
| 复制上一条助手回复 | Ctrl+Shift+L 或 /copy last |
| Slash 补全 | Tab,↑ / ↓ |
| 退出 | Ctrl+C |
| 工具审批 | y 同意 / n 拒绝 |
Slash 命令
在输入框中使用:
| 命令 | 说明 |
|---|---|
/help |
显示帮助 |
/exit, /quit |
退出 |
/clear |
清空当前会话消息 |
/compact |
压缩会话历史 |
/copy, /copy last |
复制聊天内容 |
/model <name> |
切换模型 |
/provider <name> |
切换 Provider |
/session list |
列出会话 |
/session new |
新建会话 |
/session resume <id> |
恢复会话 |
内置工具
| 工具 | 功能 |
|---|---|
read |
读取文件(支持行范围) |
write |
写入文件 |
edit |
按片段替换编辑 |
grep |
正则搜索代码库 |
glob |
按模式匹配文件路径 |
list_dir |
列出目录 |
shell |
执行 Shell 命令 |
definition |
查找符号定义 |
task |
启动子 Agent 处理子任务 |
MCP
在 ~/.config/codei/mcp.toml(或 codei mcp init 生成)中配置 MCP 服务器,启动时自动连接并将其工具注册为 mcp_<server>_<tool>。
codei mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
开发
# 测试
cargo test --workspace
# Lint
cargo clippy --workspace -- -D warnings
# 仅构建 CLI
cargo build -p codei
Crate 结构
crates/
├── codei-cli/ # 二进制入口
├── codei-tui/ # TUI
├── codei-agent/ # Agent 循环
├── codei-llm/ # LLM Provider 抽象
├── codei-tools/ # 工具注册与执行
├── codei-session/ # 会话与持久化
├── codei-commands/ # Slash 命令
├── codei-config/ # 配置加载
├── codei-mcp/ # MCP 客户端
├── codei-sdk/ # 程序化 API
└── codei-i18n/ # 国际化
许可证
Dual-licensed under MIT or Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file codei_cli-0.0.13-py3-none-any.whl.
File metadata
- Download URL: codei_cli-0.0.13-py3-none-any.whl
- Upload date:
- Size: 35.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e54aba1a20dd69eb2e78fd2e6f53ca9afb5c089ad95fd2de4f418f4c025fa1b
|
|
| MD5 |
f541d9b0415102de3d10bba0e6b23559
|
|
| BLAKE2b-256 |
626455a5312fffcbaeb8206d839c207d642e580d5dfd3eb86a0d1bd3466ddcdd
|