jinininx
V2EX  ›  OpenAI

我把 Claude Code 包成了桌面 App:不用装 CLI、不碰终端,发一句话它自己干活

  •  
  •   jinininx · May 26 · 841 views

    我自己天天用 Claude Code ,越用越觉得这东西能干,但想安利给身边不写代码的朋友时,全卡在第一步:装 Node 、装 CLI 、打开终端。有个做运营的朋友我教了快一个小时,她最后说「你能不能给我个能点的东西」。

    那句话之后我花了三个月,用 Claude Code 自己撸了个桌面应用:

    Cherry Agent — https://agent.cherrychat.org ( Mac / Windows ,Electron 套 Claude Agent SDK )

    本帖讲清几件事:它能干嘛、为什么做、技术栈和踩的坑、怎么收费、trade-off 。不喊口号。

    落地页

    它是什么

    一句话:把 Claude Code 那套「能调工具真干活的 Agent 」包进一个点开就能用的 GUI 。不装环境、不碰终端,像发微信一样打一句话,它自己拆任务、调工具、产出结果。

    你说「把这个文件夹的发票 OCR 出来做成报销表」,它真去读文件、跑 Python 、吐给你一个 excel ;说「分析下这份销售数据」,分析完直接出图。办公和写代码的活都能接。

    工作助手主界面

    为什么做

    Claude Code 的能力对普通人门槛太高,CLI 、终端、命令,第一步就劝退。我想反过来:

    不要终端,GUI 点开就用。任务执行到哪一步、调了什么工具、产出什么,都摆在界面上,不是黑箱滚日志。把 Claude Code 的 skill 、记忆、MCP 这些能力,做成普通人能点的开关。

    「 Claude 套壳早就一堆了你做这个图啥」——我也不知道做不做得起来,但三个月成本能接受,失败了至少 Electron + Claude Agent SDK 这套练熟了。

    几个做起来费劲、但我挺满意的点

    生成式 UI 。你问它任何概念,不只给文字,会现场生成结构图或图表。底层是让模型输出一段 show-widget 代码围栏,前端拿 sandbox iframe (无 allow-same-origin 、CSP 把 connect-src 锁成 none )渲染 SVG / ECharts / HTML 。我拿一本书测它,直接画出全书脉络:

    生成式 UI

    本地记忆。把身份、项目背景、习惯写进去,每次对话自动注入,不用反复解释「我是个 node 程序员」:

    记忆管理

    技能系统。内置一批 skill (浏览网页、画组件、竞品分析这些),合适场景自动生效,也能自己加——本质是 Claude Agent SDK 的 plugin/skill 机制,外面包了个 GUI 管理:

    技能市场

    模型走 Claude 全系,Haiku 到 Opus ,按 token 实际用量扣,界面里能看每次调用花了多少:

    模型价格

    剩下是些体验上的打磨。全局快捷键,键盘党会舒服:

    快捷键

    多端云同步,会话、记忆、技能、设置都跟着走:

    云同步

    外观能调,深浅色、中英日繁,连聊天的字号行距都能拖:

    外观设置

    数据随时导出导入,跑路了也带得走:

    数据管理

    头像那种小东西也塞了一堆,纯属自己想做:

    账号设置

    版本现在 1.0.30 ,自动更新也跑通了:

    关于

    技术栈和踩的坑

    Electron + React 19 + Vite + TypeScript + better-sqlite3 ,核心是封装 Claude Agent SDK (顺带也接了 Codex SDK )。几个真把我搞惨的:

    Windows 上没有 bash ,Claude CLI 的 Bash 工具直接跪。先用 busybox 顶,结果中文用户名路径下完全失效( busybox-w32 的已知 bug ),最后老实从 MSYS2 扒了套真正的 GNU bash 5.3 + cygpath + 一堆 msys dll 进包才稳。

    自动更新前后排了六层根因才跑通:feedURL 写错、app-update.yml 没生成、Squirrel.Mac 强制要代码签名、--mac dir 不生成 yml 、ESM 动态 import 一个纯 CJS 模块时 defineProperty getter 取不到、feed check 和 electron-updater 状态不同步。每一层单独拎出来都能写一篇。

    还有 macOS 上没装 Xcode CLT 的小白机器,一调 python3 会弹系统对话框,得在 PATH 最前面塞个 shim 拦下来,不然小白直接懵。

    怎么收费

    按 token 实际用量计费,没月费、没充值套餐、没有联盟分销,生一次算一次,不用就不扣。后面打算支持自定义模型,到时你填自己的 key 或者用别家模型都行。这模式我自己也还没验证跑不跑得通,大概率还要调几次。

    trade-off / 后续

    数据现在在本地 SQLite ,多端靠云同步,但同步策略还在打磨;移动端没做,就桌面;项目在认真考虑开源,还没想好怎么开。

    另外说句实在的:我一个人现在同时在运营好几个站,有点顾不过来。这个项目要是有人想合作、或者直接把整套源码买走,也能找我聊。

    写在最后

    三个月一个人用 Claude Code 撸完上线,独立开发真的可行。但最累的不是写代码,是 UI 那一周从早到晚搭配色、改阴影、试字体。AI 写得了 React ,写不出审美。

    网址放这: https://agent.cherrychat.org ,Mac / Windows 都有。试了觉得哪里烂,越狠越好,评论或站内信都行。

    4 replies    2026-05-27 08:03:30 +08:00
    Suger828
        1
    Suger828  
       May 26
    走的 claude code -p 模式吗
    383394544
        2
    383394544  
       May 27 via iPhone
    让 chatgpt 生设计概念图和 prompt 再丢给 claude code 有奇效
    jinininx
        3
    jinininx  
    OP
       May 27
    @Suger828 模式可以自己设置
    wsbqdyhm
        4
    wsbqdyhm  
       May 27 via iPhone
    能用 ds4 或通过 cc switch 用本地模型吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3891 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 00:09 · PVG 08:09 · LAX 17:09 · JFK 20:09
    ♥ Do have faith in what you're doing.