Skip to content

Releases: murafdev/opencode-termux

OpenCode 2.2.5 native Termux (Bun 1.4.4)

Choose a tag to compare

@github-actions github-actions released this 31 Oct 11:41

OpenCode 2.2.5 for Termux — Bun 1.4.4 build

This Termux build runs OpenCode 2.2.5 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.2.5-bun144.1 uses the verified Android/Bionic Bun 1.4.4 runtime and Bionic OpenTUI 0.8.0 renderer while preserving the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.5-bun144.1/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version is opencode v2.2.5.

What changed

  • OpenCode updated to 2.2.5 from pinned upstream commit 9bbb8ce18c80f099e0e448775f59d965ead40a21; its pinned Bun source toolchain is 1.4.4.
  • Bionic OpenTUI renderer updated to 0.8.0, with the Android hardening patches re-verified against the 0.8.0 source: file-prefix mapping, the self-contained TLSDESC resolver, the Android 11+ heap-pointer-tagging opt-out, and the scissor/rect overflow guards. OpenTUI 0.8.0 clamps viewport origins in i64, so the older extreme-origin short-circuits are no longer needed.
  • Android/Bionic Bun runtime is 1.4.4.
  • The release binary was built in GitHub Actions as a source-mode module graph (bytecode: false, 669 modules) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.
  • Security hardening: project-controlled markdown frontmatter and instructions globs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading still isolates normalization failures so one malformed command, agent, mcp, or provider entry is logged and skipped instead of aborting config load (upstream #59684). The 2.2.5 dependency refresh keeps nine previously suppressed critical/high advisories cleared; only the transitive zod@3.25.76 copy held by gitlab-ai-provider remains under an expiring suppression. Six moderate glob/minimatch findings remain below the critical/high gate and are tracked in security/deferred-hardening.md. Normal project configuration is unchanged.

Upstream 2.2.3–2.2.5 changes to know about

  • OpenTUI 0.8 is required for TUI plugins. @opencode/plugin now needs @opentui/core and @opentui/solid 0.8.0 or later. ScrollBox wrapper, viewport, content, and scrollbar facades, plus the clock and onAnimationTick RenderContext methods, are the breaking changes; plugins built only for OpenTUI 0.7 need an update.
  • Claude Agent provider. Install Claude Code, run claude auth login, then select Claude Agent in /connect to use that login and its models.
  • Managed policy split. integration.use now covers integration accounts only; mcp.use, skill.use, and plugin.use control MCP servers, skills, and plugins. Rules with the old mcp:, skill:, and plugin: resource prefixes are converted automatically.
  • Worktree and shell shortcuts. Ctrl+Alt+O and Ctrl+Alt+B choose a worktree and its base branch; Ctrl+Shift+X toggles shell mode in the composer.
  • Percentage compaction buffer. "compaction": { "buffer": "20%" } keeps a share of each model's context window free; token counts still work.
  • Persistent desktop terminals and interactive artifacts. Desktop terminals survive server restarts with scrollback; "experimental": { "artifacts": true } enables agent-published HTML/static artifacts.
  • Core fixes. MCP stdio messages over 10 MiB no longer disconnect, compaction caps prompts at the model context window, LiteLLM context errors trigger compaction, and reasoning stays reasoning when switching models or resuming.
  • TUI fixes. Lazy stored-image references, PHP highlighting without <?php, # preservation in file-search paths, and cursor-style persistence across config reloads.

Release signatures

The publish workflow signs both SHA256SUMS and the archive with cosign keyless signing and attaches SHA256SUMS.cosign.bundle and opencode-2.2.5-android-aarch64-source-bun144-sourcegraph.tar.gz.cosign.bundle. install.sh verifies them when cosign is installed; OPENCODE_REQUIRE_SIGNATURE=1 makes an absent or invalid signature fatal. To verify manually:

cosign verify-blob \
  --bundle SHA256SUMS.cosign.bundle \
  --certificate-identity-regexp '^https://github\.com/murafdev/opencode-termux/\.github/workflows/publish-native-android\.yml@refs/(heads|tags)/.+$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-github-workflow-repository murafdev/opencode-termux \
  SHA256SUMS

The signature binds the artifacts to the release workflow and records them in the transparency log. It does not protect against a compromised maintainer account.

Rollback to the previous builds

The previous OpenCode 2.2.2 release remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.2-bun144.1/install.sh | sh

The 2.2.0 release also remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | sh

The 2.1.4 release also remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh

Both 2.1.3 releases also remain available. To use the 2.1.3 Bun 1.4.4 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

To return to the original Bun 1.4.0 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. Candidate run 41193063342 was built at commit 26f920a6e013f44f51e3c19e4b9ff6ab7c341b57. The run ID, OpenCode commit, and pinned runtime inputs are recorded in the attached build-variant.json, supply-chain-lock.json, and transplant-report.json; SHA256SUMS carries the binary digest. The artifact is 198,451,576 bytes with SHA-256 e2f2a4da522f5f132b5d78eb46df905df6e25e23a14a496e78429e3d1dd07045.

The artifact is an aarch64 PIE ELF with /system/bin/linker64. CI verified the embedded Bionic OpenTUI 0.8.0 renderer's libc.so linkage, the FFI negative-coordinate guard, and the 669-module graph; the push-triggered Linux unit suite passed. Artifact review also confirmed the embedded libopentui.so is 4,522,624 bytes with SONAME libopentui.so, Bionic-only NEEDED entries, 244 exported ot_* symbols, and no glibc-only pthread_tryjoin_np import. The Linux CI runner skipped its runtime TUI probe because it is not AArch64.

On device, the exact artifact passed the SHA-256 check, --version reported opencode v2.2.5, the interactive TUI started, and /q exited cleanly. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.2.2 native Termux (Bun 1.4.4 rollback)

Choose a tag to compare

@github-actions github-actions released this 30 Oct 01:27

Rollback build: This OpenCode 2.2.2 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.5.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.2-bun144.1/install.sh | sh.


OpenCode 2.2.2 for Termux — Bun 1.4.4 build

This Termux build runs OpenCode 2.2.2 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.2.2-bun144.1 uses the verified Android/Bionic Bun 1.4.4 runtime and Bionic OpenTUI 0.7.0 renderer while preserving the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.2-bun144.1/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version is opencode v2.2.2.

What changed

  • OpenCode updated to 2.2.2 from pinned upstream commit 098aa7fd6e02b03d6fc410f0b052038c7d4c5e81; its pinned Bun source toolchain is 1.4.4.
  • Bionic OpenTUI renderer remains 0.7.0, with the Android hardening patches re-verified against the same 0.7.0 source: file-prefix mapping, the self-contained TLSDESC resolver, and the Android 11+ heap-pointer-tagging opt-out.
  • Android/Bionic Bun runtime is 1.4.4.
  • The release binary was built in GitHub Actions as a source-mode module graph (bytecode: false, 670 modules) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.
  • Security hardening: project-controlled markdown frontmatter and instructions globs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading still isolates normalization failures so one malformed command, agent, mcp, or provider entry is logged and skipped instead of aborting config load (upstream #59684). The 2.2.2 dependency refresh clears nine of the ten previously suppressed critical/high advisories; only the transitive zod@3.25.76 copy held by gitlab-ai-provider remains under an expiring suppression. Normal project configuration is unchanged.

Upstream 2.2.1 and 2.2.2 changes to know about

  • /goal <objective> keeps a session working until a reviewer confirms the objective is met; use /goal pause, /goal resume, and /goal clear to control it.
  • Opt-in scheduled prompts are available through /schedule, agent tools, and experimental.schedules.
  • Image generation (experimental.image_generate) is enabled by default in 2.2.2 when a connected provider supports image models. Set a preferred model with experimental.image_generate.model.
  • The @opencode/ai package removes the fal, Black Forest Labs, Replicate, and Stability providers and several legacy entry points. This affects code that imports the library directly; it does not change the CLI, TUI, or HTTP API.
  • The 2.2.2 release also fixes terminal requests for deleted working directories, media preservation when sessions are forked or imported, attachment handling, and usage-limit messages.

Release signatures

The publish workflow signs both SHA256SUMS and the archive with cosign keyless signing and attaches SHA256SUMS.cosign.bundle and opencode-2.2.2-android-aarch64-source-bun144-sourcegraph.tar.gz.cosign.bundle. install.sh verifies them when cosign is installed; OPENCODE_REQUIRE_SIGNATURE=1 makes an absent or invalid signature fatal. To verify manually:

cosign verify-blob \
  --bundle SHA256SUMS.cosign.bundle \
  --certificate-identity-regexp '^https://github\.com/murafdev/opencode-termux/\.github/workflows/publish-native-android\.yml@refs/(heads|tags)/.+$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-github-workflow-repository murafdev/opencode-termux \
  SHA256SUMS

The signature binds the artifacts to the release workflow and records them in the transparency log. It does not protect against a compromised maintainer account.

Rollback to the previous builds

The previous OpenCode 2.2.0 release remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | sh

The 2.1.4 release also remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh

Both 2.1.3 releases also remain available. To use the 2.1.3 Bun 1.4.4 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

To return to the original Bun 1.4.0 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. Candidate run 40971490976 was built at commit 10fd5d5ae3711c65740543b49259364bee0ccc32. The run ID, OpenCode commit, and pinned runtime inputs are recorded in the attached build-variant.json, supply-chain-lock.json, and transplant-report.json; SHA256SUMS carries the binary digest. The artifact is 199,106,936 bytes with SHA-256 b6f8587a35135b02098bff8be6536acf298305e2d938b86b2c380f57e0103a5d.

CI verified the artifact checksum, aarch64 PIE ELF metadata with /system/bin/linker64, the embedded Bionic libopentui.so (SONAME and Bionic-only NEEDED entries), the FFI negative-coordinate guard, all 239 callable FFI symbols, the 670-module graph, and the Linux unit suite. The Linux CI runner skipped its runtime TUI probe because it is not AArch64.

On device, the exact artifact passed the SHA-256 check, --version reported opencode v2.2.2, the interactive TUI started, and /q exited cleanly. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.2.0 native Termux (Bun 1.4.4 rollback)

Choose a tag to compare

@github-actions github-actions released this 27 Oct 23:13

Rollback build: This OpenCode 2.2.0 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.5.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | sh.


Rollback build: This OpenCode 2.2.0 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.2.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | sh.


OpenCode 2.2.0 for Termux — Bun 1.4.4 build

This Termux build runs OpenCode 2.2.0 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.2.0-bun144.1 uses the verified Android/Bionic Bun 1.4.4 runtime and Bionic OpenTUI 0.7.0 renderer while preserving the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version is opencode v2.2.0.

What changed

  • OpenCode updated to 2.2.0 from pinned upstream commit 1097e2668b1e08ad63bdf0b1c4860b9bc01e420c; its pinned Bun source toolchain is 1.4.4.
  • Bionic OpenTUI renderer updated to 0.7.0, with the Android hardening patches ported to the 0.7.0 source: file-prefix mapping, the self-contained TLSDESC resolver, and the Android 11+ heap-pointer-tagging opt-out.
  • Android/Bionic Bun runtime is 1.4.4.
  • The release binary was built in GitHub Actions as a source-mode module graph (bytecode: false, 661 modules) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.
  • Security hardening: project-controlled markdown frontmatter and instructions globs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading now isolates normalization failures. A legacy command, agent, mcp, or provider entry that fails V1-to-V2 migration is logged and skipped instead of aborting config load and returning HTTP 500 to the TUI (upstream #59684). Normal project configuration is unchanged.

Upstream 2.2.0 changes to know about

  • TUI plugins must target OpenTUI 0.7.0; this build ships the matching renderer.
  • The @opencode/ai package root is now a Promise-based API.
  • The OpenCode GitHub Action was removed upstream. It is unrelated to the Termux runtime.

Release signatures

The publish workflow signs both SHA256SUMS and the archive with cosign keyless signing and attaches SHA256SUMS.cosign.bundle and opencode-2.2.0-android-aarch64-source-bun144-sourcegraph.tar.gz.cosign.bundle. install.sh verifies them when cosign is installed; OPENCODE_REQUIRE_SIGNATURE=1 makes an absent or invalid signature fatal. To verify manually:

cosign verify-blob \
  --bundle SHA256SUMS.cosign.bundle \
  --certificate-identity-regexp '^https://github\.com/murafdev/opencode-termux/\.github/workflows/publish-native-android\.yml@refs/(heads|tags)/.+$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-github-workflow-repository murafdev/opencode-termux \
  SHA256SUMS

The signature binds the artifacts to the release workflow and records them in the transparency log. It does not protect against a compromised maintainer account.

Rollback to the previous builds

The previous OpenCode 2.1.4 release remains available:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh

Both 2.1.3 releases also remain available. To use the 2.1.3 Bun 1.4.4 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

To return to the original Bun 1.4.0 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. Candidate run 40596901107 was built at commit 526d1339e6507e7e076a999636eae7e35790b989. The run ID, OpenCode commit, and pinned runtime inputs are recorded in the attached build-variant.json, supply-chain-lock.json, and transplant-report.json; SHA256SUMS carries the binary digest. The artifact is 198,779,256 bytes with SHA-256 d9ea2a0a1565deb98261b4a9853f2f4c453315da038e9a884a4de4c671cbb17b.

CI verified the artifact checksum, aarch64 PIE ELF metadata with /system/bin/linker64, the embedded Bionic libopentui.so (SONAME and Bionic-only NEEDED entries), the FFI negative-coordinate guard, all 239 callable FFI symbols, the 661-module graph, and the Linux unit suite. The Linux CI runner skipped its runtime TUI probe because it is not AArch64.

On device, the exact artifact passed the SHA-256 check, --version reported opencode v2.2.0, the interactive TUI started, and /q exited cleanly. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.1.4 native Termux (Bun 1.4.4 rollback)

Choose a tag to compare

@github-actions github-actions released this 24 Oct 22:16

Rollback build: This OpenCode 2.1.4 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.5.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh.


Rollback build: This OpenCode 2.1.4 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.2.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh.


Rollback build: This OpenCode 2.1.4 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.0.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh.


OpenCode 2.1.4 for Termux — Bun 1.4.4 build

This Termux build runs OpenCode 2.1.4 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.1.4-bun144.2 uses the verified Android/Bionic Bun 1.4.4 runtime and Bionic OpenTUI 0.6.8 renderer while preserving the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version is opencode v2.1.4.

What changed

  • OpenCode updated to 2.1.4 from pinned upstream commit 68bc26b7da1990ce10ffecfbc1e09eb13aa5d824; its pinned Bun source toolchain is 1.4.4.
  • Bionic OpenTUI renderer updated to 0.6.8 with Android hardening patches validated against the pinned upstream source.
  • Android/Bionic Bun runtime is 1.4.4.
  • Fixed the transplant layout so ELF metadata appended to a PT_LOAD segment does not overwrite the runtime's zero-filled .bss.
  • The release binary was built in GitHub Actions as a source-mode module graph (bytecode: false) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • OpenTUI Android hardening includes heap-pointer-tagging handling and the Google Play Termux self-spawn fix.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.
  • Security hardening: project-controlled markdown frontmatter and instructions globs now have bounded parsing work. A crafted checkout can no longer stall startup through js-yaml merge-key amplification (CVE-2026-84375) or brace-expansion recursion (CVE-2026-102276 / 102277 / 102278). Normal project configuration is unchanged.

Release signatures

The publish workflow signs both SHA256SUMS and the archive with cosign keyless signing and attaches SHA256SUMS.cosign.bundle and opencode-2.1.4-android-aarch64-source-bun144-sourcegraph.tar.gz.cosign.bundle. install.sh verifies them when cosign is installed; OPENCODE_REQUIRE_SIGNATURE=1 makes an absent or invalid signature fatal. To verify manually:

cosign verify-blob \
  --bundle SHA256SUMS.cosign.bundle \
  --certificate-identity-regexp '^https://github\.com/murafdev/opencode-termux/\.github/workflows/publish-native-android\.yml@refs/(heads|tags)/.+$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-github-workflow-repository murafdev/opencode-termux \
  SHA256SUMS

The signature binds the artifacts to the release workflow and records them in the transparency log. It does not protect against a compromised maintainer account.

Rollback to the previous OpenCode 2.1.3 builds

Both prior 2.1.3 releases remain available. To use the Bun 1.4.4 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

To return to the original Bun 1.4.0 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. The candidate run ID, OpenCode commit, and pinned runtime inputs are recorded in the attached build-variant.json, supply-chain-lock.json, and transplant-report.json; SHA256SUMS carries the binary digest.

The v2.1.4-bun144.2 candidate passed checksum and --version verification and interactive TUI startup on one Android/Termux device. The previous v2.1.4-bun144.1 candidate had also passed a real provider prompt using flint-40b-free on that device. CI additionally verified the artifact checksum, ELF metadata, provenance, guard strings, and the full Linux unit suite. The Linux CI runner skipped its runtime TUI probe because it is not AArch64. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.1.4 native Termux (Bun 1.4.4)

Choose a tag to compare

@github-actions github-actions released this 24 Oct 06:56

Superseded by v2.1.4-bun144.2. This build predates the startup-DoS guards for markdown frontmatter and instruction globs. New installs should use the newer release:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | sh

OpenCode 2.1.4 for Termux ÔÇö Bun 1.4.4 build

This Termux build runs OpenCode 2.1.4 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.1.4-bun144.1 uses the verified Android/Bionic Bun 1.4.4 runtime and Bionic OpenTUI 0.6.8 renderer while preserving the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.1/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version is opencode v2.1.4.

What changed

  • OpenCode updated to 2.1.4 from pinned upstream commit 68bc26b7da1990ce10ffecfbc1e09eb13aa5d824; its pinned Bun source toolchain is 1.4.4.
  • Bionic OpenTUI renderer updated to 0.6.8 with Android hardening patches validated against the pinned upstream source.
  • Android/Bionic Bun runtime is 1.4.4.
  • Fixed the transplant layout so ELF metadata appended to a PT_LOAD segment does not overwrite the runtime's zero-filled .bss.
  • The release binary was built in GitHub Actions as a source-mode module graph (bytecode: false) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • OpenTUI Android hardening includes heap-pointer-tagging handling and the Google Play Termux self-spawn fix.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.

Rollback to the previous OpenCode 2.1.3 builds

Both prior 2.1.3 releases remain available. To use the Bun 1.4.4 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

To return to the original Bun 1.4.0 build:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. The source candidate is Actions run 40069487737; its binary SHA-256 is 1c2c107ddc27edc627c27c1d099b3c96a238f9efb5734f2275ccc265c03b6986. The attached SHA256SUMS, supply-chain lock, build-variant metadata, and transplant report record the artifact and pinned inputs.

On one Android/Termux device, this exact candidate passed checksum and --version verification, interactive TUI startup, and a real provider prompt using flint-40b-free. The Linux CI runner could verify the build and transplant but skipped its runtime TUI probe because it was not AArch64. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.1.3 native Termux (Bun 1.4.4 rollback)

Choose a tag to compare

@github-actions github-actions released this 24 Oct 05:17

Rollback build: This OpenCode 2.1.3 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.5.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.2.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.4 release is retained for rollback from OpenCode 2.2.0.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.4 release is retained for rollback from OpenCode 2.1.4.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.4 release is retained for rollback from OpenCode 2.1.4.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh.


OpenCode 2.1.3 for Termux — Bun 1.4.4 build

This Termux build runs OpenCode 2.1.3 directly on Android ARM64/Bionic, without PRoot or glibc. Release tag v2.1.3-bun144.1 updates the Android runtime from Bun 1.4.0 to the matching Bun 1.4.4 runtime while preserving the OpenTUI 0.6.6 Android renderer and the opencode command.

Install or update in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3-bun144.1/install.sh | sh

The installer verifies the downloaded archive and extracted binary before atomically replacing ~/.local/bin/opencode. It retains chats, sign-ins, and configuration. The reported CLI version remains opencode v2.1.3.

What changed

  • Android/Bionic Bun runtime updated to 1.4.4, matching the pinned OpenCode 2.1.3 source toolchain.
  • Fixed the transplant layout so ELF metadata appended to a PT_LOAD segment does not overwrite the runtime's zero-filled .bss.
  • The candidate was built in GitHub Actions as a source-mode module graph (bytecode: false) and transplanted onto the hash-verified Android Bun 1.4.4 binary.
  • OpenTUI 0.6.6 remains pinned with the Android/Bionic hardening patches, including heap-pointer-tagging handling and the Google Play Termux self-spawn fix.
  • The native opencode upgrade guard points at this release's installer. opencode uninstall --dry-run previews removal; uninstall keeps user data.

Rollback to the previous Bun 1.4.0 build

The existing v2.1.3 release remains unchanged and is the rollback target. It contains OpenCode 2.1.3 on the previously verified Android/Bionic Bun 1.4.0 runtime:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

The v2.1.2 release is also retained. Back up OpenCode data before downgrading if you may need to recover an older session database.

Provenance and testing

This release is published from a successful GitHub Actions artifact, not from a phone-side build. The source candidate is Actions run 40062665076; its binary SHA-256 is 22291b8f0d0951d8c8608de7f2800e51d6bfd715e2f24f6e1a4c264de5fa8594. The attached SHA256SUMS, supply-chain lock, build-variant metadata, and transplant report record the artifact and pinned inputs.

On one Android/Termux device, this exact candidate passed --version, interactive TUI startup, and one real provider prompt. The Linux CI runner could verify the build and transplant but skipped its runtime TUI probe because it was not AArch64. These results are single-device validation, not a claim of multi-device coverage; please report device-specific problems.

OpenCode 2.1.3 native Termux (Bun 1.4.0 rollback)

Choose a tag to compare

@github-actions github-actions released this 23 Oct 08:57

Rollback build: This OpenCode 2.1.3 Bun 1.4.0 release is retained for rollback from OpenCode 2.2.5.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.0 release is retained for rollback from OpenCode 2.2.2.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.0 release is retained for rollback from OpenCode 2.2.0.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.0 release is retained for rollback from OpenCode 2.1.4.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


Rollback build: This OpenCode 2.1.3 Bun 1.4.0 release is retained for rollback from OpenCode 2.1.4.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


Rollback build: This Bun 1.4.0 release is retained for rollback from the latest Bun 1.4.4 release.
Reinstall it in Termux with curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh.


OpenCode 2.1.3 for Termux

Run OpenCode v2 directly in Termux on Android ARM64, without PRoot or glibc. This release updates the app from 2.1.2 to 2.1.3 and keeps the verified Android/Bionic Bun 1.4.0 runtime, with the single opencode command.

Install in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | sh

If ~/.local/bin is not already on your PATH, add it once and reload your shell:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

For Zsh use ~/.zshrc; for Fish run fish_add_path ~/.local/bin. Then run opencode --version (expected: 2.1.3) and opencode.

Installing and running OpenCode needs no Android storage permission; everything stays in Termux's private home. To open projects in shared storage, run termux-setup-storage once and approve the Android prompt (on Android 11+ you may also need All files access for Termux), then use paths such as ~/storage/shared/Documents/my-project.

The installer checks both the compressed download and the extracted binary against release checksums before replacing ~/.local/bin/opencode. It keeps your chats, sign-ins, and configuration. Back up your OpenCode data first if you might need to return to v2.1.2 or v1, because v2 may migrate the session database.

What changed

  • OpenCode updated to upstream 2.1.3.
  • OpenCode 2.1.3 is built with the verified Bun 1.4.0 host, Linux target, and Android/Bionic base. The upstream source pins bun@1.4.4, so the build rewrites packageManager to bun@1.4.0 and regenerates the module graph with the matching toolchain. A 1.4.4 Android candidate was evaluated but reverted because it segfaulted during Bun/JSC startup before OpenCode code ran; keeping 1.4.0 preserves the runtime that v2.1.2 already proved on-device.
  • The bundled OpenTUI renderer remains pinned to 0.6.6 with the Android/Bionic hardening patches.
  • The Google Play Termux startup fix is retained: app-data executables are resolved through argv[0], and self-spawned servers are launched through /system/bin/sh when the process runs under the bionic linker.
  • The Termux installer guard for opencode upgrade and the native-binary handling in opencode uninstall are updated for the 2.1.3 command handlers.

opencode upgrade refuses to download an incompatible upstream build; to update this fork build, run the install command above. opencode uninstall --dry-run previews removal; opencode uninstall removes this binary and the shared cache after confirmation, but retains user data.

Rollback to 2.1.2

The v2.1.2 tag and its release assets are kept unchanged. If this release causes any problem, reinstall the previous build with:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.2/install.sh | sh

That installer is pinned to the v2.1.2 asset and checksum, so it does not depend on the v2.1.3 release. Back up your OpenCode data first if you might need the older session database.

Provenance and testing

This release has been confirmed on-device and is the current stable release. The build comes from pinned OpenCode source and Android/Bionic components in GitHub Actions. Checksums and build inputs are attached to the release; the source-build guide shows how to reproduce it.

The release is published only from a successful CI candidate whose archive, binary header, Bionic dependencies, renderer guard, and transplant report were verified by the build job. This candidate is from Actions run 39926528221; the binary SHA-256 is 3005943f97eca150ed07a565bd541f034505502a9c235d225bf5cd8db47f4887. The build report confirms OpenCode 2.1.3, the .bun section graph, the Bun 1.4.0 Android base in plain-offset mode, and the Play Store self-spawn fix. The release was confirmed on-device and marked as the latest stable release on 2026-10-23. The Bun 1.4.0 pin is a compatibility exception for this Android/Bionic target; it is not equivalent to upstream Bun 1.4.4, which still fails during Bun/JSC startup here. If this release fails on your device, reinstall v2.1.2 with the rollback command above.

OpenCode 2.1.2 native Termux (unofficial)

Choose a tag to compare

@murafdev murafdev released this 21 Oct 23:17

OpenCode 2.1.2 for Termux

Run OpenCode v2 directly in Termux on Android ARM64, without PRoot or glibc. This release updates the app from 2.0.28 to 2.1.2 while keeping the single opencode command.

Install in Termux:

curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.2/install.sh | sh

If ~/.local/bin is not already on your PATH, add it once and reload your shell:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

For Zsh use ~/.zshrc; for Fish run fish_add_path ~/.local/bin. Then run opencode --version (expected: 2.1.2) and opencode.

Installing and running OpenCode needs no Android storage permission; everything stays in Termux's private home. To open projects in shared storage, run termux-setup-storage once and approve the Android prompt (on Android 11+ you may also need All files access for Termux), then use paths such as ~/storage/shared/Documents/my-project.

The installer checks both the compressed download and the extracted binary against release checksums before replacing ~/.local/bin/opencode. It keeps your chats, sign-ins, and configuration. Back up your OpenCode data first if you might need to return to v1, because v2 may migrate the session database.

What changed

  • OpenCode updated to upstream 2.1.2.
  • The bundled OpenTUI renderer is rebuilt from pinned 0.6.6 source with the Android/Bionic hardening patches retargeted to that release.
  • Bionic heap pointer tagging is disabled when the renderer library loads. Android 11+ tags 64-bit heap pointers in the top byte, and OpenTUI 0.6.6 rejects such addresses with Pointer exceeds safe integer range; allocations made after the renderer loads now reach JavaScript untagged.
  • The Termux installer guard for opencode upgrade and the native-binary handling in opencode uninstall are updated for the 2.1.2 command handlers.
  • Google Play Termux compatibility: Play Store Termux runs app-data executables through /system/bin/linker64 (the Android 10+ W^X workaround), so process.execPath is the linker and the TUI could not spawn its own server (error: expected absolute path: "serve" or Standalone server exited before reporting readiness). The TUI now resolves its real executable from argv[0] and launches the server through /system/bin/sh so Termux's exec interception still applies. GitHub/F-Droid Termux behavior is unchanged.

opencode upgrade refuses to download an incompatible upstream build; to update this fork build, run the install command above. opencode uninstall --dry-run previews removal; opencode uninstall removes this binary and the shared cache after confirmation, but retains user data.

Provenance and testing

The build comes from pinned OpenCode source and Android/Bionic components in GitHub Actions. Checksums and build inputs are attached to the release; the source-build guide shows how to reproduce it.

The release is published only from a successful CI candidate whose archive, binary header, Bionic dependencies, renderer guard, and transplant report were verified by the build job. This build replaces the earlier v2.1.2 asset, so reinstall to pick up the Google Play Termux startup fix. The published binary is from Actions run 39909948345; its SHA-256 is 9c5945dcd0fa771ae4badfb38c2268151759a09f231e31f0c990af82a780e69e. The TUI has been confirmed working on-device; wider device testing is welcome.