RIFT-coding-agent
Open-source AI coding agent for your terminal. Runs your tests, typecheck and lint after every change and checks its own summary against the git diff. MIT-licensed fork of OpenCode.
Install / Use
claude mcp add Datum-Collective -- npx -y github:Datum-Collective/RIFT-coding-agentIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Tags
Our assessment of RIFT-coding-agent
RIFT-coding-agent scores 84/100 on our quality scale, 603rd of 937 AI & Machine Learning skills we index.
Its MCP Server is 18 KB long, well organised into 37 sections with 14 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so RIFT-coding-agent is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
RIFT-coding-agent compared with similar skills
All 4 of these similar skills score higher than RIFT-coding-agent; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| RIFT-coding-agent (this skill)by Datum-Collective | 84 | 10 | today | MCP Server |
| claude-memby thedotmack | 100 | 102.4k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 101.1k | 2d ago | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 87.8k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 77.6k | today | CLAUDE.md |
Frequently asked questions
- How do I install RIFT-coding-agent?
- Run
claude mcp add Datum-Collective -- npx -y github:Datum-Collective/RIFT-coding-agent. The install tabs above show the steps for each supported agent. - Which AI agents does RIFT-coding-agent work with?
- It is written for Claude Code, Claude Desktop and Gemini CLI, as a MCP Server file. Other agents that read the same format can often use it too.
- Is RIFT-coding-agent safe to use?
- It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is RIFT-coding-agent still maintained?
- The repository was last updated today, so RIFT-coding-agent is actively maintained.
Skill content
View source on GitHubRIFT: an open-source AI coding agent for the terminal
RIFT is a free, MIT-licensed AI coding agent. You run rift inside a project, describe a change in
plain English, and it reads the code, plans the work, edits the files, and then does the part most
coding agents leave to you: it runs the project's own tests, typechecker and linter and shows you
the real output.
Most AI coding tools end a task by saying it worked. RIFT ends it by showing you, or by saying
plainly that it could not check. It also compares what it said it did with the actual git diff
and flags any claim the diff does not back up.
It works with Claude, GPT, Gemini, Llama, Mistral, DeepSeek and local models through one command, and runs on macOS, Linux and Windows. RIFT is a fork of OpenCode, and most of the code here is theirs (see Credits).
Use RIFT if you want:
- an AI pair programmer in the terminal that you can read, audit and change, because it is open source
- a coding agent that proves a change works before you review it
- your choice of model and provider, with no subscription tied to the tool
- a record of what the agent did, with diffs and check results, that you can share as a link
Install RIFT
<a href="https://yatko.app/Datum-Collective/RIFT-coding-agent"> <img alt="Get it on Yatko" src="https://yatko.app/badge.svg" height="54"> </a>macOS, Linux, WSL, Git Bash
curl -fsSL https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install | bash
Windows (PowerShell)
irm https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install.ps1 | iex
If a folder such as ~/.local/bin or /opt/homebrew/bin is already on your PATH, the installer
links rift there and it works straight away. If not, it adds itself to your shell config and
tells you the one command to run (source ~/.zshrc) or to open a new terminal. Then point it at a
project:
cd your-project
rift
There is nothing else to install: no Node, no Python, no build step. The installer downloads one
self-contained binary (31 to 47 MB depending on your platform) from
Releases. opencode starts it
too, so either command works.
# a specific release
curl -fsSL https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install | bash -s -- --version 0.2.0
# somewhere other than ~/.rift/bin
RIFT_INSTALL_DIR=/usr/local/bin curl -fsSL .../install | bash
# leave shell config files alone
curl -fsSL .../install | bash -s -- --no-modify-path
# irm | iex takes no arguments, so pin a version like this
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Datum-Collective/RIFT-coding-agent/main/opencode/install.ps1))) -Version 0.2.0
Update with rift upgrade, remove with rift uninstall.
macOS: a binary downloaded through a browser is quarantined by Gatekeeper, because these builds
are not notarized. Clear it with xattr -dr com.apple.quarantine ~/.rift/bin/rift. The curl
command above avoids the problem.
What RIFT does
Everything in this section is what RIFT adds on top of OpenCode.
It verifies its own work
When the agent finishes editing, RIFT runs the checks your project already has (test,
typecheck, lint, go test, cargo check, pytest) and puts the results in front of you:
VERIFICATION ─────────────────────────────────────────
✓ bun run typecheck 1.2s
✗ bun test failed
○ bun run lint permission denied
⚠ summary does not match the diff (1)
A check that could not run says so. It is never counted as a pass.
It checks its own summary against the diff
A second model reads what the agent claimed and compares it with the changes that were made:
⚠ Summary does not match the diff (1):
- Claimed: added exponential backoff
Actually: the diff only adds a fixed 200ms delay
It can open the page and look
For UI work, RIFT drives a real browser. It can navigate, click, type and take screenshots, and it reports the console errors a screenshot never shows. A page that renders perfectly while throwing on every render gets caught. A whole check (open, fill in a form, click, read the result) runs in one call.
The task is the interface, not the chat log
The screen shows the state of the work instead of an endless transcript:
TASK ─────────────────────────────────────────────────
Add retry logic to the API client
● executing · opus-5 → haiku-4.5 · 4 files +82 −11
PLAN ─────────────────────────────────────────────────
✓ 1. Add the retry helper src/retry.ts
● 2. Wire it into the client src/client.ts
○ 3. Cover it with tests test/retry.test.ts
EXECUTION ────────────────────────────────────────────
✓ Analyzing code 2.1s
✓ Editing 4 files 8.4s
● Running tests
Dozens of tool calls collapse into the few states worth reading, and the full transcript is one
keystroke away (ctrl+l). The sidebar keeps an engineering graph of what is being built, with the
checks RIFT ran under each piece:
Engineering graph
└── ● Product · build
├── ● Authentication · build
│ ├── ✓ Database · build
│ ├── ○ API · build
│ │ waiting on: Frontend
│ └── ○ Frontend · build
└── ● Tools · build
It remembers the task after compaction
Long sessions get compacted, and a model-written summary can drop the goal, a decision, or which
files were touched. RIFT does not rely on the summary alone. It keeps the engineering context of
each session in .rift/tasks/<session>/, refreshed after every turn:
.rift/tasks/<session>/
├── state.json goal, plan, decisions, touched files, git, verification
├── plan.md
├── decisions.md
├── touched-files.json
├── verification.json
└── checkpoints/ the handoff written at each compaction
When a session compacts, RIFT writes a checkpoint first and appends a handoff to the summary. The
handoff is built from what RIFT recorded (your requests, the plan, the engineering graph,
git status, the last check results), not written by a model, so the agent resumes with the same
goal, plan and decisions it had before. The folder is git-ignored. Set "task_state": false to
turn it off.
Vibe Mode
A strong model plans and reviews each step while a cheaper one does the work, so you get good decisions without paying frontier prices for every edit. A step that cannot be finished within a fixed number of turns counts as failed and goes back to the planner instead of looping.
MCP, the way other clients do it
RIFT reads your existing .mcp.json, plus ~/.rift/mcp.json and the mcp key in rift.json, in
the usual mcpServers shape with ${VAR} and ${VAR:-default}. A server from a project's
.mcp.json waits for your approval before it runs (once, always or deny), remembered per project.
Servers start on first use, and with many tools RIFT sends only their names plus one search tool,
which keeps requests small. Manage them with rift mcp add, add-json, get, list and
remove, or from the /mcp panel.
Make videos with Remotion
Type /remotion and a sentence, in any project:
/remotion 30-second vertical launch video for this project, for developers
RIFT builds videos with Remotion, using Remotion's official Agent Skills. It writes a storyboard first, builds the composition, checks a still from every scene before rendering, and confirms the MP4's resolution, length and frame rate before calling it done.
rift remotion setupinstalls the skills in the project, or for your user with-g. RIFT also loads skills from Claude Code plugins you have installed.rift remotion new <name>creates a Remotion project andrift remotion studioopens Remotion Studio for hand-tuning.
Rendering needs Node 20 or newer. No paid services are involved.
Share a session
Type /share and a link is on your clipboard in about two seconds. It opens the session in the
RIFT viewer: your prompts, RIFT's steps, the diffs and the checks RIFT ran, with a pass or fail
count up front.

- It is yours. The session is saved as a secret Gist on your own GitHub account, through
gh auth loginorGITHUB_TOKEN./unsharedeletes it. - Only the link opens it. The Gist id sits after the
#in the link, which browsers never send to a server, and secret Gists are unlisted. The viewer is kept out of search engines. - Secrets stay on your machine. Before upload RIFT removes the API keys, tokens, private keys, passwords, home folder path and screenshots it recognises. Read what you share all the same.
- It works both ways.
rift import <link>brings a shared session into your own RIFT, andrift pr 42opens a pull request with the session linked in its description.
Mission Control
Every session on one board, ordered so whatever needs you is on top. Open it with <leader>o.
How RIFT compares
RIFT and OpenCode. RIFT is built on OpenCode, so the agent loop, providers, tools, LSP and MCP
support, permissions and config come from them. If you like OpenCode, RIFT will feel familiar and
your opencode.json, auth and sessions keep working. RIFT changes the interface (task view,
sidebar, Mission Control) and adds verification, the summary-versus-diff check, browser checks,
session memory across compaction, sharing and Remotion video. The releases are terminal-only: the
web UI and desktop app were dropped from the binary in v0.2.0.
RIFT and Claude Code, Cursor or GitHub Copilot. Those are closed-source products tied to their own accounts. RIFT is MIT-licensed and works with whichever model provider you choose, including free models and local ones, so you can read exactly what it runs on your machine. Its focus is the step after generation: proving the change works by running your project's checks.
Usage
rift # start in the current directory
rift /path/to/project # start somewhere else
rift run "fix the failing tes
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
102.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
101.1kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
87.8kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
77.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
