一个简单的命令行ai agent,快速和 ai 对话并得到结果
你可能会问,为什么不直接使用 opencode run 或者 codex exec 的非交互模式?
主要原因在于这些工具的非交互模式目前不支持流式输出,导致在等待长回复时体验不佳。而我需要一个:
- 轻量且快速响应的终端对话工具
- 支持流式输出,提供丝滑的问答体验
- 支持 MCP 和 SKILLS,扩展性强
- 能够让我在遇到问题时,随时随地在终端询问 AI,而无需离开当前的工作界面。
安装前请先安装 Bun。
npm install -g @fifsky/aichat
ai --config
ai 今天天气怎么样本地开发:
bun install
bun run build
./dist/ai --config
./dist/ai 今天天气怎么样首次使用可以通过交互式配置向导设置模型服务、模型名称、API Key 以及是否显示思考内容:
ai --config也可以使用 --set 直接更新配置项:
ai --config --set provider.baseURL=https://api.deepseek.com --set provider.model=deepseek-v4-pro配置路径为 ~/.config/aichat/aichat.json。
完整配置示例:
{
"provider": {
"name": "deepseek",
"baseURL": "https://api.deepseek.com",
"apiKey": "sk-xxx",
"model": "deepseek-v4-pro",
"thinking": {
"enabled": true,
"reasoningEffort": "high",
"showReasoning": true
}
},
"mcpServers": {
"example": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"env": {}
}
},
"skills": {
"enabled": true,
"dirs": ["~/.agents/skills"]
},
"tools": {
"ask": {
"enabled": true
},
"bash": {
"enabled": true,
"autoApprove": ["tvly *"],
"timeoutMs": 60000
}
},
"session": {
"path": "~/.aichat/sessions/default.json",
"maxMessages": 100
}
}对话上下文会保存在 ~/.aichat/sessions/default.json,上下文最多保留 100 条消息。如果需要重新开始一次干净的对话,可以执行:
ai --cleanai agent会自动加载~/.agents/skills目录下的所有文件作为 skills, 并通过内置的 Bash 工具执行。
Bash 工具默认只自动批准tvly *,其他命令会在终端确认后执行。
当 AI 对需求理解不清晰、缺少必要决策时,会使用内置的 ask 工具向用户追问。Ask 使用 @clack/prompts 组件渲染终端交互,支持单选、多选和自定义输入;每个问题最多展示 5 个选项。如果需要澄清多个问题,AI 会按步骤逐个询问。
