当前位置: 首页 > news >正文

Cockpit:把 Claude Code 从终端里搬出来,装进浏览器

Claude Code 是目前最强的终端 AI 编程工具之一。但它有一个硬伤——它是终端应用。一个窗口、一台机器、前台运行。关掉终端,会话就没了。想在手机上看 Claude 干活?不可能。想同时跑三个项目?开三个 tmux 窗口凑合。

Cockpit 把这件事解决了。它给 Claude Code 套了一层 Web UI,让终端应用变成浏览器服务。一句话启动:npx @alexjbarnes/cockpit

本文提纲

  1. Cockpit 是什么、怎么跑的
  2. 三个杀手级场景
  3. 代码审查:不只是聊天
  4. 定时任务:Claude Code 的 cron
  5. 设置中心:一个页面管完所有配置
  6. 技术栈和实现细节
  7. 局限性

Cockpit 是什么

一句话:Claude Code 的 Web 前端

它不是替代 Claude Code,而是在 Claude Code 之上架了一层。底层还是 claude CLI 在干活,Cockpit 做的是:

  • 把 CLI 进程包装成 WebSocket 服务
  • 提供浏览器界面来发送消息、查看输出
  • 管理多个会话的生命周期

架构很直接:Next.js 16 + React 19 前端,Node.js 后端通过 WebSocket 实时推送 Claude Code 的输出。Claude Code CLI 作为子进程运行,Cockpit 和它之间是 shell 级别的交互。

所以你需要的依赖很清楚:

  • Node.js >= 20
  • Claude Code CLI 已安装且在 PATH 上
  • Anthropic API Key 已配置
  • (可选)GitHub CLI gh 已认证,用于 PR 审查功能

启动之后打开 http://localhost:3001,首次运行设一个密码(scrypt 加密存储),就能用了。默认绑定 0.0.0.0,意味着局域网内其他设备(包括手机)也能访问。

三个杀手级场景

README 里有一段话说得很准确,Cockpit 解决三个核心问题:

1. 手机上用 Claude Code

浏览器打开就行。地铁上、厨房里、任何有浏览器的地方,都能给 Claude 发消息。界面做了移动端适配。这对于"等 Claude 跑完一个任务,随时看结果继续推进"的工作流来说,改变很大。

2. 多会话并行

在终端里跑 Claude Code,你一次只能看一个会话。想切项目?先把当前的挂起,tmux 新开窗口。Cockpit 里,多个会话同时运行,侧边栏切换,关掉浏览器也不中断——会话活在服务器端。

它还有一个细节处理:Claude Code 的 /clear 命令会清空上下文,但在 Cockpit 里,/clear 前的对话记录会被"缝合"保留。你看到的是完整的视觉历史,而不是每次清空后的断裂片段。

3. Cron 驱动的 Claude Code

这是我觉得最实用的功能。你可以设定定时任务:

  • 每天早上 9 点让 Claude 扫一遍代码库做健康检查
  • 每次 push 后让 Claude 自动审查变更
  • 每周五让 Claude 生成周报

每个定时任务可以配置:工作目录、使用的 prompt、模型、思考深度、工具权限白名单、MCP 服务器过滤。运行后生成完整的 transcript,和实时会话一样的渲染效果。

代码审查:不只是聊天

Cockpit 把 GitHub PR 审查做成了独立的一等公民流程:

  1. 选择组织 → 选择仓库 → 选择 PR
  2. Cockpit 通过 gh CLI 读取 diff
  3. 启动一个 Claude Code 会话,范围限定在这个 PR

界面布局:左边 diff,右边聊天。你可以让 Claude 逐文件审查、提出建议、生成审查意见。支持按状态过滤 PR(open、closed、merged、draft),还有 check 状态的轮询。

这比在终端里手动 gh pr diff 再粘贴给 Claude Code 高效太多了。整个流程被封装成一个专门的工作空间。

设置中心:一个页面管完所有配置

Claude Code 的配置分散在多个地方:.claude/agents/.claude/hooks.json、MCP 配置、CLAUDE.md 文件。Cockpit 把这些全部搬进了 Web UI:

配置项 说明
Agents 全局和项目级别的 Agent 定义
Skills 可复用的 prompt 模板
Hooks UserPromptSubmit、PreToolUse、PermissionRequest、Stop、SubagentStop 五种钩子
MCP Servers stdio 和 SSE 类型,带测试按钮
CLAUDE.md 用户级、项目级、项目隐藏级三个 scope 的记忆文件
Slash Commands 自定义斜杠命令

还有使用量追踪:每个会话的实时 token 消耗、总体的 API 花费分析、上下文窗口使用率。这些在终端里是看不到的。

其他值得一提的细节:

  • Diff 查看器:分屏和内联两种模式,Shiki 语法高亮
  • 文件查看器:带行号和语法高亮,可以拖拽/粘贴上传文件(自动识别类型)
  • 消息搜索:跨完整 transcript 的全文搜索
  • Plan Mode:Claude 提出计划后,可以批准、批准并清除、拒绝并反馈
  • 消息队列:Claude 还在回复时就可以排队下一条消息
  • 侧问/btw 命令,不打断当前会话问一个问题

技术栈和实现细节

package.json 里能看到完整的技术选型:

技术
框架 Next.js 16 + React 19
语言 TypeScript 6
样式 Tailwind CSS 4
UI 组件 Radix UI + Lucide Icons
代码展示 CodeMirror 6 + Shiki 4 + @pierre/diffs
实时通信 WebSocket (ws 8)
构建 Webpack(生产)+ tsx(开发)
测试 Vitest 4
格式化 Biome 2

有几个有意思的工程决策:

生产构建用 Webpack 而不是 Turbopack。 Changelog 里记录了这个切换:Shiki 的 WASM 在 Turbopack 打包时有 externals 问题,切 Webpack 后解决了。这是一个务实的决定——Turbopack 是 Next.js 的新默认,但不稳定的时候就得回退。

安全处理。 @tensorflow/tfjs-node 被 stub 成空模块,postcss 版本被锁定。前者是 Magika(文件类型检测)的可选依赖,有已知漏洞;后者是因为 postcss 某版本有安全问题。这些在 v0.1.1 的 changelog 里有明确记录。

文件类型检测用 Magika。 Google 的 Magika 库,基于深度学习的文件类型识别,用于上传文件时的自动类型判断。

局限性

只支持 Claude Code。 这是设计上的限定——Cockpit 不是通用 AI 聊天界面,它专为 Claude Code 设计。如果你同时用 Cursor 或 Copilot,Cockpit 管不了。

Windows 未验证。 README 明确写了只在 Linux 和 macOS 上测试过。

项目很新。 v0.1.1,一个贡献者,9 个 star。2026 年 3 月 12 日才创建,4 月 29 日发了第一个版本。功能完整度很高,但稳定性和长期维护还是未知数。

会话不跨重启持久化。 服务重启后会话就没了。会话是内存级的,不是数据库级的。

依赖 Claude Code CLI。 本质上是 shell 调用,所以 Claude Code 的所有能力上限和限制都会透传过来。


Cockpit 做的事不复杂——给 Claude Code 加了个 Web 壳。但这个"壳"解决的都是真实痛点:手机访问、多会话、定时任务、PR 审查、配置管理。对于日常重度使用 Claude Code 的人,尤其是需要在多个项目间频繁切换、或者想让 Claude 自动化执行定期任务的开发者,Cockpit 值得试一下。一行命令的事。

npx @alexjbarnes/cockpit

作者: itech001
来源: 公众号:AI人工智能时代
主页: https://www.theaiera.cn,每日分享最前沿的AI新闻和技术。

本文首发于 AI人工智能时代,转载请注明出处。

http://www.jsqmd.com/news/730675/

相关文章:

  • KLayout开源版图设计工具:从新手到专家的终极指南
  • 纬地、鸿业、海地、CASS等横断面数据互转工具V3.2——测绘与道路设计人员的效率神器
  • 搞懂5G QoS配置:QCI/5QI、ARP、GBR/MBR参数到底怎么设?一个实战案例说清楚
  • ViGEmBus:Windows内核级虚拟游戏控制器驱动深度解析
  • 智慧树自动刷课插件:3分钟实现智能学习的终极指南
  • 柏奥气体设备技术实力如何,产品价格怎么样 - mypinpai
  • JetBrains IDE试用期重置终极解决方案:告别30天限制的专业指南
  • Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活
  • stm32开发者如何通过curl快速测试大模型api接口
  • KLayout版图设计工具:从零开始掌握开源芯片设计的5个关键步骤
  • 从单机到集群:我是如何用三台旧笔记本搭建Hadoop 3.1.4学习环境的
  • Moss框架:统一接口构建LLM应用,从基础调用到Agent实战
  • 四个解析器引发的混乱:Cloudflare 如何用 Rust 统一全栈 Cron 解析
  • 大模型原理深度解析:从RNN到Transformer,揭秘AI如何生成内容!
  • 2026年导电袋制造企业排名,口碑好的有哪些? - mypinpai
  • CPPM证书多久拿到手?时间周期 - 众智商学院官方
  • 崩坏星穹铁道三月七小助手:5分钟学会全自动刷材料终极指南
  • **软件的本质是服务于持续演进的业务需求与用户期望,而非一次性静态交付品
  • 【408学习】数据结构——线性结构
  • 2026年曲轴连杆总成生产厂家靠谱推荐 - mypinpai
  • Dify插件开发实战:基于dify-plugin-sdks构建AI应用扩展工具
  • SVG2与TraSeR:视频场景图技术的突破与应用
  • 绝地求生压枪难题怎么破?罗技鼠标宏5分钟配置指南
  • 网盘下载太慢?试试这个开源工具,轻松获取直链下载地址
  • 建议建立专门的权限控制表实现特定时间访问特定网页功能
  • OneMore插件:让OneNote从普通笔记工具升级为专业生产力平台
  • OneMore:重新定义OneNote生产力,从基础笔记到专业知识管理的进化之路
  • 2026年高考志愿填报服务哪家好,排名来帮你 - 工业品网
  • 残差网络(ResNet)原理与知识表示机制解析
  • YOLO26-seg分割优化:小目标 |新颖的多尺度前馈网络(MSFN)