Install
openclaw skills install @pmuhammadagus-byte/termux-compat-runnerUse when executing shell commands on Termux/Android: validate platform, choose safe commands, apply timeout/retry, and avoid Linux desktop assumptions.
openclaw skills install @pmuhammadagus-byte/termux-compat-runnerSkill milik user: termux-compat-runner. Mengikuti Skill Architecture Standard X∞ (wajib).
Use when executing shell commands on Termux/Android: validate platform, choose safe commands, apply timeout/retry, and avoid Linux desktop assumptions.
Aktif ketika user meminta hal yang cocok dengan deskripsi di atas. Negative trigger: di luar scope deskripsi.
Baca OS/ARCH/runtime sebelum bertindak. Termux Android ARM64 ≠ Ubuntu x86_64.
IF uncertainty → VERIFY IF high risk → ASK/STOP IF tool unavailable → ALTERNATIVE IF action fails → RECOVER
Evidence-first. Bedakan FAKTA vs HIPOTESIS. Confidence: CONFIRMED/LIKELY/POSSIBLE/UNKNOWN.
Ambil tindakan relevan, lalu VERIFY. Jangan klaim sukses sebelum diverifikasi.
Pilih tool berdasar kebutuhan+konteks. Jangan asal panggil semua tool.
Ingat hal relevan; abaikan noise. Retrieve saat dibutuhkan, update bila berubah.
ACTION → VERIFY → SUCCESS? Jika tidak: DIAGNOSE → RETRY/CHANGE STRATEGY.
transient→retry; timeout→backoff; auth→credential check; dependency→diagnosis; unknown→investigate.
NEVER log secret. REDACT API KEY/TOKEN/PASSWORD/SECRET sebelum simpan. PII: MINIMIZE→REDACT→HASH.
Self-eval: capai goal? terverifikasi? ada asumsi? ada gagal? Kirim ke Agent Evaluation Engine.
Emit: START/PROGRESS/TOOL CALL/ERROR/RETRY/SUCCESS/FAILURE + TRACE_ID (tanpa secret).
FULL→OPTIMIZED→LOW RESOURCE mode bila terbatas. Prioritas: TASK>SAFETY>RELIABILITY.
USE→OBSERVE→EVALUATE→FIND WEAKNESS→IMPROVE→TEST→NEW VERSION (via evaluasi+regresi).
Semver. Perubahan struktur = MAJOR. CHANGELOG wajib.
Tahu OS/ARCH/RUNTIME/versi/tool/API tersedia.
Trust hierarchy: OFFICIAL>PRIMARY>REPUTABLE>COMMUNITY>UNKNOWN. Tandai VERIFIED/LIKELY/UNCERTAIN/OUTDATED/CONFLICTING.
Berhenti pada: SUCCESS/FAILURE/BLOCKED/NEED USER/NEED CREDENTIAL/NEED TOOL/NEED VERIFICATION.
Gunakan skill ini ketika:
Jangan gunakan untuk:
Sebelum menjalankan command di Termux/Android, ikuti:
com.termux di $PREFIX/$HOME → TERMUX; uname untuk Linux/Mac.command -v <tool>; pkg list-installed untuk package; uname -m arsitektur.systemctl, /usr/local, glibc-only bin tanpa fallback.Examples (user says X → you do Y)
pkg update" → command -v pkg ada → jalankan dengan timeout 60s → laporkan EXIT CODE + OUTPUT.command -v ss? ya pakai ss; tidak → netstat//proc/net/tcp fallback.termux-setup-storage & cek permission sebelum akses file eksternal.Gotchas
systemctl, /usr/local, glibc-only sering tidak ada di Termux.Menyediakan cara aman dan konsisten menjalankan perintah di Termux/Android tanpa asumsi Linux desktop.
bash tersediatermux-setup-storage sudah dijalankan jika butuh akses storageJika tidak terpenuhi, laporkan dan minta izin/user action.
IF $PREFIX contains com.termux OR $HOME contains com.termux:
PLATFORM = TERMUX
ELSE IF uname -s = Linux AND uname -m = x86_64:
PLATFORM = LINUX_DESKTOP
ELSE IF uname -s = Darwin:
PLATFORM = MACOS
ELSE:
PLATFORM = UNKNOWN
Catat platform sebelum memilih command strategy.
Sebelum menjalankan command, cek ketersediaan tool:
CHECKLIST:
command -v <tool> untuk tool umumpkg list-installed atau dpkg -l untuk package Termuxuname -m untuk arsitektur$PREFIX untuk path environmentJika tool tidak ada:
Gunakan pendekatan bertingkat:
PRIMARY COMMAND ↓ CHECK EXIT CODE ↓ IF SUCCESS VERIFY OUTPUT REPORT RESULT ELSE SAFE RETRY max 2x ↓ IF STILL FAILED USE FALLBACK ↓ IF FALLBACK FAILED STOP REPORT ERROR
Aturan:
Default timeout:
Jika exceed timeout:
Jangan gunakan command yangKnown tidak kompatibel dengan Termux:
HINDARI:
systemctl / systemd commands/usr/local/... pathsGunakan alternatif Termux:
pkg untuk package managementtermux-services jika dibutuhkan servicetermux-setup-storage untuk storage access$HOME atau $PREFIX untuk direktoriINPUT ERROR → Jelaskan format command yang salah → Berikan contoh command yang benar → Jangan lanjut tanpa konfirmasi jika kritis
DEPENDENCY ERROR
→ Laporkan package/tool yang hilang
→ Berikan cara install: pkg install <package>
→ Gunakan fallback jika ada
TOOL ERROR → Laporkan pesan error dari tool → Jangan lanjut jika output tidak bisa dipercaya
NETWORK ERROR → Laporkan koneksi gagal → Gunakan fallback offline jika ada → Jangan infinite retry
TIMEOUT → Laporkan durasi yang exceeded → Gunakan fallback atau perintah lebih ringkas
PERMISSION ERROR → Laporkan path/operation yang ditolak → Berikan recovery: permission request atau alternatif path
ENVIRONMENT ERROR → Laporkan platform mismatch → Gunakan solusi sesuai Termux/Android
OUTPUT ERROR → Laporkan output yang tidak sesuai ekspektasi → Validasi ulang atau repair
UNKNOWN ERROR → Tangkap exception → Laporkan dengan jelas → Jangan lanjut dengan asumsi
Untuk operasi berisiko: CHECK → CONFIRM TARGET → EXECUTE → VERIFY
Setiap eksekusi, laporkan:
COMMAND:
PLATFORM: TERMUX / LINUX_DESKTOP / MACOS / UNKNOWN
EXIT CODE:
RESULT: SUCCESS / FAILED / TIMEOUT / ERROR
OUTPUT:
NEXT ACTION: <lanjut/retry/fallback/stop>
SELF-CHECK
Sebelum menyatakan eksekusi selesai:
[ ] Platform terdeteksi
[ ] Tool availability tercek
[ ] Timeout ditetapkan
[ ] Error handling tersedia
[ ] Fallback disiapkan
[ ] Tidak ada command destruktif tanpa validasi
[ ] Output diverifikasi
[ ] Tidak ada secret yang tercetak
QUALITY GATE
Target: 90+ untuk production-ready.
Evaluasi:
- compatibility dengan Termux/Android
- reliability saat tool gagal
- clarity instruksi
- error handling coverage
- security
- maintainability
Jika di bawah 90: perbaiki sebelum digunakan.
GOLDEN RULE
Jangan asumsikan Linux desktop.
Jalankan command seolah-olah environment bisa berubah kapan saja.
Utamakan compatibility, safety, dan verifikasi.
Common Mistakes
Mistake Fix Linux-only commands Use Termux-compatible alternatives Ignoring Android limits Respect process/background limits Hardcoded desktop paths Use PREFIX/HOME dynamically No error capture Capture stderr for diagnosis
Red Flags
- Command that doesn't exist on Termux
- Desktop path assumptions
- Ignoring Android process limits
- No failure diagnostics
Rationalization Prevention
Excuse Reality "It's bash, it'll work" Termux differs. Test. "I'll handle errors later" Capture errors now. "The path is standard" Verify per-environment.
How to Use
- Validate platform: Confirm Termux/Android context.
- Choose safe commands: Termux-compatible alternatives.
- Execute: Apply timeout/retry guards.
- Diagnose: Capture stderr for failures.
Toolkit / Files
scripts/run_safe.sh — validates a command against a safe allowlist and prints the dry-run it WOULD run; it never executes anything. Example:
bash scripts/run_safe.sh "ss -tulpen" --timeout 60