2026/10/6 21:34:07

手机跑 Claude Code 实战:从 Termux 直装到 SSH 远程的完整方案

手机跑 Claude Code 实战:从 Termux 直装到 SSH 远程的完整方案 先别急着摇头很多人第一反应是“手机怎么跑终端里的 AI 编程工具”实际上这条路不仅走得通而且这两年我在通勤、出差、甚至躺在床上带娃的时候靠它救过不少急。Claude Code 的本质是装在终端里的一个 Node.js CLI 程序本身没有图形界面所以只要你的手机能有一个终端环境再搞到 Node 运行时它就能跑起来。这篇文章我打算把“手机跑 Claude Code”这件事从原理讲到实操从选方案讲到踩坑把能直接上手的路径都给你列明白。本文没有太高的门槛只要你能复制粘贴命令、看得懂英文报错就能跟下来。适合三类人一是出差不带电脑的开发者二是刚入门想体验 AI 编程智能体的学生三是想在手机上快速改个小 bug 的普通人。接下来我会按“选方案 → 搭环境 → 实际写代码/修 bug → 排错”的顺序展开尽量把我试过的、翻过车的、最后稳定跑通的配置都写清楚。1. 为什么手机能跑 Claude Code以及四种接入方式怎么选1.1 Claude Code 到底是个什么角色先说清楚 Claude Code 本身。它不是那种网页聊天里的 AI 助手而是 Anthropic 推出的编程智能体 CLI 工具。装好之后你在终端里敲claude它就会进入一个交互式对话在这个对话里它能读取当前目录的项目文件、调用终端命令、创建和修改文件、运行测试、帮你看报错信息。换句话说它不是一个“你问一句它答一句”的聊天窗口而是一个能真正操作系统文件和命令行的代理。这也决定了它对运行环境的要求其实很低只要有一个能跑 Node.js 的终端它就能工作。手机最大的障碍只有一个——没有一个完整意义上的终端。所以问题的关键不是“手机能不能跑”而是“怎么在你的手机上造出一个能稳定运行 Node 的终端”。有了这个认知后面所有方案逻辑闭环了。1.2 从“手机本地跑”到“远程连电脑跑”的方案拆解我实际尝试过的接入方式有四种可以说各有各的适用场景。第一种是手机本地直跑。Android 用 TermuxiOS 用 iSH 或 a-Shell装 Node.js再npm install -g anthropic-ai/claude-code。好处是零依赖、不需要第二台设备在飞机上、地铁里都能用。缺点也很明显手机屏幕小虚拟键盘操作终端很别扭项目稍微大一点手机 CPU 跑claude的初始扫描会明显偏慢。第二种是手机 SSH 远程连电脑或服务器。手机端装 Termius 或者 JuiceSSH电脑端开启 OpenSSH 服务手机只是做一个远程显示终端。所有计算都在电脑或云主机上完成体验最接近桌面端而且手机几乎不耗电。缺点是你得有一台常开机的电脑或者一台云主机并且要能接受稍微复杂的网络配置。第三种是在云开发环境里跑。你如果本来就用了 GitHub Codespaces 之类网页版开发环境那直接在浏览器里开终端跑 Claude Code 就行了。手机浏览器完全能胜任本质上你是在访问一个已经配置好的 Linux 容器。这种方案对手机性能要求最低但需要你有一个能正常访问的项目空间。第四种算是一个增强版用 code-server 在手机浏览器里打开 VS Code再在它的集成终端里跑 Claude Code。这个方案的体验最接近桌面 VS Code Claude Code 的组合适合喜欢图形界面、想在手机上看代码高亮的人。不过说实话纯文字工作流下它比 SSH 方案重很多我目前只会在需要多个文件对比查看时才用它。给个直接的选择结论手机配置好、想要完全离线随开随用选 Termux 直跑家里有常开电脑或有一台云主机选 SSH想用浏览器里的完整 IDE选 code-server在支持网页开发的环境里直接跑最省事。我自己主力是 SSH因为改 bug 时还要访问笔记本上的完整项目环境。2. 三种方式把 Claude Code 搬进手机从零配置实录2.1 方案 AAndroid 手机用 Termux 本地跑 Claude CodeTermux 是 Android 上最成熟的终端模拟器它提供了一个独立的 Linux 用户空间不需要 root 就能用。我在 Android 手机上完整跑通过步骤如下。先在 F-Droid 或官方渠道装好 Termux然后执行pkg update pkg upgrade -y pkg install nodejs-lts git -y npm install -g anthropic-ai/claude-code装完后直接输入claude第一次运行会引导登录。新版本的 Claude Code 支持订阅账号登录和 API Key 两种方式。如果选择 API Key把环境变量写进~/.bashrcexport ANTHROPIC_API_KEYsk-ant-你的key source ~/.bashrcTermux 下有一个很容易踩的问题claude命令装好了但第二次打开终端报command not found。这是因为 npm 全局安装目录没有写进 PATH。用npm prefix -g看路径然后把它加到~/.bashrcexport PATH$PATH:$(npm prefix -g)/bin注意 Termux 的存储访问机制跟普通 Linux 不一样。如果你要读取手机内部存储里的项目要先在 Termux 里执行termux-setup-storage然后项目文件通常在~/storage/shared/下面不是/sdcard。我一开始忽略这个导致 Claude Code 读不到项目目录。2.2 方案 B手机通过 SSH 远程控制电脑上的 Claude Code这套方案是我的日常主力配置分两端。电脑端如果是 Windows去“设置 → 可选功能 → OpenSSH 服务器”安装并启动服务。macOS 在“系统设置 → 通用 → 共享 → 远程登录”里打开。Ubuntu 执行sudo apt update sudo apt install openssh-server -y sudo systemctl enable --now ssh然后确认 IPWindows 用ipconfigLinux/macOS 用ip addr或ifconfig。注意电脑和手机最好在同一个局域网否则需要你在路由器上做端口转发或者用组网工具把两台设备组成虚拟局域网。我不建议新手一上来就搞端口转发安全坑太多。手机端装 Termius 或 JuiceSSH。以 Termius 为例新建 Host地址填电脑 IP用户名填电脑登录用户认证方式用密码或密钥都可以。连接成功后终端里直接敲claude后面的体验跟台式机前完全一样。手机只负责显示字符和回传按键Claude Code 的文件读写、命令执行全都在电脑上做。实测下来跑一个中型 Go 项目手机端延迟很低无论是claude交互还是查看git diff都没有明显卡顿。有一个必须提前说SSH 方案里手机崩溃断网没关系因为真正的工作进程在电脑上。但如果电脑休眠了SSH 也会断。建议把电脑电源策略设成“从不睡眠”或者用systemctl suspend之类的命令前先确认工作没遗留。2.3 方案 C浏览器里用 code-server手机上也能看高亮代码code-server 能在网页里跑一个 VS Code。如果你需要图形界面可以这样装。假设你已经有一台 Linux 服务器执行curl -fsSL https://code-server.dev/install.sh | sh systemctl enable --now code-server$USER默认监听127.0.0.1:8080你需要在浏览器里访问的时候做一层转发或者直接配置成局域网可访问。手机浏览器打开地址后进入 VS Code 界面按CtrlJ打开终端再跑claude。这个方案比 SSH 多占不少内存服务器 2G 内存亲测勉强能跑建议 4G 以上。手机上用它看代码高亮确实舒服但我实际使用频率不高——虚拟键盘在网页终端里偶尔会吞按键体验不如独立 SSH App。3. 认证配置与接入国产模型的实战技巧3.1 从订阅账号到 API Key两种认证方式的差别Claude Code 要真正开始干活需要身份认证。目前主流有两种方式一种是登录 Claude 订阅账号在 CLI 里走 OAuth 流程输入验证码就能完成授权。另一种是配置 Anthropic API Key通过环境变量交给工具使用。我在实际使用中发现订阅账号方式适合个人电脑日常使用进claude后它会自动带上你的账号权限而 API Key 方式更适合服务器、CI 环境、或者你想让不同项目共用同一个 Key 的场景。如果你遇到登录流程里提示“your organization has disabled claude subscription access for claude code”说明当前账号的企业策略禁止了订阅登录这时候直接改用 API Key 就能绕开这个限制。在手机上配置时我的建议是不要把真实 Key 明文写在交互命令里。可以写到 Termux 的~/.bashrc或者 SSH 方案里写到电脑的~/.zshrc。顺便说一句别人发的截图里也别露 Key这玩意儿泄露了就是钱在燃烧。3.2 不登录官方账号通过 CC Switch 接 DeepSeek / Qwen / GLM很多朋友没有 Claude 订阅或者想在本地合规地切换模型。这里不得不提开源社区常用的一个工具CC Switch它是专门用来切换 Claude Code 底层模型配置的。CC Switch的基本玩法是用它管理多套 API 配置把 Claude Code 的请求地址指向国内可用的模型服务。比如你在 DeepSeek 开放平台申请了 API Key那么配置大概长这样export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN你的DeepSeek Key export ANTHROPIC_MODELdeepseek-chat export ANTHROPIC_SMALL_FAST_MODELdeepseek-chat如果接阿里云百炼的通义千问配置类似export ANTHROPIC_BASE_URLhttps://dashscope.aliyuncs.com/api/v2/apps/claude-code-proxy export ANTHROPIC_AUTH_TOKEN你的百炼Key export ANTHROPIC_MODELqwen-max接智谱 GLM 时换成对应的 endpoint 和模型名即可。整体思路是Claude Code 内部用 Anthropic 兼容协议和模型服务通信你只要把base_url、token和model三个变量指过去它就会把工具调用、文件修改、终端命令执行等请求全部转给目标模型。实测 DeepSeek 在代码生成和 bug 定位上都很稳GLM 在中文注释生成上更自然。这里有一个细节有些模型的上下文长度不够大会导致 Claude Code 在扫描大项目时把上下文窗口塞满。我建议在设置里把项目范围缩小或者用/compact手动压缩上下文。3.3 调用 LM Studio 本地模型的手机端配置如果你电脑上装了 LM Studio想完全本地推理那也可以。先在 LM Studio 的 Local Server 里启动服务端口默认1234然后手机端配置export ANTHROPIC_BASE_URLhttp://你的电脑IP:1234/v1 export ANTHROPIC_AUTH_TOKENlm-studio export ANTHROPIC_MODELqwen3-32b这种方式的优势是数据完全不出设备、离线可用。缺点也明显一是手机通过局域网请求电脑网络不好会断二是笔记本之类设备跑大模型通常很吃力推理速度会明显变慢实用性有限。我的建议是手机本身性能弱就把模型加载在电脑上手机只做客户端体验还能接受。4. 用手机让 Claude Code 实际写代码、改 bug 的现场实录4.1 让它一口气生成一个可运行的 Python 脚本我举个最朴素的例子。在手机 Termux 里进入项目目录敲mkdir ~/demo-log-parser cd ~/demo-log-parser claude然后输入一句话帮我写一个 Python 脚本读取当前目录下的 app.log 统计每一行日志的级别INFO/WARN/ERROR出现的次数 并输出一个格式化的统计结果要求 ERROR 级别单独标红。它会自动创建.py文件然后给出运行建议。关键点在于Claude Code 不会只给你一段代码文本它是真的会把文件写到磁盘上。你只需要确认它执行了写文件操作然后退出对话用python3 xxx.py验证就行。实际跑下来它生成的脚本会有基本参数校验、文件存在性检查还会主动提示logging读取的大文件性能问题。如果换成在网页聊天里你拿到代码还得手动复制粘贴建文件步骤差了很多。再进一步你可以让它“先不要生成代码先给我一个设计方案”它会列出文件读取、正则匹配、Counter 计数、ANSI 颜色输出这几个模块再问你要不要开始实现。这种“先规划后实施”的方式很适合手机端因为你屏幕小、评审成本高先看方案再动手能避免一堆垃圾修改。4.2 把报错信息甩给它让它帮你定位 bug 并修复改 bug 是整个场景里我觉得最实用的部分。以前手机收到同事消息“这个脚本跑不起来了”你能做的就是找个电脑再复现现在可以直接远程 SSH 到项目环境把报错贴给 Claude Code。有一次我遇到一个 Python 列表反转的 bug代码是这样的def reverse_list(lst): result [] for i in range(len(lst), 0, -1): result.append(lst[i]) return result print(reverse_list([1, 2, 3]))执行后报IndexError: list index out of range。我在手机终端里直接问当前目录的 reverse.py 报 IndexError: list index out of range 我需要你把索引问题修掉并且保证负数输入也能正常处理。 只改函数内部不要动函数名。它几乎瞬间定位到问题range(len(lst), 0, -1)生成的是3, 2, 1而lst[3]根本不存在。正确做法是改成range(len(lst) - 1, -1, -1)。它还顺手加了一个空列表判断def reverse_list(lst): if not lst: return [] ...整个过程我没有复制粘贴任何代码只描述了症状和约束。Claude Code 自己完成了读文件、定位、修改最后还提醒我可以执行python3 reverse.py验证。这种交互密度在手机网页浏览器里根本做不到。4.3 把规则要求写进 Prompt让修改更可控手机端屏幕小每次需求描述太长会很痛苦。我的经验是在项目目录里放一个 CLAUDE.md 规则文件把长期不变的约束放在里面比如“不要修改测试文件”“Python 代码必须带类型注解”“包管理使用 uv”。之后每次启动 Claude Code它都会自动读取这个文件把这些当成隐形前置条件。对于临时性的约束就直接在对话里说清楚。比如在现有代码库内修改不要引入新依赖 如果问题根因不在我指定的文件里先告诉我再动手。这是提示词工程里最值得养成的习惯。我见过太多翻车现场一个正则表达式生成的 bug让它“优化一下”结果它把整个模块重写了。加了约束之后它会先给修改计划再问你是否执行。手机端操作本来就不方便回滚所以“少改、小步、先计划”就是保命原则。5. 手机端常见问题与排查记录5.1 安装与启动报错速查我整理了自己和网友遇到比较多的错误列成一张速查表。报错/现象常见原因解决办法claude: command not foundnpm 全局目录不在 PATHexport PATH$PATH:$(npm prefix -g)/binnpm install速度极慢npm 默认源不稳定执行npm config set registry https://registry.npmmirror.comWindows 提示与 64 位版本不兼容系统组件或 Node 版本过旧升级到官方最新 64 位 Node.js LTS清理旧安装internetopenurl() failed 0x800...Windows 终端环境异常以管理员身份重开 PowerShell更新 WebView2 运行时your organization has disabled claude subscription access账号策略限制订阅登录改用 API Key 方式设置 ANTHROPIC_API_KEY手机 Termux 执行claude卡住首次初始化下载依赖慢耐心等待或更换网络环境不要反复 CtrlC无法读取手机内部存储项目Termux 没有存储权限执行termux-setup-storage授权顺便强调一个 Windows 上的高频坑很多人装完 Claude Code 后双击图标想打开桌面版结果提示“与 64 位版本的 Windows 不兼容”。这个通常不是工具本身的问题而是系统缺少微软新版的 WebView2 运行时或者终端里残留了旧版 Node 缓存。先把系统更新到最新再用npm cache clean --force清空缓存最后重装能解决绝大多数此类问题。5.2 SSH 连接断开与文件路径错乱用手机 SSH 最烦的就是断线。断线本身不可怕真正可怕的是你正在让 Claude Code 改文件指令执行一半断网不知道它写到哪里了。我的习惯是在电脑端用tmux开一个会话Claude Code 跑在tmux里。这样手机断开后电脑上的进程不会死重新用手机连上执行tmux attach就能回到原现场。另外手机端输入文件路径时虚拟键盘经常把路径里的下划线输错。我的实用小技巧是多让 Claude Code 自己读目录少自己手敲路径。直接说“看看当前目录下的日志文件”它会列出文件名你再让它挑就不容易出错了。5.3 手机键盘与屏幕太小的体验优化手机端卡体验的往往不是性能而是键盘。我建议 Android 用户给 Termux 配一个物理键盘哪怕几十块钱的折叠键盘效率都能翻倍没有键盘就用 Termux 的 Extra Keys 功能把Tab、Ctrl、Esc这几个键常驻虚拟键盘上。屏幕显示方面可以把终端字号调小到 12 号以下关闭渲染背景图减少不必要的刷新。我在 Termux 里还会设置claude的启动参数claude --model strong --max-turns 30--max-turns控制单次会话最多循环多少轮工具调用避免手机端误触导致它一直执行下去。写在最后的一个真实体会我最初也以为手机写代码只是“应急玩具”直到有一次在高铁上客户突然发来一个线上脚本的报错我靠着手机 Termux 里的 Claude Code 在终点站前就把修复提交了。那一刻我开始意识到工具的边界从来不在硬件而在于工作流是否顺畅。现在我的习惯是重活、大项目一定回电脑干但“读报错、改一行配置、加个日志、跑一下测试”这类轻量任务手机端已经成了我的默认选项。最后再分享一个小技巧在手机端把常见修复经验写进CLAUDE.md比如“遇到文件编码问题优先转 UTF-8”下一次它修的时候会自动带上这些背景少绕很多弯路。