dshbase

Plugin directory / Developer / dsh-shell-termux

dsh-shell-termux

Verified · install-tested on dsh kelai141

✓ Actively maintained Builds on 6 official DSH packages Pure TypeScript

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
TypeScriptLanguage
2026-08-15Last push
Cross-platformPlatform

What it does

dsh-shell-termux — DSH plugin (sandbox)

✅
Our take
Works — verified, early-stage project

dsh-shell-termux — DSH plugin (sandbox) It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

README

dsh-shell-termux

[🌐 中文说明 / 中文 README](README.zh.md) > **DeepSeek Harness × Android 生态** · https://github.com/kelai141/dsh-mobile-apk(壳 APK)· https://github.com/kelai141/dsh-client-ui-responsive(移动 UI)· https://github.com/kelai141/dsh-host-web-compat(浏览器兼容) Android/Termux bash capability provider for https://github.com/deepseek-ai/deepseek-harness. Registers as ctx.shell on Android so the model's bash tool executes in a controlled Termux environment — no fake sandboxing, no dependency on the ambient environment being accidentally right.

Why

On Android the upstream bash-sandbox fails closed (no bwrap/landlock/seatbelt platform chain), so the bash tool is dead out of the box. This provider replaces it with an honest Termux execution world: explicit environment injection, probe diagnostics, and a declared app-domain sandbox semantics (workspace-write + enforcement: 'partial').

Quick start

**Prerequisite**: a Termux installation with bash (pkg install bash). **1. Install** — put the package into the profile's node_modules (healed fallback resolves its @deepseek-ai/* dependencies to the running dsh instance): ``sh

from the profile directory (~/.dsh/profiles/web)

npm install /path/to/dsh-shell-termux-0.1.0.tgz

or manually: unpack into <profile>/node_modules/@dsh-android/dsh-shell-termux/

` **2. Mount** — add to the profile's cordis.patch.yml: `yaml - id: bash-sandbox disabled: true - insert: - id: shell-termux name: '@dsh-android/dsh-shell-termux' config: bashPath: /data/data/com.termux/files/usr/bin/bash prefix: /data/data/com.termux/files/usr home: /data/data/com.termux/files/home cwd: /data/data/com.termux/files/home timeoutMs: 120000 maxTimeoutMs: 600000 ` **3. Restart** the dsh service and verify with --dump-config (the row must be present, not disabled).

Configuration

| key | meaning | default | |---|---|---| |
bashPath | absolute bash binary path | required | | prefix | Termux prefix root (contains bin/ lib/) | required | | home | Termux home directory | required | | termuxVersion | TERMUX_VERSION value injected | 0.118.3 | | extraPath | extra PATH entries prepended (e.g. /system/bin) | [] | | cwd / timeoutMs / maxTimeoutMs / maxOutputBytes / maxSpillBytes / graceMs | inherited local-executor knobs (editable via shell settings) | mirror dsh-bash-local |

What it does

- **Controlled environment** — every spawn injects
PATH/LD_LIBRARY_PATH/HOME/PREFIX/TERMUX_VERSION/SHELL explicitly; execution never depends on the launcher environment. - **Reuses local mechanics** — extends LocalBashExecutor (runArgv/startArgv): process-group SIGTERM→SIGKILL, output caps + spill, grace period, background lifecycle, teardown ownership. - **Honest sandbox declaration** — sandboxMode = 'workspace-write' (so permission presets mount) with per-process enforcement: 'partial': the protection boundary is the Android app domain (SELinux u0_aXXX) plus the approval flow, not a path-level confiner. - **Probe diagnostics** — probe() reports bash presence/version and missing toolchain packages (pkg install bash coreutils findutils grep ripgrep hints). Misconfigured bash fails loud with repair guidance.

Verification

-
probe() status: full / partial / unusable with a missing-package list; - fault injection: point bashPath at a missing binary → structured error (shell-termux: <path> is not executable; run 'pkg install bash' …) returned to the model.

License

MIT. Contains code derived from
@deepseek-ai/dsh-bash-local (MIT, © 2026 DeepSeek) — see NOTICE. Design rationale: docs/design.md`.

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-shell-termux for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

Web profile:

dsh plugin --profile web add github:kelai141/dsh-shell-termux

Headless (CLI) profile:

dsh plugin --profile headless add github:kelai141/dsh-shell-termux

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

When to use it

Extend the agent's coding surface — give it a new tool, workflow, or integration so it handles a dev task it couldn't before.

Who it's for

Developers who want dsh to behave like a teammate on real codebases — editing, running, and verifying changes rather than just answering.

For developers — extending it

The tool/command surface is the seam: expose more of the SDK, add smarter context wiring, or tighten the loop between code changes and verification.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in Developer

Browse all 7797 plugins →