kelai141 / dsh-shell-termux

已收录

dsh 的安卓/Termux bash 能力提供者——显式 Termux 环境注入、探测诊断、诚实的应用域沙箱声明。

main其他 查看源代码

安装

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

此命令根据 GitHub 仓库地址生成。运行前请检查上游 README 与源代码;需要可复现安装时,请固定 release 或 commit。

README

维护者编写的文档快照。

在 GitHub 查看 ↗
提交版本 3247ed3同步于 2026年8月18日

dsh-shell-termux

🌐 中文说明 / 中文 README

DeepSeek Harness × Android 生态 · dsh-mobile-apk(壳 APK)· dsh-client-ui-responsive(移动 UI)· dsh-host-web-compat(浏览器兼容)

Android/Termux bash capability provider for 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):

# 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:

- 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

keymeaningdefault
bashPathabsolute bash binary pathrequired
prefixTermux prefix root (contains bin/ lib/)required
homeTermux home directoryrequired
termuxVersionTERMUX_VERSION value injected0.118.3
extraPathextra PATH entries prepended (e.g. /system/bin)[]
cwd / timeoutMs / maxTimeoutMs / maxOutputBytes / maxSpillBytes / graceMsinherited 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 declarationsandboxMode = '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 diagnosticsprobe() 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.

项目文件与信号

以下项目是目录快照中检测到的公开仓库信号。

文档已检测

仓库信息

开发语言
TypeScript
许可证
MIT
最后更新
2026年8月18日 07:00

谨慎安装

请检查源代码、权限、生命周期脚本、依赖与网络访问;不受信任的插件应先在隔离环境中测试。