安全、可扩展的终端 Coding Agent,让 AI 在真实代码仓库中理解项目、修改代码、执行命令并完成验证。
中文 · English
Windcode 是一个面向真实代码仓库的终端 Coding Agent。它可以理解项目、修改文件、执行命令、 运行测试,并在高风险操作前请求授权;同时提供多模型接入、多智能体协作、MCP/Skills/Plugins 扩展、会话恢复和长期记忆。交互界面基于 Textual,核心运行时也可以作为 Python SDK 使用。
它解决的核心问题是:让模型在真实、可审计、可回滚的开发环境中完成编码任务,而不是只在玩具 示例里演示。因此 Windcode 内置了权限审批、进程沙箱、会话持久化、运行预算和 Trace 追踪,让 开发者能在同一个 TUI 里完成从对话、改代码到运行测试、审查变更的完整闭环。
- 面向人群:希望把 AI 接入日常开发流程的开发者与团队。
- 使用形态:交互式 TUI(基于 Textual),核心运行时也可作为 Python SDK 使用。
- 设计理念:安全优先、默认可审计、易于通过 MCP / Skills / Plugins 扩展。
- 在同一个 TUI 中完成对话、文件读取与搜索、补丁修改、Shell 命令、测试和构建。
- 工具调用、推理状态、耗时、Token 用量、审批请求和子智能体进度实时展示。
- 支持任务队列、运行中取消、模型流重试以及空闲超时,网络流中断不会无限卡住界面。
- 内置 Provider、扩展、长期记忆、会话和历史回退管理界面。
- 未配置模型、Provider 配置无效或凭据文件不可读时仍可进入 TUI;界面会显示原因,并引导重新连接 Provider,不会因为模型初始化失败而退出整个应用。
- 提供异步 Python SDK,可订阅结构化事件、响应审批、取消运行、压缩上下文和管理子智能体。
- 原生支持 Anthropic Messages、OpenAI Responses 和 OpenAI-compatible 三种协议。
- 内置 OpenAI、DeepSeek、Moonshot AI、SiliconFlow、OpenRouter、智谱 AI、 阿里云、Groq、Mistral、xAI 和 Google Gemini 配置预设,也可连接自定义兼容端点。
- 支持主 Provider、显式 fallback chain、流式文本/推理/工具调用、网络错误重试和模型回退。
- Provider 可直接在
/model管理界面中新增、编辑、断开、设为默认和加载模型列表;API Key 可保存到独立凭据存储,也可通过环境变量提供。 - 模型流连续无数据时自动超时并重试,
model_stream_idle_timeout_seconds可配置。 - 上下文达到阈值时自动压缩,也可以使用
/compact主动请求压缩。
- 支持
explicit和proactive两种委派策略,以及 researcher、worker、verifier 三类角色。 - 可以并行派发独立任务,也可以通过
collaborate_subagents进行 division、negotiation 或 hybrid 协作,由参与者分轮交换结果,再由独立 verifier 汇总。 - 子智能体之间支持受控消息传递、同步轮次、超时、取消和聚合预算,TUI 会持续显示每个任务状态。
- 写任务使用独立 Git Worktree,完成后检查提交、变更文件和验证结果,再由父智能体决定是否集成。
- 子智能体继承经过角色和任务类型过滤的工具、MCP、Skills、权限与沙箱边界,禁止递归创建子智能体。
- MCP 同时支持 stdio 和 Streamable HTTP,可调用 Tools、Resources、Resource Templates 和 Prompts。
enable控制服务器是否可见,required只控制已启用服务器是否在启动阶段主动连接;单个 MCP 加载失败会显示降级状态,不会阻断普通对话;启动完成后会显示已加载、失败和按需加载数量。- 少量 MCP 工具可直接注入,较大目录通过
search_mcp_tools按需发现;模型调用名统一使用mcp_前缀,同名工具会自动消歧。 - Skills 从项目
.windcode/skills/<skill-name>/SKILL.md和用户~/.windcode/skills/<skill-name>/SKILL.md发现,同名时项目级覆盖用户级,并支持$skill-name激活。 - 本地插件通过
.windcode-plugin/plugin.toml组合 Skills、MCP Servers、Hooks 和自定义命令, 支持安装、信任、启用、禁用、检查和显式 reload。 - Hooks 覆盖会话、运行、工具策略前后、权限申请、上下文压缩及子智能体生命周期;决策 Hook 可以拒绝操作或收紧工具权限。
- 会话和事件增量持久化,支持恢复已有会话、选择历史输入回退、修改原输入后重新发送。
- 长期记忆区分用户画像、项目事实、经验、SOP 和参考资料,支持候选确认、拒绝、遗忘、搜索、 激活策略和索引重建。
- 稳定用户事实可以自动激活;经验和 SOP 结合真实变更与验证结果生成,避免把未验证结论直接固化。
- Trace 记录模型、工具、审批、扩展和子智能体事件,并提供保留天数、容量和瞬态事件配置。
- 大型工具结果可外置为会话 Artifact,减少上下文膨胀,同时保留可追溯引用。
- 提供
plan、default、accept_edits和full_access四种权限模式,可在运行中切换。 - 根据工具副作用、命令解析、工作目录、网络需求和沙箱状态计算风险,并支持仅本次允许、拒绝、 取消命令以及项目级命令前缀规则。
- Linux 使用 Bubblewrap,macOS 使用 Seatbelt;支持
read_only、workspace_write和danger_full_access三种沙箱 preset。 - Windows 默认使用 PowerShell,不启用 OS 沙箱;配置的沙箱 preset 在 Windows 上确定性降级为
danger_full_access,避免不可用后端反复触发提示。权限模式与危险命令检查仍然生效。
需要 Python 3.11+ 和 uv,支持 Linux、macOS 和 Windows。
uv tool install windcode
windcode .首次启动无需提前配置模型。在 TUI 中执行 /model,选择 Provider、填写模型和 API Key 即可;
密钥会进入独立凭据存储,不会写入项目配置。
其他安装方式:
# npm 包装器,需要 Node.js 20+ 和 uv
pnpm add --global windcode
# 安装到当前 Python 环境
uv pip install windcode| 入口 | 命令 | 说明 |
|---|---|---|
| TUI | windcode /path/to/project |
默认终端工作台 |
| Web | windcode web /path/to/project |
打开 http://127.0.0.1:8765 |
| Desktop | windcode desktop /path/to/project |
使用系统 WebView 打开桌面窗口 |
| Docker | docker run --rm -it -v "$PWD:/workspace" ghcr.io/tingfeng347/windcode:latest |
挂载当前目录并启动 TUI |
Web 仅监听本机回环地址,支持 --port 和 --no-open。Desktop 在 Linux 上优先使用
WebKitGTK;Windows/macOS 或 Linux fallback 安装时使用 uv tool install "windcode[desktop]"。
完整容器说明见 GHCR 镜像说明。
常用启动参数:
--config FILE
--model PROVIDER_OR_MODEL
--resume SESSION_ID
--permission-mode plan|default|accept_edits|full_access
--sandbox / --no-sandbox
/new 新建会话
/resume [SESSION_ID] 恢复会话
/rewind 选择历史输入并回退
/model [PROVIDER_ALIAS] 管理或切换模型与 Provider
/memory [ACTION] 管理长期记忆
/extensions [ACTION] [ID] 管理扩展、插件与信任状态
/compact 压缩当前上下文
/clear 清空当前消息显示
/agents 查看子智能体
/status 查看运行状态
/help 查看全部命令及插件命令
/quit 退出 Windcode
Shift+Tab 循环切换权限模式
Esc(连续两次) 中断当前运行
推荐直接在 /model 和管理界面中完成配置。需要文件配置时,以
.windcode/config.toml.example 为参考:用户级配置位于
~/.windcode/config.toml,项目级 .windcode/config.toml 优先级更高。
- API Key 只应通过环境变量或凭据存储提供,不要写入 TOML 或提交到 Git。
- 项目状态默认位于
.windcode/,包含会话、记忆、Trace、扩展和 Worktree;这些运行数据不要提交。 - MCP 支持
stdio和streamable_http;enable控制可见性,required只控制已启用服务的 启动连接。 - 子智能体支持
explicit和proactive模式,并受并发数、单任务预算和聚合预算共同限制。 - 运行预算可限制模型步骤、工具调用、总耗时、模型流空闲时间和 Shell 命令时间。
- 沙箱 preset 包括
read_only、workspace_write和danger_full_access。Linux 使用 Bubblewrap, macOS 使用 Seatbelt;Windows 不启用 OS 沙箱,但权限审批和危险命令检查仍然生效。
Provider 缺失或配置无效时,TUI 仍会启动并给出修复入口;TOML 语法错误等基础配置错误需要先按 终端提示修复。
uv sync --frozen --all-groups
uv run windcode .Web 前端位于 web/,由 React、TypeScript 和 Vite 构建:
pnpm install
pnpm web:dev # API :8765 + Vite :5173
pnpm web:build # 构建到 src/windcode/web/static/
pnpm web:test


