[发码]一个在手机上用 Claude Code 的 iOS App,并聊一聊使用感受 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cadl
8.77D

[发码]一个在手机上用 Claude Code 的 iOS App,并聊一聊使用感受

  •  
  •   cadl 3 月 13 日 2820 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    整了一个在手机上通过 SSH 登录到自己电脑/服务器的,使用 Claude Code 的 App 。名字叫作 ServerCC https://servercc.llpsh.com

    App Store 搜索 ServerCC 或者直接访问: https://apps.apple.com/cn/app/servercc/id6759306046

    image

    主要有的几个特点:

    1. 操作原生的 Claude Code TUI ,争取跟桌面版 Claude Code 的体验一致
    2. 内置了 worktree 功能,可以在 App 中同时跑多个 Claude Code 实例,多个项目同时开发,或者是在一个项目中使用 worktree 同时开发不同功能。
    3. App 中可以使用文件浏览的形式查看工作目录中的文件,管理 Skill 和 MCP 等等
    4. 内置了 tailscale ,使用 auth_key 可以直接在 App 中连接 tailscale 网络。不会跟全局 vpn 冲突

    这个 App 大多数功能是春节和上下班路上使用它自己开发的,聊一聊吃自己 dog food 的感受吧:

    只是个 ssh 客户端吗,为什么不直接用现成的 ssh 客户端或者 hAppy/hapi/openclaw 的方案呢

    我自己日常工作内容中有一部分是服务运维的工作,手机里也有一些终端软件,必要时候要手机连到服务器做处理。

    一开始我也是使用终端软件 ssh 登录执行 Claude Code ,使用过程中碰到很多情况感觉很不方便。有几点比较突出:快捷键操作 plan/bypass-permission 很费劲,手机上终端移动光标编辑文本也不方便,更别说 Claude Code 进上下左右的交互了。还有就是网络不好容易连接失败,每次需要手动去进入目录,恢复对应的 Claude Code session 。

    后来在搞 ServerCC 的时候,着重在输入交互上调整了下。加了 esc 、tab 、plan 切换、快捷选择等等的快捷键,第二屏上还有 /clear /rewind /review /compact /init 等等我自己用的时候高频的 command 快捷键。

    文字的输入是在 App 的文本输入框上进行的,方便光标定位修改,这样用系统的语音或者其他语音输入法直接输入,提高效率。当然在使用时也可以切换一个包含终端 App 的完整键盘视图,用来操作特殊的组合键。

    为什么不用 happy/hapi/openclaw 呢。尝试过这几种方式后,一个感受是我在使用中会丢失不少 Claude Code TUI 显示给我的细节,少了那种结对编程的感受。另一个想法是,现在 Claude Code 还是在不断进化,我希望在手机上能有跟桌面版一样的体验,这样就能沿用在桌面版上的使用经验了,生产力更高。

    以及日常我还用了一个辅助读书的 Claude Skill ,所以在 ServerCC 里也加上了在工作目录上传查看文件和管理 Skill 和 MCP 的功能,随时可以把手机里的 epub 导入到工作目录,让 Skill 来分析。

    下个版本里还加了一个使用主机上 tmux 来持久执行 Claude Code 的功能,结合最近出的 /loop ,感觉可以玩更多有意思的事了。

    关于数据安全

    SSH 私钥、密码、tailscale auth_key 这些信息,ServerCC 是存储在系统钥匙串里的,不会明文存储。

    因为一些功能的需要,需要在主机上执行一些命令,比如创建 git worktree ,创建工作空间目录等,关于要执行的命令,考虑以后的版本里,增加执行命令的审计日志,以及一些功能的开关,尽可能让使用者知晓。

    最后

    说的有点多了,有相同需求的小伙伴可以试一试。现在还有不少 bug ,下个版本应该会好一些。

    有任何问题欢迎反馈,非常欢迎加入 Discord 群组来讨论: https://discord.gg/eYRu2EnhTy

    关于远程执行 Claude Code 有什么想法或者经验,也欢迎回帖讨论呀。

    附上一些会员兑换码。会员可以不限制工作区,并且可以并行执行多个 Claude Code 实例。没有会员也可以基本使用的。

    在 app store 中“兑换充值卡或代码”可用:

    HA8F3MNY7L64PYH8PE FEJPX7AYM8TXEAF8L8 WMY6W8EKMXYN7MPREF H3734PPN4MJTW7376W A3MXYFXF8786PWEFTN ANYLAL6LTHK3N6THR4 TKREHWT34FT87F77XJ WYX6KXW3WKEX3EHL3P RNA7JN7HJMN6J8A7L7 R6FTA4P3E4K6TYHKMK RHTRHYWYPPXF77AXJW HPFLARPW3APPWF6XLJ NYPKMXKLXHEXEWKPJW 6H8HM7XEKTHWPXJTME F74MAXPWEKXJ44FRTW N4HLTLFK3WPNAANJ3Y HRK8XE4PRNNW4JFJ6N 7EYN64XWRMKE8JJKLT APL848FMA64L68X3MA YT7KKF7TRNFL7LY6TY 76TJRHRXRH3YR3LJJJ YRKFNLFMNHWNLRYMJ4 LRFWKRTWHW4JHR6FA8 7RLXL3RNTL7TKTEHL6 4PMPLW4NKJ76XHF7WP 4XJKHPJAFFKPF4YERW 3NL3KKYK68RYNMKXN3 883N8HEH6NWNJXKYYT 36RLY7LXTHJJTTKM7P R8XPMM3KXY7763L8JR 
    第 1 条附言    3 月 14 日
    额注意注意,是一个月的会员兑换码。尝试了不准备续订的话得去系统订阅里退订,以免下月被扣费了
    第 2 条附言    15 天前
    快一个月过去了。迭代了好几个版本,加了新功能,修了不少 bug 。

    看到之前的评论,重新思考了是否订阅的问题。想得更清晰点了,后来移除掉了订阅选项。给之前领了兑换码和之前订阅的用户换发了永久会员,不知道大家发现没有 >_<

    现在支持了 Codex ,也可以用 tmux 来启动 CC/Codex 会话,杀掉 App 也能进行任务了。还可以通过 VNC ,在 Vibe Coding 过程中随时看效果。还有支持了 Claude Code 新加的 No_Flicke 渲染模式,可以做一些点击交互了等等等等。

    感觉是比之前好用了很多。整了一个使用的视频:




    之前的码领取时间到期了,重新生成了 10 个永久会员的码,大家有兴趣可以尝试一下。欢迎来反馈啊

    HA68E6JMTTE8REMTNT
    FRAY4Y3JX6RRHTFKNX
    4XF3KKMN4K7Y88PN4M
    3WXXHJRWPXNK44JHKP
    L3HK4WTAR6L6A77T48
    WMJH7KE7LPTRJTHAYF
    83XPRELNEW3X8MJK8R
    FWL4WMA3MP6NR6KW7L
    YLEYWL6H3FTX6LYKE8
    XWY4J3WK8LPJYAPK76
    45 条回复    2026-04-24 22:58:29 +08:00
    CalledKingsley
        1
    CalledKingsley  
       3 月 13 日
    36RLY7LXTHJJTTKM7P
    已用,有计划能支持别的 ai 工具吗
    cadl
        2
    cadl  
    OP
       3 月 13 日
    @CalledKingsley 接下来会加上 codex 的支持,其他的暂时还没想法呢
    CalledKingsley
        3
    CalledKingsley  
       3 月 13 日
    @cadl codex 不错,挺好的
    cadl
        4
    cadl  
    OP
       3 月 13 日
    @CalledKingsley 是的,我也在用 codex ,但是没 claude code 用的多 hh
    chenzhe
        5
    chenzhe  
    PRO
       3 月 14 日
    RNA7JN7HJMN6J8A7L7
    已用,谢谢。

    同时提醒一下各位,这个只是一个月的兑换码,且会自动续费,记得设置提醒事项提前取消订阅以免造成意外扣费。
    visitant
        6
    visitant  
       3 月 14 日 via iPhone
    @chenzhe 纯客户端软件还要搞订阅制的是真恶心啊
    cadl
        7
    cadl  
    OP
       3 月 14 日 via iPhone
    @visitant 被你说的感觉脸直发烫
    k0305916q
        8
    k0305916q  
       3 月 14 日
    APL848FMA64L68X3MA
    &#24050;&#29992;&#65292;&#35874;&#35874;&#65374;
    CalledKingsley
        9
    CalledKingsley  
       3 月 14 日
    @cadl 我看已经有 codex 交互的 ios app 了,老哥加把劲
    sun522198558
        10
    sun522198558  
       3 月 14 日
    6H8HM7XEKTHWPXJTME 已用 感谢
    cadl
        11
    cadl  
    OP
       15 天前
    @CalledKingsley 后来已经支持 CodeX 啦
    cadl
        12
    cadl  
    OP
       15 天前
    @CalledKingsley
    @chenzhe
    @k0305916q
    @sun522198558

    前两周时候我移除了订阅模式,给领了月会员码和订阅的用户发了终身会员。可以看看有木有
    jzhm
        13
    jzhm  
       15 天前 via iPhone
    导入私钥老是报错,是不是有 bug
    cadl
        14
    cadl  
    OP
       15 天前 via iPhone
    @jzhm 你的私钥是啥格式的?我来看看我能复现不
    kevinAo
        15
    kevinAo  
       15 天前
    XWY4J3WK8LPJYAPK76 已用,谢谢大佬,我去试试
    lockheart
        16
    lockheart  
       15 天前 via iPhone
    83XPRELNEW3X8MJK8R 已用,感谢
    cadl
        17
    cadl  
    OP
       15 天前
    @kevinAo 呃呃不是大佬哈哈。

    去年双十一还买了个 gpd 的 mini 电脑,想移动这 vibe coding 。后来就单纯在手机上搞了……

    cadl
        18
    cadl  
    OP
       15 天前
    @lockheart 客气客气 看看有什么问题,多多反馈哈
    xiaotian15062635
        19
    xiaotian15062635  
       15 天前
    4XF3KKMN4K7Y88PN4M 已用,感谢大佬!
    CalledKingsley
        20
    CalledKingsley  
       15 天前
    @cadl
    赞一个,确实是 pro 了,感谢大佬
    mouxiaoshi
        21
    mouxiaoshi  
       15 天前 via iPhone
    来晚了。已经无了
    eocp2020
        22
    eocp2020  
       15 天前
    来晚了,能否求个码,谢谢
    cG02NjZAcHJvdG9ubWFpbC5jb20=
    javaDo
        23
    javaDo  
       14 天前
    老哥 来晚了 求一个 永久码 MTgwMjQ2NDJAcXEuY29t 谢谢
    v9912ex
        24
    v9912ex  
       12 天前 via iPhone
    来晚了 可否求个码
    [email protected]
    gugu33
        25
    gugu33  
       12 天前 via iPhone
    低于 ios18 装不了?
    in211240520
        26
    in211240520  
       12 天前 via iPhone
    求一码体验一下,谢谢 op ,
    NDQ0ODMzMEBnbWFpbC5jb20=
    cadl
        27
    cadl  
    OP
       12 天前 via iPhone
    @gugu33 嗯嗯。现在集成了 tailscale ,最低版本有限制…
    JetKwok
        28
    JetKwok  
       11 天前
    YLEYWL6H3FTX6LYKE8
    已使用,感谢大佬
    cadl
        29
    cadl  
    OP
       11 天前 via iPhone
    @jzhm 添加 pkcs#8 形式的 key 等等会有问题 orz 。下个版本修复
    jzhm
        30
    jzhm  
       10 天前 via iPhone
    @cadl 好的,实际上我是 RSA 的密钥
    cadl
        31
    cadl  
    OP
       8 天前 via iPhone
    @jzhm 发布了新版本。支持了更多类型的密钥和 ssh 登录签名方式。应该解决你的问题了,不行的话我再研究研究
    believems
        32
    believems  
       8 天前 via iPhone
    @cadl 有计划让你启动的后台具体 tmux 的 cc 指定进程名称吗?或者直接切入已有的 tmux 的 cc 里?
    场景是手机连着,到了电脑边上想复用同一个 session
    believems
        33
    believems  
       8 天前 via iPhone
    还有就是同一局域网和公网 tailscale 能打通吗?我同时配置两个地址区分
    cadl
        34
    cadl  
    OP
       8 天前 via iPhone
    @believems 有其他用户做过类似的,在电脑上手动 attach app 产生的 tmux session ,来交替用。但是主动权要给 app ,并且 tmux 窗口尺寸可能有问题。至于 app 直接 attach 已有的 session ,可能也有一些问题。我先想一想哈

    第二个意思是一台主机你想配两个地址吗。但是如果是在同一个局域网内,虽然连接的是 tailscale 地址,但是如果直连成功了的话,延迟应该也还好?
    believems
        35
    believems  
       7 天前 via iPhone
    @cadl 是的,不但如此,还可以配置一次,能复用好多设置和 session 。另外,快捷键盘右边第二个图标是啥意思呀?我点击切换没发现有啥变化
    believems
        36
    believems  
       7 天前 via iPhone   1
    @cadl 我换电脑登录,把刚才手机上没说清的事再详细说一下:

    1. 关于会话复用( attach session )
    你之前提到的「允许 attach 已有 session 或自定义 session 」这点我很认同。我现在就是用 App 里的终端功能来实现这个,效果很不错,你也可以考虑一下。
    我的使用场景是:长期挂着 Tailscale ,在电脑旁就用电脑,不在电脑旁就用手机连;目前是在 App 内通过终端,attach 到我电脑上已经运行的 tmux 会话。

    2. 关于网络环境与主机配置切换
    我理解你现在的思路:要么直接用内置的 Tailscale 连接,要么手机已经登录 Tailscale ,在 App 内直接联通即可。
    但实际使用中,我在家、在公司时,不一定随时使用 Tailscale 连接。这就导致:
    平时在局域网里用的是一套主机配置( IP 、连接方式等)
    切到 Tailscale 网络后,又要换成另一套完全不同的配置来回切换很麻烦。

    3. 一个体验问题( Bug / 改进建议)
    目前发现一个明显问题:
    在 App 里点 Tailscale 相关操作后,界面很大概率会卡住,要一直等到 Tailscale 连接成功、失败、超时后,App 才恢复响应。
    这块体验不太好,能否优化一下?比如连接时加个加载状态、失败后更快提示、不要阻塞界面之类的。
    cadl
        37
    cadl  
    OP
       7 天前
    @believems 这么多建议,太感谢了。

    1: 了解你这个使用场景了。我大概有个思路,就是脱离现在进入 workspace -> 来启动 claude code/codex 的路径。连接 server 后可以选择直接 attach 一个现有的 tmux session 进去。然后使用现有的 claude code/codex 的输入 UI ,既能无缝继续你在电脑上的操作了,也可以用到 servercc 里面的文本输入框和快捷键(现在输入框中没有换行,点击是提交。下个版本会有一个编辑的小优化,可以进行换行,编辑长行内容)。这个看起来下个功能版本就可以实现。

    2 & 3: 嗯嗯,这个后面会解决一下,非常感谢反馈


    快捷键盘最右列第二个 thinking 这个吗? 这个是 Toggle extended thinking 这个开关(可以在 https://code.claude.com/docs/en/interactive-mode 中搜索)。 因为是快捷键,不是单纯的文字 command ,所以不太容易懂。下一个功能版本会提供自定义第二屏快捷键盘 command 的功能,对已有内置的也会有说明。
    Flowing
        38
    Flowing  
       7 天前
    不错,但我想问下,OP 的 App store 里的 preview 图片是咋做的
    believems
        39
    believems  
       7 天前
    @cadl 嗯嗯,多谢
    cadl
        40
    cadl  
    OP
       7 天前
    @Flowing 是用的站内大佬做的 https://www.appshots.top/
    believems
        41
    believems  
       6 天前
    @cadl 还发现一个 BUG ,当前连接因问题断开后,重新连接到主机,之前在后台运行的 tmux 就找不到了,无法恢复进程,理论上可以读取创建时 tmux 的名称,列出来让用户 attach 进去;貌似实现跟我提出的问题 1 是一样的处理逻辑
    cadl
        42
    cadl  
    OP
       5 天前 via iPhone
    @believems 嗯嗯 这个新版本会优化掉。根本原因是 ui 显示依赖 session 历史,来显示待恢复的持久连接的信息。如果多等个几秒还是会显示的。但是现在在开发版本已经完全好了,一进到页面就看得到待恢复的持久连接
    soFollish
        43
    soFollish  
       2 天前   1
    试了几分钟,几个问题已经严重影响体验
    1. wokrspace 没有编辑功能,一旦输入错误,只能删除重来
    2. server 端已有的 tmux ,接管了无法放入后台,(也许有没找到),导致这个 app 失去了最重要的使用场景
    3. pro 卡的太严了,好不容易手机上输入一堆路径,做了一个工作空间,进去后放后台要 pro ???
    4. 建议楼主参考 Termius \ Moshi 等 APP 再打磨一下。
    cadl
        44
    cadl  
    OP
       2 天前
    @soFollish 非常感谢你的反馈,我多想想。关于放入后台的问题,我的想法是在 app 中同时处理多个 cc/codex 会话,是一个稍微进阶点的需求,可能在移动使用场景,人单线程处理一个会话基本就能满足需求了,所以把能同时处理多个会话放到了 pro 功能中。但是现在点击按钮直接弹了 paywall 的体验不是很好。感谢反馈,我再研究研究哈
    closedevice
    45
    closedevice  
       7 小时 7 分钟前   1
    不错不错,才发现你这名字和我老弟是一模一样
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     899 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 75ms UTC 22:06 PVG 06:06 LAX 15:06 JFK 18:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86