新一代桌面编码Agent

NekoCode 基于 pi 内核,把编码 Agent 需要的一整套环境收进一个桌面窗口。Fusion 让 Lead 模型负责规划与审查、Sidekick 负责实现与验证 —— 长任务因此又快又省;五种工作模式、真实终端、内嵌浏览器和拉取请求流程,都挂在同一个会话上。

支持 Windows、macOS 与 Linux · 无需账号、不含模型套餐、默认不上报遥测

原生工作模式

五种模式,不是五段提示词。

每种模式固定一套纪律和一套工具,只读的那几种由运行时强制执行,而不是靠提示词自律。任务性质变了就换模式 —— 调查、决策、实现和复现本来就不是同一件事。

Agent

给它一个目标,让它自己选路子

全自动模式。模型读完任务后自行在回答、规划、执行和调试之间切换,不需要你每个请求都选一次模式。大多数工作应该从这里开始。

可读可写,边界由你设定的执行权限决定

Ask

只回答问题,不碰任何文件

只根据代码和对话回答。适合在不是你写的仓库里先摸清结构,或者在决定改动之前确认某个符号到底做什么。

只读,由运行时强制,而非提示词约束

Plan

先给出计划,你批准之后才动文件

先调查,再产出一份计划,并列出打算改动的文件。计划会以真实的确认卡片返回,所以批准是你做出的决定,而不是一段被划过去的文字。

在你批准计划之前保持只读

Debug

先复现,再收窄,最后才修

为每个会话保留 NDJSON 日志,从真实的复现出发而不是靠猜。纪律本身就是功能:没有观察到失败之前,不会提出修复。

可读可写;复现会先于修复被记录下来

Multitask

一个目标,四个后台 worker

Lead 拆解目标并并行运行最多四个 PI worker,每个都有自己的状态、结果和声明的可写路径范围。Worker 没有 shell,也不能继续向下委派 —— 这正是四个 worker 不会互相覆盖的原因。

可写的 worker 被限制在 Lead 声明的路径范围内

执行权限是另一个独立设置

只有你能提高它,任何模式都不会。

只读

仅查看,磁盘上不会有任何改动。

自动

直接编辑,不再询问;执行命令仍走审批。

完全访问

直接编辑并执行命令,不做任何拦截。

以上都不是沙箱。工具以你的用户权限运行 —— 见 这意味着什么、又不意味着什么.

模型与端点

悬停可暂停

带自己的模型,用自己的密钥。

NekoCode 不卖任何模型套餐。它对接你已经持有凭据的供应商 —— API Key 或 OAuth 登录,取决于对方要求哪种 —— 也对接任何说得出它所支持协议的自定义端点。

AnthropicAPI Key 或 OAuth
OpenAIAPI Key 或 OAuth
GoogleAPI Key 或 Vertex
DeepSeekAPI Key
MoonshotAPI Key
Z.aiAPI Key
QwenAPI Key
MiniMaxAPI Key
xAIAPI Key
OpenRouterAPI Key
MistralAPI Key
GitHub CopilotOAuth 登录
Amazon Bedrock云服务凭据
Google Vertex云服务凭据
Azure OpenAI云服务凭据
CerebrasAPI Key
GroqAPI Key
FireworksAPI Key
TogetherAPI Key
NVIDIA NIMAPI Key
Hugging FaceAPI Key
Cloudflare Workers AIAPI Key
Vercel AI GatewayAPI Key
BasetenAPI Key
Ollama本地运行 · 无需密钥

或者指向你自己的端点

填一个 Base URL、一种协议和一个模型 id 即可。密钥在写入时由系统钥匙串加密,之后不会再从设置或快照接口里读出来。

OpenAI Chat CompletionsOpenAI ResponsesAnthropic Messages

Fusion

两个模型,两份分工,一个回合。

规划与实现是两类不同的工作,也不该按同样的价钱计费。Fusion 把强模型放在需要判断的地方,把便宜的模型放在量大管饱的地方。

Lead 负责规划、审查和决策

Lead 模型持有目标,做调查,拍下设计上的决定,并对最终结果负责。这里应该选你手上最强的模型。

Sidekick 负责实现和验证

Sidekick 承接实现和检查。这是一个回合里量最大的部分,也正是便宜模型能省下钱的地方。

串行执行,上下文按需传递

辅助任务一次只跑一个,两个 worker 不会重复调查同一个文件,也不会互相覆盖编辑。只有任务真正需要的上下文才会跨过边界。

配置一次,按会话保留

Lead 和 Sidekick 在模型菜单里配置,并记住为新会话的默认值。选一个普通模型即退出 Fusion。

Agent 周围的那个窗口

Agent 碰过的东西,都已经在屏幕上。

一个会话不只是一段对话记录。它启动的终端、它改过的页面、它产出的 diff、以及你能退回去的那个点,都属于同一个任务 —— 这正是「验证」不必意味着再开一个窗口的原因。

真终端,不是日志视图

node-pty 驱动 xterm.js,所以开发服务器、测试 watcher 或交互式命令的行为和你自己的 shell 里一致。它开在启动它的那个任务旁边的抽屉里。

能把结果送回对话的浏览器

一个可停靠的浏览器,有标签页和地址栏,还有一个取色器式的选择工具 —— 点一下页面元素,它的名称、选择器和页面地址会追加进你的草稿。验证就发生在工作发生的地方。

三种范围的 diff

未暂存、已暂存和分支 —— stage、unstage 和 revert 都在同一个面板里完成,所以审查不需要离开应用去开第二个终端。

连对话一起回退的检查点

每个回合都会记一次恢复点。恢复时文件回到原样,对话也会退回到发起该回合的那条消息 —— 这才让走错方向变得可以随时放弃。

跑在真实调度器上的自动化

支持间隔、每日或标准五字段 cron。错过的窗口会在下一个 tick 补上而不是丢掉,每次运行都会留下带状态和摘要的历史记录。

Token 与费用统计

按天、按模型、按会话汇总,铺在一年长度的日历上 —— 「这到底花了我多少钱」这个问题,在应用里就有答案。

技能与插件

会话可调用的可复用指令集,以及能增加工具的可安装包 —— 可以在目录里浏览,并按项目或按用户启用。

不需要另一个 CLI 的拉取请求

PR 面板直接调用 GitHub 的 REST API。它会复用你保存的 token 或已登录 gh 的凭据,都没有时对公开仓库走匿名访问。

从 diff 到拉取请求

这里没有哪一步需要第二个终端。

任务收尾的时候,大多数 agent 工具会把你交还给 shell。NekoCode 把最后三步 —— 读改动、看它跑起来、开拉取请求 —— 留在产出它的那个窗口里。

01 / 审查

在你关心的范围里读这次改动

未暂存、已暂存或整个分支。该留的 stage,不该留的 revert,diff 就贴在产出它的那段对话旁边。

02 / 验证

先看它跑起来,再决定信不信

终端是真的 PTY,浏览器是真的浏览器,所以依据是构建结果和页面本身,而不是 agent 对它们的转述。

03 / 交付

在同一个窗口里开拉取请求

在面板里创建 PR、读它的描述、检查项和评论;想要完整页面时,用系统浏览器打开。

不需要 gh CLI 的拉取请求面板

面板直接调用 GitHub 的 REST API。凭据依次取:你在设置里保存的 token,已登录的 gh (如果装了),都没有时对公开仓库走匿名访问。只支持 github.com —— GitHub Enterprise 和 GitLab 会明确拒绝并给出说明,而不是半支持。

开源

信它之前,先读它。

NekoCode 是一个小而可读的应用:一层 Electron 外壳、一层带类型的 IPC 边界,以及作为同一仓库一部分的 pi agent 内核 —— 而不是被当作黑盒拉进来的依赖。

Renderer

React 19、Tailwind v4

会话、转录、停靠面板、审查与设置 —— 整个窗口。

Bridge

contextBridge · 类型化 IPC

一个带类型的接口 window.nekocode。渲染进程里没有 Node。

Main

Electron

AgentService、ModelConfigService、TerminalService 与 git,各司其职。

Kernel

pi · 同仓内置

AgentSession、SessionManager 与 ModelRuntime,和普通源码一样直接改。

构建于 earendil-works/pi 之上,它提供了 agent 内核与整套工具。

发布记录

它保护什么,不保护什么

把话说清楚,包括边界在哪。

编码 Agent 会在你的机器上执行命令,所以产品页真正有用的地方,是把边界说准。下面有些是保护措施,有两条则是 NekoCode 有意不去声称的能力。

未声称

执行不是沙箱

Agent 工具以你的用户权限运行。只读 / 自动 / 完全访问这一设置收窄的是交给模型的工具集 —— 它是一道护栏,不是操作系统级的边界。

未声称

在你愿意开 shell 的地方运行它

不要在不可信目录里运行,也不要用高权限账户运行。面对不可信的东西,诚实的答案是容器或一台独立机器。

已保护

内嵌浏览器是锁死的

访客页面在上下文隔离与沙箱下运行,没有 Node 集成,使用独立分区 —— 并且拒绝一切权限请求,包括摄像头、麦克风、定位和剪贴板读取。

已保护

凭据静态加密

自定义端点的密钥用系统钥匙串封存(Windows 上是 DPAPI,macOS 上是 Keychain),并以 0600 写入。密钥不会再从列表或快照接口里流出去。

已保护

端点在校验之后才会被保存

自定义 Base URL 必须是纯 http(s)。内嵌凭据、query 串、fragment 以及路径穿越编码一律拒绝,而不是「清洗」后放行。

已保护

你的密钥始终是你的

供应商流量从你的机器直接发往你选定的供应商。NekoCode 不运行任何模型服务,也不把你的提示词代理由此转发。

同样的说明也写在 仓库的安全说明里,在那里还能读到实现这些措施的代码。

常见问题

安装之前,你想知道的都在这里。

一个面向 Windows、macOS 和 Linux 的桌面编码 Agent,构建在 pi agent 内核之上,跑在 Electron 里。它把整条链路收在一个窗口里:五种原生工作模式、真实终端、内嵌浏览器、三种范围的 diff、检查点、定时自动化和拉取请求 —— 全部挂在同一个会话上。

不需要。pi 就在仓库里,与应用一起构建,也和其他源码一样在树内直接修改 —— 它不是那种被 pin 住的依赖。没有额外的运行时需要安装、登录或保持同步。

内置供应商覆盖 Anthropic、OpenAI、Google、DeepSeek、Moonshot、Z.ai、Qwen、MiniMax、Mistral、xAI、OpenRouter、GitHub Copilot 以及另外十多家,各自使用它本来就要求的凭据 —— API Key 或 OAuth 登录。你也可以添加任何说得出 OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages 的自定义端点。NekoCode 自己不卖任何模型套餐。

它们是两条独立的轴,而且是有意不合并的。工作模式 —— Agent、Ask、Plan、Debug、Multitask —— 固定模型工作的纪律。执行权限 —— 只读、自动、完全访问 —— 决定到底有哪些工具存在。Ask 和 Plan 由运行时强制只读,而不是在提示词里请求;权限也只有你能提高。

一个回合里用两个模型。Lead 模型负责规划、调查、拍设计决策并审查结果;Sidekick 模型承接实现和验证。两个都在模型菜单里配置,选择会被记为新会话的默认值。常见的搭配是拿手上最强的模型做 Lead,拿便宜的做 Sidekick。

每个目标最多跑四个后台 PI worker,各自有独立的状态和结果。可写的 worker 被限制在 Lead 声明的路径范围内,而且 worker 没有 shell,也不能继续向下委派。辅助任务还是串行执行而不是并发,这排掉了两个 agent 互相覆盖的另一种常见路径。

没有,而且应用自己也这么说。工具以你的用户权限运行;执行模式收窄的是工具集,不是操作系统级边界。在你愿意开 shell 的目录里运行它。面对不可信代码,请用容器或另一台机器。

不需要。它直接调用 GitHub 的 REST API。凭据依次解析:你在设置里保存的 token,其次本机已登录的 gh,最后是匿名访问 —— 对公开仓库来说,每小时 60 次够用。只支持 github.com;GitHub Enterprise 和 GitLab 会明确拒绝并说明原因,而不是半支持。

去你选定的供应商,除此之外没有别处。会话、设置和历史都写在你自己磁盘的 ~/.nekocode 下。NekoCode 不运行托管工作区,也不运行模型服务,所以没有账号要注册,链路上也没有中间人。

Windows(NSIS 安装包)、macOS(DMG 与 ZIP)和 Linux(AppImage 与 deb)。从源码构建需要 Bun 1.4 或更高版本;用安装包则不需要。

免费、开源、不需要账号。

装好应用,为你已经在用的供应商填一个密钥或做一次 OAuth 登录,然后指向一个仓库即可。没有东西要注册,也没有工作区要托管。

更想自己构建?需要 Bun 1.4+ 和 bun run pi:setup。源码与发布说明在 GitHub · 全部发布版本

社区

一起构建下一个未来

有任何问题或者是功能建议可以通过以下方式联系我们。