「2026-​编辑codePilot-0.5.1(Windows桌面端)」

链接: https://pan.quark.cn/s/8dd58b8acefb

CodePilot

A native desktop GUI for Claude Code -- 通过精美的可视化界面与Claude进行对话、编程和管理项目,告别终端命令行。


✨ 特性

  • 💬 对话式编程 -- 实时流式响应展示,完整Markdown渲染、语法高亮代码块、工具调用可视化

  • 📂 会话管理 -- 创建、重命名、归档和恢复聊天会话。对话通过SQLite本地持久化存储,重启不丢失

  • 🎯 项目感知上下文 -- 每个会话选择工作目录,右侧面板实时显示文件树和文件预览

  • 🔒 权限控制 -- 对每个工具操作进行批准、拒绝或自动允许。选择不同的权限模式以匹配你的舒适度

  • 🎭 多种交互模式 -- 在 CodePlanAsk 模式间切换,控制Claude在每个会话中的行为

  • 🤖 模型选择器 -- 对话中随时切换Claude模型(Opus、Sonnet、Haiku)

  • 🔌 MCP服务器管理 -- 直接从扩展页面添加、配置和删除模型上下文协议服务器。支持 stdiossehttp 传输类型

  • ⚡ 自定义技能 -- 定义可重用的基于提示的技能(全局或项目特定),可在聊天中作为斜杠命令调用

  • ⚙️ 设置编辑器 -- 可视化和JSON编辑器管理你的 ~/.claude/settings.json,包括权限和环境变量

  • 📊 Token使用跟踪 -- 每次助手响应后显示输入/输出token数量和预估成本

  • 🌗 深色/浅色主题 -- 导航栏一键切换主题

  • ⌨️ 斜杠命令 -- 内置命令如 /help/clear/cost/compact/doctor/review

  • 🖥️ Electron打包 -- 作为原生桌面应用发布,隐藏标题栏,内置Next.js服务器,自动端口分配


📸 截图


📋 前置要求

重要提示: CodePilot底层调用Claude Code Agent SDK。确保 claude 在你的 PATH 中可用,并且你已经完成认证(claude login),然后再启动应用。

要求 最低版本
Node.js 18+
Claude Code CLI 已安装并认证 (claude --version 应该可以工作)
npm 9+ (随 Node 18 一起提供)

📥 下载

预构建的发布版本可在 Releases 页面获取。

支持的平台

  • macOS: 通用二进制文件 (arm64 + x64),以 .dmg 形式分发

  • Windows: x64,以 .zip 形式分发

  • Linux: x64 和 arm64,以 .AppImage.deb.rpm 形式分发


🚀 快速开始

# 克隆仓库
git clone https://github.com/op7418/CodePilot.git
cd CodePilot
​
# 安装依赖
npm install
​
# 开发模式启动(浏览器)
npm run dev
​
# -- 或在开发模式下启动完整的Electron应用 --
npm run electron:dev

然后打开 http://localhost:3000(浏览器模式)或等待Electron窗口出现。


🔧 安装故障排除

CodePilot尚未进行代码签名,因此首次打开时操作系统会显示安全警告。

macOS

你会看到一个对话框,显示 "Apple cannot check it for malicious software"

选项1 - 右键打开

  1. 在Finder中右键单击(或按住Control键单击)CodePilot.app

  2. 从上下文菜单中选择 打开

  3. 在确认对话框中点击 打开

选项2 - 系统设置

  1. 打开 系统设置 > 隐私与安全性

  2. 向下滚动到 安全性 部分。

  3. 你会看到关于CodePilot被阻止的消息。点击 仍要打开

  4. 如果提示身份验证,然后启动应用。

选项3 - 终端命令

xattr -cr /Applications/CodePilot.app

这将清除隔离属性,macOS将不再阻止该应用。

Windows

Windows SmartScreen会阻止安装程序或可执行文件。

选项1 - 仍要运行

  1. 在SmartScreen对话框上,点击 更多信息

  2. 点击 仍要运行

选项2 - 禁用应用安装控制

  1. 打开 设置 > 应用 > 高级应用设置

  2. 切换 应用安装控制(或"选择从何处获取应用")以允许来自任何地方的应用。


🛠️ 技术栈

层级 技术
框架 Next.js 16 (App Router)
桌面外壳 Electron 40
UI组件 Radix UI + shadcn/ui
样式 Tailwind CSS 4
动画 Motion (Framer Motion)
AI集成 Claude Agent SDK
数据库 better-sqlite3 (嵌入式,每用户)
Markdown react-markdown + remark-gfm + rehype-raw + Shiki
流式传输 Vercel AI SDK 辅助函数 + Server-Sent Events
图标 Hugeicons + Lucide
测试 Playwright
构建/打包 electron-builder + esbuild

📁 项目结构

codepilot/
├── electron/                # Electron主进程和预加载脚本
│   ├── main.ts              # 窗口创建、嵌入式服务器生命周期
│   └── preload.ts           # 上下文桥接
├── src/
│   ├── app/                 # Next.js App Router页面和API路由
│   │   ├── chat/            # 新聊天页面和[id]会话页面
│   │   ├── extensions/      # 技能+ MCP服务器管理
│   │   ├── settings/        # 设置编辑器
│   │   └── api/             # REST + SSE端点
│   │       ├── chat/        # 会话、消息、流式传输、权限
│   │       ├── files/       # 文件树和预览
│   │       ├── plugins/     # 插件和MCP CRUD
│   │       ├── settings/    # 设置读/写
│   │       ├── skills/      # 技能CRUD
│   │       └── tasks/       # 任务跟踪
│   ├── components/
│   │   ├── ai-elements/     # 消息气泡、代码块、工具调用等
│   │   ├── chat/            # ChatView、MessageList、MessageInput、流式传输
│   │   ├── layout/          # AppShell、NavRail、Header、RightPanel
│   │   ├── plugins/         # MCP服务器列表和编辑器
│   │   ├── project/         # FileTree、FilePreview、TaskList
│   │   ├── skills/          # SkillsManager、SkillEditor
│   │   └── ui/              # 基于Radix的组件(button、dialog、tabs、...)
│   ├── hooks/               # 自定义React钩子(usePanel、...)
│   ├── lib/                 # 核心逻辑
│   │   ├── claude-client.ts # Agent SDK流式包装器
│   │   ├── db.ts            # SQLite模式、迁移、CRUD
│   │   ├── files.ts         # 文件系统辅助函数
│   │   ├── permission-registry.ts  # 权限请求/响应桥接
│   │   └── utils.ts         # 共享实用程序
│   ├── locales/             # 国际化(i18n)翻译文件
│   └── types/               # TypeScript接口和API契约
├── scripts/                 # 构建和打包脚本
│   ├── build-electron.mjs   # Electron构建脚本
│   └── after-pack.js        # 打包后钩子(重建原生模块)
├── electron-builder.yml     # 打包配置
├── package.json
└── tsconfig.json

💻 开发

# 仅运行Next.js开发服务器(在浏览器中打开)
npm run dev
​
# 在开发模式下运行完整的Electron应用
# (启动Next.js + 等待它,然后打开Electron)
npm run electron:dev
​
# 生产构建(Next.js静态导出)
npm run build
​
# 构建Electron可分发包 + Next.js
npm run electron:build
​
# 打包macOS DMG(通用二进制文件)
npm run electron:pack
​
# 打包Windows安装包
npm run electron:pack:win
​
# 打包Linux包
npm run electron:pack:linux

开发说明

  • Electron主进程(electron/main.ts)派生Next.js独立服务器,并通过随机空闲端口在 127.0.0.1 上连接到它

  • 聊天数据存储在 ~/.codepilot/codepilot.db(或开发模式中的 ./data/codepilot.db

  • 应用对SQLite使用WAL模式,因此并发读取很快

  • scripts/after-pack.js 会在打包时显式重编译 better-sqlite3 为 Electron ABI,确保原生模块兼容


📝 构建注意事项

  • macOS: 构建输出DMG(arm64 + x64通用二进制文件)

  • Windows: 输出NSIS安装包或zip

  • Linux: 输出AppImage、deb和rpm包

构建前清理:

rm -rf release/ .next/

Windows打包后恢复:

npm rebuild better-sqlite3

macOS交叉编译Windows 需要Wine(在Apple Silicon上可能不可用),可以使用zip替代NSIS。


🤝 贡献

欢迎贡献。要开始:

  1. Fork仓库并创建特性分支。

  2. 使用 npm install 安装依赖。

  3. 运行 npm run electron:dev 在本地测试你的更改。

  4. 在打开拉取请求之前确保 npm run lint 通过。

  5. 针对 main 打开PR,清晰描述更改内容和原因。

请保持PR聚焦 —— 每个拉取请求一个功能或修复。


📄 许可证

MIT


📮 反馈与支持


🙏 致谢

  • Claude Code - Anthropic的AI编程助手

  • Next.js - React框架

  • Electron - 跨平台桌面应用框架

  • 所有贡献者和支持者

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐