This is the laptop install: the hub, the agent runtime, and the desktop app on one machine. When it finishes, your tools are recording and your node is answering at https://localhost:5174.
The runtime and database, bundled. PGlite runs the memory engine inside the install — no separate Postgres to set up.
HTTPS out of the box. The installer creates a local certificate authority and serves your node on port 5174.
Your tools, connected. Supported tools found on your machine get memory capture and recall wired in automatically.
The desktop app on Linux. It installs, launches, and finds your node on localhost by itself. On macOS the browser is the app for now — the desktop app is on the way.
A clear finish line. The installer ends by printing your node’s address and what to do next.
Requirements
Linux or macOS · Node.js 22+ (the installer can install it for you) · about 1 GB of RAM for the memory engine · 200 MB of disk to start.
This is the stable laptop installer: pinned to exact release checksums, and short enough to read before you run it. How releases work →
It prints its progress and the tools it connected as it goes. When it’s done, open your node at https://localhost:5174 — or open the desktop app, which finds it automatically.
For each of these it finds on your machine, the installer adds two things: capture, which records sessions to your hub, and recall, which lets the tool search that history before it answers. How each one records depends on the tool:
Supported tools, with capture and recall wired in at install time
Agent tool
Capture
Recall
How it records
Claude Code
✓ Yes
✓ Yes
Hooks in the session itself — prompts, tool calls, and completions. The reference integration.
Grok Build
✓ Yes
✓ Yes
Grok’s hooks signal each session event; the recorder parses the session log.
Codex
✓ Yes
✓ Yes
A small watcher follows Codex’s session files and records new turns as they land.
Kimi Code
✓ Yes
✓ Yes
Hooks plus a content-hash backfill, so nothing gets recorded twice.
Hermes
✓ Yes
✓ Yes
An in-harness Python provider streams turns to your hub in the background.
Recording and recall work across every tool in the table. Deeper controls in the apps — interrupts, approvals, model pickers — vary by tool today; Claude Code is the reference, and parity across the set is active work. The integration bundles live in integrations/ in the RivetOS repo.
Your phone
Check in from your phone.
Pairing starts in Settings → Devices on the desktop or web app, which shows a QR code the Android app scans.
On the desktop or web app, open Settings → Devices and mint an enrollment. A QR code is shown.
In the Android app, open Settings → Node & Mesh → Scan from desktop and scan that QR. Away from home, turn on Tailscale first.
Not yet
iPhone
No iPhone app yet: the QR from Settings → Devices pairs with the RivetHub Android app.
How memory works
Recorded for you. Searchable by your tools.
Capture saves as you work
Every prompt, tool call, and result from a connected tool is written to your hub as it happens. The record stays on your machine.
Recall brings it back
Inside a session, a connected tool can search the hub for earlier work and answer with it — a new session no longer means a blank slate. Full-text and fuzzy search work immediately. For semantic search, re-run with --memory full and any OpenAI-compatible embedding endpoint; that endpoint processes what you embed, so choose where it runs.
Add another machine
Grow into a mesh when you’re ready.
Your laptop install is a complete hub on its own. Before another machine can enroll into it, the laptop needs the hub helper — local mode doesn’t install it by default, so run through the datahub guide on the laptop first. Then, on the new machine:
Replace user with your SSH login on the laptop and 192.0.2.10 with its address. The node guide covers requirements and day-two commands.
Everyday commands
Day-to-day commands.
Check the local node
terminal
$ rivetos local status
Back up your local setup
Stop the node first — the backup can’t dump a running database.
terminal
$ rivetos local backup
Reset local mode
Back up before resetting your local setup.
terminal
$ rivetos local reset
Uninstall
Back up first, then check the installed CLI’s local help for its uninstall instructions. Remove the desktop app through your operating system.
terminal
$ rivetos local --help
Troubleshooting
If something sticks.
Node not running
Memory capture pauses while the local node is stopped. Run rivetos local status to check it, and bring the node back up before continuing.
Port 5174 is busy
Check which application is using port 5174. Stop that application if it is safe to do so, then retry local setup.
A tool you added later isn’t capturing
Connections are wired at install time. If you installed an agent tool after setting up RivetHub, run the local installer again so it can connect the new tool.