feat: Bun single-file executable distribution (#819)

* feat: add Bun single-file executable distribution

- Add 7 platform packages for standalone CLI binaries
- Add bin/platform.js for shared platform detection
- Add bin/oh-my-opencode.js ESM wrapper
- Add postinstall.mjs for binary verification
- Add script/build-binaries.ts for cross-compilation
- Update publish workflow for multi-package publishing
- Add CI guard against @ast-grep/napi in CLI
- Add unit tests for platform detection (12 tests)
- Update README to remove Bun runtime requirement

Platforms supported:
- macOS ARM64 & x64
- Linux x64 & ARM64 (glibc)
- Linux x64 & ARM64 (musl/Alpine)
- Windows x64

Closes #816

* chore: remove unnecessary @ast-grep/napi CI check

* chore: gitignore compiled platform binaries

* fix: use require() instead of top-level await import() for Bun compile compatibility

* refactor: use static ESM import for package.json instead of require()
This commit is contained in:
Kenny
2026-01-15 10:33:07 -05:00
committed by GitHub
parent 72a3975799
commit c67ca8275e
26 changed files with 695 additions and 30 deletions
+5 -8
View File
@@ -258,20 +258,17 @@ If you don't want all this, as mentioned, you can just pick and choose specific
### For Humans
> **⚠️ Prerequisite: Bun is required**
>
> This tool **requires [Bun](https://bun.sh/) to be installed** on your system.
> Even if you use `npx` to run the installer, the underlying runtime depends on Bun.
Run the interactive installer:
```bash
bunx oh-my-opencode install
# or use npx if bunx doesn't work
npx oh-my-opencode install
# or with bun
bunx oh-my-opencode install
```
> **Note for Ubuntu/Debian users**: If you installed Bun via Snap (`/snap/bin/bun`), `bunx` will fail with "script not found" due to Snap's sandboxing. Either use `npx` instead, or reinstall Bun via the official installer: `curl -fsSL https://bun.sh/install | bash`
> **Note**: The CLI ships with standalone binaries for all major platforms. No runtime (Bun/Node.js) is required for CLI execution after installation.
>
> **Supported platforms**: macOS (ARM64, x64), Linux (x64, ARM64, Alpine/musl), Windows (x64)
Follow the prompts to configure your Claude, ChatGPT, and Gemini subscriptions. After installation, authenticate your providers as instructed.