命令行 AI 助手(对标 ClaudeCode)。当前里程碑:纯对话能力 —— 终端交互、流式逐字输出、多轮上下文、多 Provider 后端、Claude extended thinking。
- 交互式对话(REPL),流式逐字输出(SSE)
- 进程内多轮上下文
- 支持 Anthropic Claude 与 OpenAI 两类后端,YAML 配置切换
- Anthropic extended thinking,思考过程可见、可运行时切换隐藏
- 统一 Provider 接口,便于扩展新后端
需要 Python 3.11+。
pip install -e ".[dev]"配置文件默认位于 ~/.config/micode/config.yml,可用 --config 覆盖。可在 profiles: 下定义多个 profile,每个含六个字段:
| 字段 | 必填 | 说明 |
|---|---|---|
name |
— | profile 标识,即 profiles: 下的键名 |
protocol |
是 | 协议:anthropic 或 openai |
model |
是 | 模型名 |
base_url |
是 | 请求地址(可用自定义/兼容端点) |
api_key |
是 | 认证密钥;支持明文或 ${ENV_VAR} 引用环境变量 |
thinking |
否 | 是否启用扩展思考(仅 Anthropic 生效) |
顶层 default: 指向某个 profile 名作为默认。
api_key 支持 ${ENV_VAR} 形式引用环境变量,便于把密钥排除在版本库之外。引用的环境变量未设置时,该 profile 标记为不可用(不影响其它 profile)。参见 config.example.yml。
export ANTHROPIC_API_KEY=sk-...
micode # 用默认 profile
micode --profile gpt # 指定 profile
micode --config path.yml # 指定配置文件| 命令 | 作用 |
|---|---|
/help |
显示命令 |
/show |
显示当前 profile |
/clear |
清空对话上下文 |
/use <name> |
切换 profile(上下文保留) |
/thinking [on|off] |
切换思考过程显示 |
/exit /quit |
退出(或 Ctrl+D) |
流式输出中按 Ctrl+C 中断当前回复(已输出内容保留,并计入上下文);输入态 Ctrl+C 仅提示、不退出。
src/micode/
├── cli.py 入口、装配
├── config.py 配置加载、${VAR} 解析、profile 选择
├── chat.py 会话 REPL、命令分发、事件消费
├── ui.py 输入与流式渲染
└── providers/ 统一 Provider 接口 + Anthropic/OpenAI 实现 + 工厂
pytest -q # 单元测试
mypy src/micode # 类型检查
ruff check src tests # lint设计文档见 docs/specs/(spec / plan / task / checklist)。