Repository navigation
Releases: murafdev/opencode-termux
Release list
OpenCode 2.2.5 native Termux (Bun 1.4.4)
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 | shThe 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.5from pinned upstream commit9bbb8ce18c80f099e0e448775f59d965ead40a21; its pinned Bun source toolchain is1.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 upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews removal; uninstall keeps user data. - Security hardening: project-controlled markdown frontmatter and
instructionsglobs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading still isolates normalization failures so one malformedcommand,agent,mcp, orproviderentry 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 transitivezod@3.25.76copy held bygitlab-ai-providerremains under an expiring suppression. Six moderateglob/minimatchfindings remain below the critical/high gate and are tracked insecurity/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/pluginnow needs@opentui/coreand@opentui/solid0.8.0 or later. ScrollBoxwrapper,viewport,content, and scrollbar facades, plus theclockandonAnimationTickRenderContextmethods, 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/connectto use that login and its models. - Managed policy split.
integration.usenow covers integration accounts only;mcp.use,skill.use, andplugin.usecontrol MCP servers, skills, and plugins. Rules with the oldmcp:,skill:, andplugin:resource prefixes are converted automatically. - Worktree and shell shortcuts.
Ctrl+Alt+OandCtrl+Alt+Bchoose a worktree and its base branch;Ctrl+Shift+Xtoggles 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 \
SHA256SUMSThe 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 | shThe 2.2.0 release also remains available:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.2.0-bun144.1/install.sh | shThe 2.1.4 release also remains available:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | shBoth 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 | shTo return to the original Bun 1.4.0 build:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | shThe 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)
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 withcurl -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 | shThe 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.2from pinned upstream commit098aa7fd6e02b03d6fc410f0b052038c7d4c5e81; its pinned Bun source toolchain is1.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 upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews removal; uninstall keeps user data. - Security hardening: project-controlled markdown frontmatter and
instructionsglobs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading still isolates normalization failures so one malformedcommand,agent,mcp, orproviderentry 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 transitivezod@3.25.76copy held bygitlab-ai-providerremains 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 clearto control it.- Opt-in scheduled prompts are available through
/schedule, agent tools, andexperimental.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 withexperimental.image_generate.model. - The
@opencode/aipackage 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 \
SHA256SUMSThe 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 | shThe 2.1.4 release also remains available:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.4-bun144.2/install.sh | shBoth 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 | shTo return to the original Bun 1.4.0 build:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | shThe 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)
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 withcurl -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 withcurl -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 | shThe 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.0from pinned upstream commit1097e2668b1e08ad63bdf0b1c4860b9bc01e420c; its pinned Bun source toolchain is1.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 upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews removal; uninstall keeps user data. - Security hardening: project-controlled markdown frontmatter and
instructionsglobs still have bounded parsing work (CVE-2026-84375, CVE-2026-102276 / 102277 / 102278), and config loading now isolates normalization failures. A legacycommand,agent,mcp, orproviderentry 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/aipackage 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 \
SHA256SUMSThe 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 | shBoth 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 | shTo return to the original Bun 1.4.0 build:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | shThe 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)
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 withcurl -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 withcurl -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 withcurl -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 | shThe 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.4from pinned upstream commit68bc26b7da1990ce10ffecfbc1e09eb13aa5d824; its pinned Bun source toolchain is1.4.4. - Bionic OpenTUI renderer updated to
0.6.8with 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_LOADsegment 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 upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews removal; uninstall keeps user data. - Security hardening: project-controlled markdown frontmatter and
instructionsglobs 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 \
SHA256SUMSThe 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 | shTo return to the original Bun 1.4.0 build:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | shThe 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)
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 | shThe 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.4from pinned upstream commit68bc26b7da1990ce10ffecfbc1e09eb13aa5d824; its pinned Bun source toolchain is1.4.4. - Bionic OpenTUI renderer updated to
0.6.8with 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_LOADsegment 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 upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews 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 | shTo return to the original Bun 1.4.0 build:
curl -fsSL https://github.com/murafdev/opencode-termux/raw/v2.1.3/install.sh | shThe 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)
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 withcurl -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 withcurl -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 withcurl -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 withcurl -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 withcurl -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 | shThe 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_LOADsegment 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.6remains pinned with the Android/Bionic hardening patches, including heap-pointer-tagging handling and the Google Play Termux self-spawn fix. - The native
opencode upgradeguard points at this release's installer.opencode uninstall --dry-runpreviews 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 | shThe 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)
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 withcurl -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 withcurl -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 withcurl -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 withcurl -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 withcurl -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 withcurl -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 | shIf ~/.local/bin is not already on your PATH, add it once and reload your shell:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcFor 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.0host, Linux target, and Android/Bionic base. The upstream source pinsbun@1.4.4, so the build rewritespackageManagertobun@1.4.0and 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.6with 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/shwhen the process runs under the bionic linker. - The Termux installer guard for
opencode upgradeand the native-binary handling inopencode uninstallare 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 | shThat 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)
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 | shIf ~/.local/bin is not already on your PATH, add it once and reload your shell:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcFor 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.6source 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.6rejects such addresses withPointer exceeds safe integer range; allocations made after the renderer loads now reach JavaScript untagged. - The Termux installer guard for
opencode upgradeand the native-binary handling inopencode uninstallare 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), soprocess.execPathis the linker and the TUI could not spawn its own server (error: expected absolute path: "serve"orStandalone server exited before reporting readiness). The TUI now resolves its real executable fromargv[0]and launches the server through/system/bin/shso 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.