Skip to main content

终端优先的 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,以及子 Agent task
  • 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 openaianthropic
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 / PageDownHome / 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codei_cli-0.0.13-py3-none-any.whl (35.3 MB view details)

Uploaded Python 3

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

Hashes for codei_cli-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 4e54aba1a20dd69eb2e78fd2e6f53ca9afb5c089ad95fd2de4f418f4c025fa1b
MD5 f541d9b0415102de3d10bba0e6b23559
BLAKE2b-256 626455a5312fffcbaeb8206d839c207d642e580d5dfd3eb86a0d1bd3466ddcdd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page