CodePilot

Your multi-model AI agent for

Auth JWT refactor
Message Claude...
claude-sonnet-4
Design AgentDefault

One client for all your AI providers. Conversations, 17+ providers, MCP extensions, and project context — in one place.

Multi-session chat

Run multiple conversations with independent context.

Code · Plan · Ask

Three modes for different workflows.

Permission control

Confirm before Claude modifies files.

Assistant Workspace

Inspect files and review changes live.

Persona & Memory

Consistent behavior across sessions.

Skills

Reusable prompt patterns you can share.

Session persistence

Pick up where you left off after restart.

Onboarding

Auto-detect project structure on first run.

Fully open source. Use your own API key. No middleman, no markup.

Open Source

Every line of code is public on GitHub. Audit, fork, or contribute.

Bring Your Own Key

Connect directly to Anthropic, OpenAI, Google, or any provider with your own API key.

Community Driven

Built in the open with feedback from developers who use it every day.

Frequently asked questions. Everything you need to know before getting started.

Yes. CodePilot is completely free and open source. You only pay for the API usage from your chosen provider.

Anthropic, OpenRouter, AWS Bedrock, Google Vertex, Zhipu GLM, Kimi, Moonshot, MiniMax, Volcengine Ark, Xiaomi MiMo, Aliyun Bailian, Ollama, LiteLLM, and any Anthropic-compatible or OpenAI-compatible endpoint — 17+ providers out of the box.

No. CodePilot works with your own API key directly — no Claude Code subscription required.

No. All API calls go directly from your machine to the provider. CodePilot never sees your code or conversations.

CodePilot supports macOS (Apple Silicon & Intel), Windows (x64), and Linux (x64 & arm64). Download the latest version for your platform from the GitHub releases page.

What's New in CodePilot

v0.54.0Apr 24, 2026

新增功能

  • DeepSeek 服务商 — 在服务商列表里新增 DeepSeek 独立预设,走官方 Anthropic 兼容端点 `api.deepseek.com/anthropic`,只需填 Key 即用。默认主模型 DeepSeek V4 Pro,Haiku 档位映射到更便宜的 DeepSeek V4 Flash,压缩/总结这类辅助调用能自动走便宜档
  • OpenAI OAuth 支持 GPT-5.5 — ChatGPT Plus/Pro 授权登录后,模型下拉里新增 GPT-5.5(排在 GPT-5.4 之上),新会话未指定模型时默认用 GPT-5.5

修复问题

  • 切换服务商时环境变量残留 — 之前如果用户在系统环境里设过 DeepSeek 文档里的 `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` / `CLAUDE_CODE_EFFORT_LEVEL`,切到其它服务商后这两个变量仍会带到子进程里,影响其它服务商的请求行为。现在切换服务商时会连同这两个 key 一起清掉,避免跨服务商污染

优化改进

  • 小米 MiMo 升级到 V2.5-Pro — 按量付费和 Token Plan 两个预设里的默认模型从 `mimo-v2-pro` 全部切到 `mimo-v2.5-pro`,界面上显示名也同步更新为 MiMo-V2.5-Pro

macOS

  • Apple Silicon (M1/M2/M3/M4)
  • Intel

Windows

  • Windows 安装包
v0.53.0Apr 22, 2026

新增功能

  • OpenAI GPT Image 2 图像生成 — 设计 Agent 的服务商列表里新增 OpenAI (Image) 一档,支持 GPT Image 2 / 1.5 / 1 / 1-mini 四个模型。GPT Image 2 尺寸按官方规格算真实的像素比:1:1/16:9/9:16/3:2/2:3/4:3/3:4/4:5/5:4/21:9 十个比例 × 1K/2K/4K 三档分辨率,每一档都会尊重你选的比例而不是套用老三档(1024×1024 / 1536×1024 / 1024×1536)。支持参考图(垫图)走 `/v1/images/edits` 端点,连续编辑不再被丢弃
  • 媒体服务商第三方兼容 — Nano Banana 和 GPT Image 都多了"Third-party"预设,只需要填 Base URL 和 Key,其他配置完全照搬官方。现在可以把图像生成走自己架设的 OpenAI 兼容 / Gemini 兼容代理
  • 当前图像模型实时显示 — 聊天里的"图片生成"卡片右上角会显示当前要用的模型和服务商(比如"GPT Image 2 · OpenAI (Image)")。当默认服务商缺 Key 或被改过类型时会显示琥珀色提示,点一下跳到设置页
  • "图片生成默认"服务商标记 — 同时配了多个图像服务商的用户,现在可以在设置里一键把某一行设为"用于图片生成"。点某个服务商下的模型胶囊按钮会自动把那一行标为默认

优化改进

  • 设计 Agent 选型更确定 — 原先同时配置多个图像服务商时由数据库行顺序决定用哪个,行为不可控。现在走"显式 providerId → 模型名家族前缀 → 用户设定的默认 → 优先 Gemini 兼容"四步优先级,每一步都可预测
  • 第三方媒体服务商连接测试正确路由 — 之前 OpenAI/Gemini 图像服务商的"测试连接"按钮跑的是 Anthropic `/v1/messages` 探针,对这两个服务永远失败。现在 OpenAI Image 走 `GET /v1/models` + Bearer,Gemini Image 走 `GET /v1beta/models?key=...`,第三方配置也能真实验证
  • 服务商 Base URL 精确匹配加上协议隔离 — 加入 GPT Image 后 `https://api.openai.com/v1` 同时属于多个预设。之前聊天用的 openai-compatible 服务商在这个 URL 下会错误继承 GPT Image 模型目录,现在精确匹配会检查协议一致性
  • 第三方媒体服务商强制要求 Base URL — 创建和编辑时如果 OpenAI/Gemini Image 的 Base URL 为空会被拦下并提示。之前留空会静默回落到官方端点,让"第三方配置"形同虚设
  • 失效默认图像服务商有清理入口 — 默认图像服务商的行被删除、类型被改成非媒体类型、或 Key 被清空时,服务商设置页会显示一条琥珀色提示 + 清除按钮。后端也会在删除/改类型时自动清理设置,两边兜底

macOS

  • Apple Silicon (M1/M2/M3/M4)
  • Intel

Windows

  • Windows 安装包
v0.52.1Apr 21, 2026

修复问题

  • 升级后"欢迎页关了还弹"死循环 — v0.52.0 升级后有用户反馈每次新建对话、延续老对话都会跳回欢迎页。尤其是没有手动加过服务商、直接用 Claude Code 的用户,点"添加服务商"没反应、点"跳过"也关不掉。根因是首次引导的"已完成"标记在三张卡都已完成 / 跳过的情况下没被补上,以及从欢迎页点"添加服务商"跳转到设置页时的哈希被全局中间件吞掉。本版从后端和前端两层都做了归一化:老用户升级后第一次打开就会自愈,以后点"跳过并进入"或"添加服务商"不再复发
  • 点"添加服务商"真的跳到服务商设置页 — 之前点这个按钮会跳到 `/settings#providers`,但被欢迎页的全局哈希拦截器重新吞回去,视觉上像"点了没反应"。现在能直接落到服务商管理页,SettingsLayout 自己处理 `#providers` 哈希路由
  • 服务商卡片跳过后显示矛盾 — 卡片右上角已经是灰色 Skipped 状态 chip,但卡片内容里还渲染着一个蓝色的"添加服务商"主按钮,两种状态对不上。跳过后的卡片现在显示"已跳过,可在 设置 › 服务商 里随时添加"+ 一个小链接,整体视觉一致
  • Artifact 卡片 + 预览面板按钮漏做中文翻译 — v0.52.0 新加的聊天里 AI 修改文件时的 Artifact 卡片("预览" / "导出截图"两个按钮)、预览面板头部的 Tab 栏("编辑" / "源码" / "预览")以及头部工具按钮("保存" / "复制内容" / "导出长图" / "关闭预览")在中文界面里全部还是英文。本版 12 个 key 补齐中文翻译

优化改进

  • 欢迎页持久化用 await + keepalive 加固 — 之前点"添加服务商"后先 fire-and-forget 写入"已完成"标记再跳转,有小概率请求在页面卸载时被中止,下次启动还弹。现在跳转前明确 await 这次写入,并加 `keepalive: true` 双保险
  • 欢迎页手动打开时不再被自动关闭 — 当三张卡都已完成 / 跳过时手动从其他入口(比如跳过过的服务商卡片里的"打开服务商设置")打开欢迎页,之前会 800ms 后自动消失(因为统一触发了 auto-close)。现在只有本次会话里从 "还没完成" 推进到 3/3 才会自动关,手动打开的会保留

macOS

  • Apple Silicon (M1/M2/M3/M4)
  • Intel

Windows

  • Windows 安装包
v0.52.0Apr 21, 2026

新增功能

  • Artifact 支持 React 组件预览(.jsx / .tsx) — AI 在聊天里生成或修改 `.jsx`/`.tsx` 时,聊天里会出现 Artifact 卡片;点击 "Open preview" 在侧栏看到实时渲染结果。支持 React hooks、Tailwind utility 和 `react`/`react-dom`/`lucide-react` 等白名单依赖。第一版聚焦"单文件 React 组件",多文件项目 / `@/` 路径别名 / CSS import 这类复杂场景会明确提示"当前不支持",不会无声失败
  • Artifact 支持 CSV / TSV 表格预览 — AI 生成或写入的 `.csv`/`.tsv` 文件在聊天里会有卡片,文件树里点击也默认进入表格视图。支持点列头排序、一键导出 CSV / JSON
  • Markdown 文件直接在预览面板里编辑 — 之前只能看不能改;现在 `.md` / `.mdx` / `.txt` 打开后可以在 "Edit" 视图直接用 CodeMirror 6 编辑,1 秒停笔后自动保存到磁盘,不用切到 Obsidian。Tab 缩进、⌘S 主动保存、深色主题跟随系统都已支持
  • HTML Artifact 一键导出长图 — 预览 HTML 时标题栏有"导出长图"按钮,一次把整页渲染成 PNG(超过视口高度也能完整抓到),直接下载到本地。同一张卡片在聊天里也能导出
  • 文件树新建文件 / 文件夹 — 文件树任务分割线下方有 VS Code 风格的 "New Markdown" / "New Folder" 按钮;点击某个文件夹会高亮选中,之后新建的文件会落到这个文件夹里
  • 聊天里 AI 修改过的文件变成 Artifact 卡片 — 以前 AI 修改多个文件时只是一行小字 "Modified 3 files",现在每个可预览的文件(Markdown / HTML / JSX / TSX / CSV / TSV)都是一张独立卡片,带 Created / Modified 状态 chip + "Open preview" 按钮,非预览类文件收进底部一行 "Also modified: ..." 不占空间
  • 文件写入 / 删除 / 改名 / 新建文件夹四套 API — `.md` 编辑靠它保存;删除走系统回收站(不是真删),误操作可以在访达/资源管理器的回收站恢复;路径安全检查统一走 symlink 拒绝 + 真实路径比对,不允许跨工作区写入

修复问题

  • 快速切换多个 `.tsx` 文件时预览错乱 — 之前点 A.tsx 看到 A,切到 B.tsx 还是 A;根源是 Sandpack 运行入口没有按文件重建。现在每个文件有独立 provider 实例 + 内容哈希,切换即时生效
  • 文件预览首帧闪旧内容 — 点击新文件时面板会短暂显示上一个文件的内容再切到新的。现在内容会在新路径加载前被清空,不会再闪
  • Markdown 自动保存偶尔把 A 文件的内容写到 B 路径 — 快速切文件时的罕见 race condition,现在保存前先确认"当前预览的文件"和"编辑器里的文件"一致才写入
  • 预览文件请求能跟随符号链接到工作区外 — 即使工作区本身是 symlink 也能兼容,但如果目标文件自身是 symlink 则拒绝访问,防止信息泄露

优化改进

  • Markdown 预览上限从 1000 行 / ~30KB 放宽到 50000 行 / 10MB — 真实长文档(论文、长篇博客、大段 changelog)可以完整打开。超过上限时会在顶部显示截断提示,明确告诉你看到的是前 N 行
  • 预览列表加截断提示横幅 — 文件太大被截断时有一行黄色提示说明原因(按行数 / 按字节),而不是静默显示不完整的内容
  • 二进制文件预览时给占位说明 — 打开 PNG / 字体 / 可执行文件不会再看到一串乱码,会显示"该文件是二进制格式,无法作为文本预览"
  • 代码高亮缓存从聊天到预览共享 — 之前聊天和预览各用一套无上限的 Shiki 高亮器缓存,长会话后占内存。现在合并到同一个 10 个 highlighter + 200 个 token 结果的 LRU 上
  • Preview 面板现在支持聊天里提取的内联内容 — 为后续"AI 直接在聊天里出内联表格 / HTML 片段"铺垫好了数据模型(PreviewSource 联合类型)
  • 聊天 AI 生成的文件路径自动解析 — 有些工具返回的是相对路径,以前点击卡片会 404;现在会和当前工作目录拼接后再打开
  • 新建文件 / 编辑器 / 表格 / Sandpack 都是按需加载 — 不打开预览的场景不会多吃首屏 bundle

macOS

  • Apple Silicon (M1/M2/M3/M4)
  • Intel

Windows

  • Windows 安装包
v0.51.1Apr 19, 2026

修复问题

  • 压缩后模型不再调用工具,而是把工具调用写成文本 — 这是最严重的一个问题。到会话中段(通常是第一次自动压缩或手动 `/compact` 之后),模型会开始输出类似 `(used Read: {"file_path":"..."})` 这样的纯文本,工具实际上没有执行,聊天气泡里只是在"叙述"它本该做的事情。本版从压缩时的历史重写机制入手彻底修复
  • 手动 `/compact` 之后反复被自动压缩 — 之前压缩只是把摘要写入数据库,但 Claude Code SDK 会继续用它自己的完整历史做 resume,摘要实际上没有被模型看到,下一轮又会命中上下文上限再次触发压缩。现在压缩成功后会强制切换到"摘要 + 最近消息 + 当前提问"的新会话,SDK 会从干净的状态继续
  • `/compact` 的"上下文已压缩..."系统提示被错误写入对话历史 — 这条本意是给用户看的消息被保存成了 assistant 消息,之后模型每轮都会看到它,多次压缩后甚至会被下一次压缩连同正文一起总结进新摘要。现在这条提示只在当轮通过 SSE 推给前端,不再进数据库
  • 对话很短时使用 `/compact` 的"新消息不多"提示同样被错误持久化 — 同上处理,只推前端不入库
  • 压缩成功后前端"已压缩"指示器偶尔不翻转 — 之前反应式压缩(上下文超长时后台自动触发的压缩重试)走的状态事件格式与前端期待的不一致,导致 `hasSummary` 不更新。三条压缩路径的事件格式现在收敛到同一个 helper,前端一致识别
  • 反应式压缩成功后新 SDK 会话未持久化 — 超长上下文触发的自动压缩重试如果成功,下一轮应该走新的 SDK 会话继续;之前没有把新 session id 写回数据库,下一轮又会走 fallback 全量历史,等于压缩白做。现在反应式压缩也会持久化新 session id
  • 二次手动 `/compact` 重复总结已压缩内容 — 第二次 `/compact` 之前会把已经被上次压缩覆盖过的全部历史再喂给摘要器一次,不仅浪费 token,还可能让新摘要里重复或偏移原内容。现在只会压缩"上次 boundary 之后的新消息"

优化改进

  • 压缩覆盖边界改用 SQLite rowid,不再用秒级时间戳。之前在消息写入速度足够快时(比如自动压缩和当前用户消息同秒落库),基于时间戳的边界判断可能把一条未被摘要的用户消息当成"已覆盖"误丢;rowid 是单调递增的,彻底消除了这类歧义
  • 长会话再次压缩时覆盖边界只会前进、不会回退。任何"降级路径"(比如拿不到消息元数据时)都会保留原有边界而非重置为 0,避免之前刚建立的边界被意外清除
  • 新增技术交接文档 `docs/handover/compact-coverage-boundary.md`,记录压缩覆盖边界的所有不变量、数据库 schema、三条压缩路径的写法,供后续维护

macOS

  • Apple Silicon (M1/M2/M3/M4)
  • Intel

Windows

  • Windows 安装包

Ready to try CodePilot? Download and connect your favorite AI provider in minutes.