轻量级、插件式的 code agent CLI。基于 Anthropic API 的交互式编程辅助工具,核心设计理念是简洁和可扩展。
- 轻量 — 最小依赖,快速启动,聚焦核心的代码编辑工作流
- 插件式 — 核心只做编排,功能通过插件扩展,按需加载
- 可组合 — Middleware 机制让插件可以自由组合、拦截和增强 agent 行为
Mica 提供两层扩展点:
通过 agentTurn.use(middleware) 注册,可拦截每次用户输入的处理流程。典型用途:
- AutoCompactPlugin — 自动压缩过长的 tool result 以节省上下文窗口
- ErrorHandlerPlugin — API 调用失败时自动重试(退避策略)
继承 MicaPlugin 可获得 agent 实例引用、全局 store atom 访问、输入处理器注册等能力。内置插件:
| 插件 | 功能 |
|---|---|
AutoCompactPlugin |
自动压缩上下文中的 tool result,保留最近 3 条完整结果 |
ErrorHandlerPlugin |
API 可重试错误自动重试(3 次,指数退避) |
QuickCommandLogPlugin |
/session-export — 导出会话记录 |
QuickCommandClearPlugin |
/clear — 清空对话 |
QuickCommandModelPlugin |
/model-switch 切换模型,/model-effort 设置推理强度 |
DebugExportAtomPlugin |
/debug-export-atom — 导出所有内部状态 |
插件在 src/index.ts 中按需加载:
import { AutoCompactPlugin } from './plugins/agent/auto-compact-plugin';
import { ErrorHandlerPlugin } from './plugins/agent/error-handler-plugin';
await MicaAgent.usePlugin(new AutoCompactPlugin());
await MicaAgent.usePlugin(new ErrorHandlerPlugin());import { MicaPlugin } from '../plugins/MicaPlugin';
export class MyPlugin extends MicaPlugin {
onInstall() {
// 通过 this.agent 访问 agent 实例
// 通过 this.store 访问全局状态
this.addQuickCommand({
name: 'my-command',
description: '我的命令',
action: () => this.showStatus('hello'),
});
}
}# 安装依赖
npm install
# 构建
npm run build
# 全局安装(可选)
npm install -g .# 开发模式
npm run dev
# 构建后运行
mica| 变量 | 说明 | 默认值 |
|---|---|---|
ANTHROPIC_API_KEY |
API 密钥 | (必填) |
ANTHROPIC_BASE_URL |
API 端点 | https://api.deepseek.com/anthropic |
ANTHROPIC_MODEL |
模型 | deepseek-v4-flash |
ANTHROPIC_MAX_TOKENS |
最大 token 数 | 8192 |
| 工具 | 说明 |
|---|---|
read_file |
读取文件 |
write_file |
写入文件 |
edit_file |
字符串替换编辑文件 |
list_files |
glob 模式列出文件 |
grep_search |
正则搜索 |
run_shell |
执行 shell 命令 |
| 命令 | 说明 |
|---|---|
/model-switch |
切换模型 |
/model-effort |
设置推理强度 (none/low/medium/high) |
/clear |
清空对话 |
/session-export |
导出会话记录 |
/debug-export-atom |
导出所有内部状态 |
- ink — React 驱动的 CLI 渲染
- nanostores — 轻量状态管理
- esbuild — 构建打包
- Anthropic SDK — API 客户端
MIT