✦ 启 灵 ✦ 春 意 盎 然 · 灵 感 迸 发 ✦ 启 灵 ✦
____ _ _ _
/ __ \(_) | (_)_ __ __ _
| | | | | | | | '_ \ / _` |
| |__| | | |___ | | | | | (_| |
\___\_\_|_____|_|_| |_|\__, |
__/ |
❀ v0.4.3 · AI Coding Agent |___/ ❀
启灵 (QiLing) — 面向中国开发者的开源终端 AI 编程代理
灵感在春意盎然、朝气蓬勃的绿色中迸发
启灵是一个完全开源的终端 AI 编程代理,深度对标 Claude Code 的完整能力集,同时原生支持国产大模型。它运行在你的终端里,能够理解代码库、编辑文件、执行命令,以及完成复杂的多步骤编程任务。
启 (qǐ) = 开启、唤醒 · 灵 (líng) = 灵感、灵魂
启灵是你的 AI 结对程序员——理解你、执行你、陪你在代码的世界里穿行。
| Provider | 推荐模型 | 环境变量 | 特色 |
|---|---|---|---|
| Anthropic | claude-sonnet-4-6 | ANTHROPIC_API_KEY |
默认,能力最强 |
| MiniMax | MiniMax-Text-01 | MINIMAX_API_KEY |
百万上下文 |
| 通义千问 | qwen-plus / qwen2.5-coder-32b | DASHSCOPE_API_KEY |
编程专项 |
| 豆包 | doubao-1.5-pro-256k | ARK_API_KEY |
低成本高效 |
| 智谱 GLM | glm-4-plus / codegeex-4 | ZHIPUAI_API_KEY |
代码生成 |
| OpenAI | gpt-4o / o1 | OPENAI_API_KEY |
兼容 |
| Google Gemini | gemini-2.0-flash | GEMINI_API_KEY |
多模态 |
| AWS Bedrock | claude-sonnet-4-6 | AWS 凭证 | 企业私有云 |
| Google Vertex | claude-sonnet-4-6 | GCP 凭证 | 企业私有云 |
| Ollama | llama3.1 / deepseek-r1 | 无需密钥 | 本地离线 |
文件操作
FileRead— 读取文件(含 PDF、Jupyter、图片)FileEdit— 精确字符串替换,支持 replace_allFileWrite— 写入完整文件内容NotebookEdit/NotebookRead— Jupyter Notebook 支持
搜索与导航
Glob— 文件名模式匹配(含 head_limit / offset 分页)Grep— ripgrep 驱动的内容搜索(多行模式、context 行)RepoMap— 智能代码库地图生成ToolSearch— 延迟加载工具查询
Shell 执行
Bash— Unix/macOS/WSL,600s 超时,run_in_background后台PowerShell— Windows,完整 PS 支持
代理与协作
Agent— 递归子代理(含深度限制、worktree 隔离模式)SendMessage— 跨代理通信TeamCreate/TeamDelete— 多代理团队管理
任务管理
TodoWrite— 结构化任务列表(含activeForm实时状态)TaskCreate/Get/List/Output/Stop/Update— 后台任务生命周期
时间与调度
Sleep— 轻量等待(不占用 Shell 进程)CronCreate/Delete/List— 定时任务调度
LSP 智能
Lsp— Language Server Protocol 诊断
MCP 集成
McpTool/McpAuth— MCP 工具代理与鉴权ListMcpResources/ReadMcpResource— MCP 资源访问
Web
WebFetch— 抓取 URL,AI 提炼关键信息WebSearch— 网络搜索(Anthropic API)
其他
BriefTool— 结构化用户消息AskUserQuestion— 交互式提问SkillTool— Skills 技能调用RemoteTrigger— 远程触发器EnterPlanMode/ExitPlanMode— 计划/行动模式切换EnterWorktree/ExitWorktree— Git Worktree 隔离
| 命令 | 功能 |
|---|---|
/help |
显示所有命令和键盘快捷键 |
/commit |
AI 辅助生成 git commit(含安全规则) |
/review [PR#] |
GitHub PR 代码审查(用 gh CLI) |
/init |
分析代码库,生成 QILING.md 项目记忆 |
/memory |
查看当前记忆文件内容 |
/compact |
智能压缩上下文(CC BASE_COMPACT_PROMPT) |
/cost |
会话 Token 用量与费用统计 |
/fast |
切换快速模式(claude-opus-4-6) |
/diff |
显示当前工作区 git 变更统计 |
/restore |
恢复文件到会话开始前的状态 |
/doctor |
诊断运行环境(Runtime/API Key/外部工具) |
/plan |
进入只读计划模式(防止意外写入) |
/act |
退出计划模式,回到执行模式 |
/test |
AI 辅助运行测试并分析失败原因 |
/repomap |
显示代码库结构地图 |
/open [file] |
在 VS Code / Cursor / vim 中打开文件 |
/pr |
创建 / 查看 GitHub Pull Request |
/bg |
后台代理列表管理 |
/plugins |
插件管理 |
/setup |
初始化配置向导 |
另有 REPL 内置命令:/model /config /skills /resume /history /clear /exit ! <cmd>(直接执行 Shell)
qiling [prompt] [选项]
核心
-p, --print 非交互输出模式(适合管道、脚本)
-m, --model <model> 指定模型(如 sonnet, opus, haiku 或完整名称)
--provider <name> 指定 Provider(anthropic/minimax/qwen/doubao/glm/openai/gemini/ollama/bedrock/vertex)
--effort <level> 思考力度:low / medium / high / max(映射到 thinking budget)
--thinking <tokens> 直接指定 extended thinking token 预算
会话
-c, --continue 继续最近的对话
-r, --resume [id] 恢复指定会话(不加 id 则交互选择)
--session-id <uuid> 指定会话 ID
-n, --name <name> 为会话设置显示名称
权限
--yolo 跳过所有权限确认(危险!仅受信任环境)
--dangerously-skip-permissions 同上,CC 兼容别名
--readonly 只读模式,禁用所有写入/执行工具
上下文
--system-prompt <text> 替换默认系统提示
--append-system-prompt <text> 追加到默认系统提示
--add-dir <dirs...> 加载额外目录的 QILING.md
--proactive 主动模式:AI 自主探索执行,响应 tick 周期检查
输出
--output-format <fmt> text(默认)/ json / stream-json
--max-turns <n> 最大代理轮数(-p 模式)
--max-budget-usd <amt> 最大费用上限(-p 模式)
--verbose 详细输出(工具名称、耗时)
工具过滤
--allowed-tools <tools> 只允许指定工具(逗号分隔)
--disallowed-tools <tools> 禁止指定工具
MCP
--mcp-config <json|file> 加载 MCP 服务器配置
--settings <file|json> 额外设置文件或 JSON 字符串
子命令
qiling mcp list 列出已配置的 MCP 服务器
qiling mcp add <n> <cmd> 添加 MCP 服务器到 settings.json
qiling mcp remove <n> 删除 MCP 服务器
qiling auth status 显示 API Key 配置状态
qiling auth set-key <p> <key> 保存 API Key 到配置文件
qiling doctor 运行环境诊断
qiling version 显示版本和运行时信息
从源码运行(推荐开发者):
git clone https://github.com/Aswellle/QiLing-Agentic-Coding
cd QiLing-Agentic-Coding
bun install
bun run dev构建可执行文件:
bun run build:windows # Windows .exe
bun run build # 当前平台
bun run build:all # 全平台# 设置 API Key(选一个或多个)
export ANTHROPIC_API_KEY=sk-ant-... # Anthropic Claude
export DASHSCOPE_API_KEY=sk-... # 通义千问
export ARK_API_KEY=... # 豆包
export ZHIPUAI_API_KEY=... # 智谱 GLM
export MINIMAX_API_KEY=... # MiniMax
export OPENAI_API_KEY=sk-... # OpenAI
export GEMINI_API_KEY=... # Google Gemini
# 或者通过 CLI 配置
qiling auth set-key anthropic sk-ant-...# 交互模式
qiling
# 切换 Provider 和模型
qiling --provider qwen --model qwen2.5-coder-32b
qiling --provider ollama --model deepseek-r1 # 本地,无需 Key
# 非交互(脚本/管道)
qiling -p "解释这个函数的作用" < src/main.ts
echo "修复这个 bug" | qiling -p --output-format stream-json
# 思考模式(需要 Claude Sonnet 4.6+ / Opus)
qiling --thinking 16384
qiling --effort high # 等价于 thinking=16384
qiling --effort max # thinking=32768
# 主动模式(AI 自主工作)
qiling --proactive
# 恢复上次会话
qiling -c
qiling -r # 交互式选择历史会话在 ~/.qiling/settings.json(全局)或 .qiling/settings.json(项目)中配置:
{
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"thinkingBudget": 8192,
"ui": {
"language": "zh-CN",
"theme": "dark",
"vimMode": false
},
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..." }
}
},
"hooks": {
"PreToolUse": [{ "type": "command", "command": "echo 'tool: $TOOL_NAME'" }],
"PostToolUse": [],
"Stop": []
}
}启灵自动加载以下位置的 Markdown 记忆文件,注入为系统提示上下文:
~/.qiling/QILING.md ← 全局个人偏好、工作方式
./QILING.md ← 项目级架构和规范
./CLAUDE.md ← 兼容 Claude Code(自动识别)
./.qiling/QILING.md ← 项目私有配置(不提交 git)
运行 /init 让 AI 自动分析项目并生成 QILING.md。
main.tsx (CLI 入口, Commander.js)
↓ 加载配置 (CLI > .qiling/ > ~/.qiling/ > 默认)
↓ createProvider(settings) // src/providers/index.ts
↓ buildToolRegistry(settings) // src/tools/index.ts
↓ 加载 MCP 工具 + Skills
↓ 渲染 Ink REPL (src/components/REPL.tsx)
PromptInput → runQuery() → Provider.stream()
→ 收集 tool_use 块
→ PermissionManager.check()
→ 执行工具(只读工具并发)
→ 递归直到无 tool_use
→ 自动压缩(token 用量 > 80%)
技术栈
| 层 | 技术 |
|---|---|
| Runtime / Build | Bun 1.x,单二进制编译 |
| TUI | Ink 5.x + React 18 |
| AI | @anthropic-ai/sdk + openai SDK(兼容适配器) |
| CLI | Commander.js |
| 验证 | Zod |
| Lint | Biome(Rust,替代 ESLint + Prettier) |
关键模块
| 路径 | 职责 |
|---|---|
src/query.ts |
runQuery() — 完整代理循环 |
src/providers/index.ts |
10+ AI Provider 工厂 |
src/tools/index.ts |
buildToolRegistry() — 42 个工具 |
src/permissions/manager.ts |
权限检查 + 决策记录 |
src/permissions/classifier.ts |
Bash 命令风险分类(高/中/低) |
src/compact/engine.ts |
上下文压缩引擎(CC BASE_COMPACT_PROMPT) |
src/hooks/index.ts |
PreToolUse / PostToolUse / Stop 生命周期钩子 |
src/context.ts |
用户上下文注入(CLAUDE.md + git 状态) |
src/vim/ |
完整 Vim 模式栈(operators, motions, textObjects) |
# 开发模式
bun run dev
bun run dev:debug # QILING_DEBUG=1
# 测试
bun test
bun test --grep "MEDIUM RISK"
bun test --coverage
# 类型检查 & Lint
bun run typecheck # tsc --noEmit
bunx @biomejs/biome check src/
bunx @biomejs/biome check --write src/
# 构建
bun run build # 当前平台
bun run build:windows # Windows .exe
bun run build:all # 全平台测试使用 Bun 原生测试运行器(从 bun:test 导入,非 Jest/Vitest)。
欢迎 PR!请参考:
- 架构概览 — 核心模块说明
- Issues — 功能请求 / Bug 反馈
- Discussions — 设计讨论
代码规范:Biome lint + TypeScript strict;测试使用 bun:test(非 Jest)。
MIT © 2026 QiLing Contributors
✦ 春风送暖入屠苏 · 万象更新启灵途 ✦
GitHub · Issues · Discussions