协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
termux-safe【开发与工程】Android/Termux constraints reference. Prevents Claude Code from suggesting commands that fail silently on Android (sudo, systemd, non-Termux paths, etc.).
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: termux-safe description: Android/Termux constraints reference. Prevents Claude Code from suggesting commands that fail silently on Android (sudo, systemd, non-Termux paths, etc.). user-invocable: false disable-model-invocation: false
Scope and when this applies. These constraints apply when you are executing inside Termux on Android, regardless of how Claude Code itself was packaged. The load-bearing runtime signal is
$PREFIX === "/data/data/com.termux/files/usr". If that environment variable points at Termux's prefix, you are in Termux and these constraints apply, even ifprocess.platformreports"linux"(it will report"linux"if Claude Code was installed via this repo's v2.9.0 Path A, which runs the linux-arm64 binary patched via glibc-runner; it will report"android"only on older Path A v2.x installs that used the JS bundle). If$PREFIXis unset or points at/usr, you are inside a chroot-like sandbox (for example, a Linux rootfs running underproot-distro, Path B) or inside a hypervisor-managed Linux VM (Path C), and standard Linux conventions apply; most of this file does not.
If the runtime signals indicate the in-Termux case, the constraints below produce silent failures, not errors. Every suggestion must account for them.
sudo. Root does not exist. No su, no doas, no privilege escalation of any kind.systemctl or systemd. Android does not use systemd. No journalctl, no service, no unit files./usr/bin, /etc, /var do not exist or are not writable. Termux paths:
/data/data/com.termux/files/home/data/data/com.termux/files/usr$PREFIX/bin$PREFIX/etcpkg over apt. Both work, but pkg auto-updates the package index before installing.install.sh. The patched linux-arm64 claude binary is self-contained. If Node is installed separately on native Termux, prefer v25+: v24 had a documented startup hang on ARM64 that was resolved in v25.ulimit -n. Avoid spawning many concurrent processes.process.platform reporting varies by install path. On Path A v2.9.0 (the linux-arm64 binary patched via glibc-runner), Node.js reports process.platform === "linux" even though you are inside Termux. On older Path A v2.x (the JS-bundle npm install) it reports "android". On Path B (proot-distro Ubuntu) and Path C (AVF), it reports "linux" and you are not in Termux. The reliable cross-path signal that you are still in Termux is $PREFIX === "/data/data/com.termux/files/usr".Prefer pkg (auto-updates the index before install). apt and apt-get also work but skip the auto-update:
pkg install <package> -y
pkg upgrade
pkg search <query>
If you're about to suggest a command that assumes standard Linux, stop and verify it works on Termux first. When in doubt, prefix with command -v <tool> >/dev/null 2>&1 to check availability.