npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

windcode

v0.4.5

Published

npm CLI wrapper for the Windcode terminal coding agent

Downloads

369

Readme


项目简介

Windcode 是一个面向真实代码仓库的终端 Coding Agent。它可以理解项目、修改文件、执行命令、 运行测试,并在高风险操作前请求授权;同时提供多模型接入、多智能体协作、MCP/Skills/Plugins 扩展、会话恢复和长期记忆。交互界面基于 Textual,核心运行时也可以作为 Python SDK 使用。

它解决的核心问题是:让模型在真实、可审计、可回滚的开发环境中完成编码任务,而不是只在玩具 示例里演示。因此 Windcode 内置了权限审批、进程沙箱、会话持久化、运行预算和 Trace 追踪,让 开发者能在同一个 TUI 里完成从对话、改代码到运行测试、审查变更的完整闭环。

  • 面向人群:希望把 AI 接入日常开发流程的开发者与团队。
  • 使用形态:交互式 TUI(基于 Textual),核心运行时也可作为 Python SDK 使用。
  • 设计理念:安全优先、默认可审计、易于通过 MCP / Skills / Plugins 扩展。

演示

2026-07-19 00-21-22.png


2026-07-19 00-12-18.png


2026-07-19 00-28-41.png

功能

代码工作台

  • 在同一个 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 主动请求压缩。

多智能体协作

  • 支持 explicitproactive 两种委派策略,以及 researcher、worker、verifier 三类角色。
  • 可以并行派发独立任务,也可以通过 collaborate_subagents 进行 division、negotiation 或 hybrid 协作,由参与者分轮交换结果,再由独立 verifier 汇总。
  • 子智能体之间支持受控消息传递、同步轮次、超时、取消和聚合预算,TUI 会持续显示每个任务状态。
  • 写任务使用独立 Git Worktree,完成后检查提交、变更文件和验证结果,再由父智能体决定是否集成。
  • 子智能体继承经过角色和任务类型过滤的工具、MCP、Skills、权限与沙箱边界,禁止递归创建子智能体。

MCP、Skills、Hooks 与插件

  • 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,减少上下文膨胀,同时保留可追溯引用。

权限、沙箱与跨平台

  • 提供 plandefaultaccept_editsfull_access 四种权限模式,可在运行中切换。
  • 根据工具副作用、命令解析、工作目录、网络需求和沙箱状态计算风险,并支持仅本次允许、拒绝、 取消命令以及项目级命令前缀规则。
  • Linux 使用 Bubblewrap,macOS 使用 Seatbelt;支持 read_onlyworkspace_writedanger_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 支持 stdiostreamable_httpenable 控制可见性,required 只控制已启用服务的 启动连接。
  • 子智能体支持 explicitproactive 模式,并受并发数、单任务预算和聚合预算共同限制。
  • 运行预算可限制模型步骤、工具调用、总耗时、模型流空闲时间和 Shell 命令时间。
  • 沙箱 preset 包括 read_onlyworkspace_writedanger_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

许可证

Apache-2.0