Repository navigation
Contributing and Credits
You do not need this to use RIFT. The installer downloads a prebuilt binary.
Requirements: Bun 1.3.14 (the packageManager field in opencode/package.json pins bun@1.3.14; CONTRIBUTING.md says Bun 1.3+).
git clone https://github.com/Datum-Collective/RIFT-coding-agent.git
cd RIFT-coding-agent/opencode
bun install
bun run devbun run dev (root script bun run --cwd packages/opencode src/index.ts) starts the TUI from source. Useful variants from CONTRIBUTING.md:
bun run dev --help # show all available commands
bun run dev serve # start headless API server
bun run dev serve --port 8080
bun run dev web # start server + open web interface
bun run dev <directory> # start TUI in a specific directoryBuild a standalone executable:
./packages/opencode/script/build.ts --single
./packages/opencode/dist/opencode-<platform>/bin/opencodeReplace <platform> with your platform (for example darwin-arm64, linux-x64).
Checks:
bun run typecheck # turbo typecheck across packages (from repo root script)
bun run lint # oxlintTests cannot run from the repo root (the root test script prints do not run tests from root and exits 1). Run them from package directories such as packages/opencode:
bun run --cwd packages/opencode test
bun typecheck # from a package directory, never bare tscPR expectations from CONTRIBUTING.md: open an issue first and link it (Fixes #123); keep PRs small; include screenshots or video for UI changes; explain what you tested and how a reviewer reproduces it for logic changes; follow conventional commit titles (feat:, fix:, docs:, chore:, refactor:, test: with optional scope).
Push a tag; the release workflow (.github/workflows/release.yml) does the rest:
git tag v0.1.8
git push origin v0.1.8What the workflow does:
- Resolves the version from the tag (must be
X.Y.Z), installs Bun, and runsbun install. - Creates the GitHub release as a draft so a half-uploaded release never appears in
releases/latest. - Builds every target with
./packages/opencode/script/build.ts(OPENCODE_VERSIONset from the tag) and uploads the archives. - Checks all twelve platform archives are present (
rift-linux-x64.tar.gz,rift-linux-x64-baseline.tar.gz,rift-linux-arm64.tar.gz, three musl variants,rift-darwin-x64.zip,rift-darwin-x64-baseline.zip,rift-darwin-arm64.zip,rift-windows-x64.zip,rift-windows-x64-baseline.zip,rift-windows-arm64.zip). A partial release never goes public. - Publishes the release (draft off).
-
verify-installruns the documented one-line install against the real published release on Ubuntu, macOS and Windows, checksrift --versionandopencode --versionfrom a fresh shell, checksrift debug infonames the embedded release next to the OpenCode runtime, and checksrift.versionmatches. -
withdraw-if-brokenpulls a failed release back to a draft.
Install-script changes are checked separately by .github/workflows/installers.yml: shellcheck and parse of opencode/install, link behavior tests, and PowerShell parse plus banner tests for opencode/install.ps1.
RIFT is a fork of OpenCode by Anomaly, and the overwhelming majority of this codebase is their work. The agent loop, provider layer, tool system, LSP and MCP integration, permissions, config system and the TUI foundation are all OpenCode's. RIFT rebuilds the interface around tasks and adds the verification layer.
OpenCode is MIT licensed, and so is RIFT. If you like what is here, a great deal of the credit belongs upstream. Give them a star at anomalyco/opencode.
RIFT is not affiliated with, endorsed by, or supported by the OpenCode team. Direct issues with RIFT to Datum-Collective/RIFT-coding-agent, not to them.
Contributors to this fork (git log by author at time of writing):
- shiv: 43 commits
- dan: 3 commits
- Shivamsh: 2 commits
Note: git shortlog -sn --no-merges returned no output in this checkout, so the counts above come from git log --format=%an.