Bun 官方支持 Android 后,Claude Code 在 Termux 里配 TaoToken 的 config.toml 骨架
1. 手机端跑 Claude Code 这件事卡在哪了Bun 官方把 Android 纳入正式支持范围之后Termux 里直接pkg install bun就能拿到一个能跑 JS/TS 的运行时这件事对 Claude Code 的意义比表面看起来大得多。Claude Code 从 v2.1.113 起切换成原生可执行二进制不再走纯 Node.js 那条路于是之前靠 Node.js 在 Termux/Android 上硬撑的方案直接失效。旧版本能凑合但 3 月到 4 月那几个版本本身有坑降级不是长久之计。所以真正的出路是等 Bun 把 Android 当成一个特殊 Linux 场景Bionic libc SELinux 限制来支持用 NDK sysroot 交叉编译出 aarch64-linux-android 和 x86_64-linux-android 两个 target强制 PIE 输出再配合一堆兼容 patch。现在这条路通了你可以在手机上装 Bun然后跑 Claude Code再通过 adb 让 Claude Code 反过来控制手机做出类似手机 Agent 的效果。这篇要解决的不是Bun 能不能装而是装完之后 Claude Code 怎么接上 TaoToken 的统一 Key/API 通道config.toml骨架长什么样以及怎么用一条请求确认通道真的通了。适合已经在 Termux 里折腾过 Node.js、想把手上的 Android 设备变成随身 Agent 入口的开发者。下面所有步骤都可以直接复制路径按 Termux 默认环境写。2. 前置准备Termux、Bun 与 TaoToken 通道先把环境理清楚。Termux 从 F-Droid 或 GitHub Release 装不要用某些应用商店里的旧包旧包的pkg源和 NDK 相关依赖经常对不上。装好后先更新基础包pkg update pkg upgrade -y pkg install -y curl git unzip clang makeBun 官方支持 Android 后Termux 里可以直接装。如果你的源里还没有 bun 包用官方安装脚本兜底pkg install -y bun # 若源里没有用脚本 curl -fsSL https://bun.sh/install | bash装完确认版本和架构bun --version uname -muname -m在多数手机上是aarch64对应 Bun 的bun-linux-arm64-androidtarget。这一步很关键因为 Claude Code 的原生二进制和 Bun 运行时必须架构匹配否则会出现Exec format error。接下来是 TaoToken 这一侧。TaoToken 在这里的角色是统一 Key/API 通道你不需要在手机上分别维护多家模型的 Key而是拿一个统一 Key通过同一个 API 入口调用。先去控制台创建 API Key控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite创建后把 Key 存到 Termux 的环境变量里不要写死在配置文件里明文提交echo export TAOTOKEN_API_KEYsk-你的Key ~/.bashrc source ~/.bashrcAPI 基础地址用https://taotoken.net/api这个地址不带任何查询参数直接作为 base_url 使用。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到字段对不上时以文档为准。3. Claude Code 的 config.toml 可复制骨架Claude Code 在 Termux 下的配置目录默认是~/.claude配置文件为~/.claude/config.toml。如果目录不存在先建mkdir -p ~/.claude下面是一份可直接复制的骨架。注意 TOML 里字符串用双引号环境变量引用用${VAR}形式由 shell 展开所以更稳的做法是先用 shell 生成或者直接把 Key 填进去但确保文件权限是 600。# ~/.claude/config.toml # Claude Code on Termux / Android TaoToken 统一通道 [api] # TaoToken 统一 API 入口不带 UTM 参数 base_url https://taotoken.net/api # 从环境变量读取避免明文 api_key ${TAOTOKEN_API_KEY} # 请求超时手机网络波动大给足 120s timeout_seconds 120 # 失败重试次数 max_retries 3 [model] # 默认模型按你账号可用范围填 default claude-sonnet-4-5 # 小任务用轻量模型省额度 fast claude-haiku-4-5 [agent] # 允许 Claude Code 调用本地 shell 工具 allow_shell true # 工作目录Termux 下建议放在家目录 workdir /data/data/com.termux/files/home # 单次会话最大轮次防止手机端跑飞 max_turns 40 [telemetry] # 手机端关掉遥测省流量 enabled false几个参数值得单独说。timeout_seconds给到 120 是因为移动网络下 TLS 握手和首字节延迟比桌面高不少默认 30s 经常在弱网下误判超时。max_turns限制轮次是为了防止 Agent 在手机端陷入长循环既耗电又耗额度。workdir用 Termux 的真实家目录路径不要写~因为 Claude Code 内部不一定走 shell 展开。如果你更习惯用环境变量而不是配置文件也可以在~/.bashrc里直接导出export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY$TAOTOKEN_API_KEY两种方式选一种即可同时存在时以配置文件优先。改完记得chmod 600 ~/.claude/config.toml避免 Key 被其他应用读到。4. 验证请求确认通道真的连通配置写完不要直接开跑 Agent先用一条最小请求确认通道通。Claude Code 本身有非交互模式可以直接发一条 promptclaude -p 只回复两个字通了 --model claude-haiku-4-5如果返回类似通了的输出说明 Key、base_url、模型名三者都对上了。如果这一步就失败先别怀疑 Claude Code用 curl 直接打 TaoToken 的 API 入口把变量层和网络层分开排查curl -sS https://taotoken.net/api/v1/messages \ -H content-type: application/json \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -d { model: claude-haiku-4-5, max_tokens: 32, messages: [{role: user, content: ping}] }正常会返回一段 JSON包含content数组和usage字段。看到usage.input_tokens有数值就说明计费和通道都正常。这一步在手机上跑大概 2 到 5 秒取决于网络。通道确认后再验证 Bun 运行时本身没问题bun -e console.log(bun on android ok, process.arch)输出里应该能看到arm64或x64和uname -m对得上。两个验证都过了再进交互模式claude想先在网页端确认模型可用性可以打开模型对话页面发一条测试https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 。如果你打算长期在手机上跑编码任务或 Agent建议直接看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 额度模型和按次调用不一样长期用更划算。5. 本篇常见错排查报错一Exec format error。这是架构不匹配的典型症状。Claude Code 原生二进制和 Bun 运行时必须是同一架构。先uname -m确认再检查bun --version是否能正常输出。如果 Bun 装成了 x64 版本而手机是 arm64重装对应 target。报错二401 Unauthorized或invalid api key。九成是环境变量没生效。echo $TAOTOKEN_API_KEY看有没有值没有就source ~/.bashrc。另一种情况是配置文件里写了${TAOTOKEN_API_KEY}但 Claude Code 没做 shell 展开这时改成直接填 Key或者改用环境变量方式。报错三Connection timed out。先 curl 打https://taotoken.net/api看能不能通。如果 curl 也超时是网络层问题不是配置问题。如果 curl 通但 Claude Code 超时把timeout_seconds调到 180 再试。报错四模型名报model not found。模型名要和账号可用范围一致别照抄网上的旧名字。去模型对话页面确认当前可用模型再回填config.toml。报错五Termux 里pkg install bun找不到包。说明你的 Termux 源比较旧先pkg update还不行就用官方安装脚本。装完which bun确认路径在$PREFIX/bin下。报错六adb 控制手机时连不上。第一次需要电脑执行adb tcpip 5555并开启无线调试之后手机自己连localhost:5555。这一步和 TaoToken 无关但会影响 Claude Code 控制手机的场景单独排查。6. 把手机变成随身 Agent 入口整套流程跑通之后你手上这台 Android 设备就不只是能跑 Claude Code而是变成了一个可以随时唤醒的 Agent 入口。Bun 官方支持 Android 把之前 proot-distro 套 Ubuntu 再打 patch 的绕路方案省掉了pkg install bun一步到位Claude Code 直接跑在 Termux 里再通过 adb 反向控制手机本身做截图、点按、读通知这类操作都顺理成章。TaoToken 在这里承担的是统一通道的角色一个 Key、一个 base_url手机端不用维护多套凭证换模型只改config.toml里一行。接入文档和 API Keys 页面建议收藏改配置时对照字段。长期在手机上跑编码或 Agent 任务的话Coding Plan 比按次调用更稳额度模型适合这种高频低单次的场景。配置骨架已经给全剩下的就是把它复制进~/.claude/config.toml跑一条验证请求然后开始用。