| name | install-rho |
| description | Install and configure Rho from scratch (Doom-style init.toml + sync). Only prereq: a coding agent that can run shell commands. |
Install Rho
Rho is a persistent AI agent framework. It runs in tmux, checks in on a heartbeat, accumulates memory in a single brain.jsonl file, and manages a knowledge vault. This skill installs it from scratch.
Prerequisites: A coding agent that can run shell commands. That's it.
What gets installed:
- System deps (Node.js 18+, npm, tmux, git)
- pi coding agent (the runtime rho extends)
- rho (the agent framework)
- Config files in
~/.rho/ (init.toml, packages.toml, brain.jsonl)
Time: ~5 minutes on a decent connection.
Parameters
- agent_name (optional, default:
rho): Name written into ~/.rho/init.toml.
- heartbeat_interval (optional, default:
30m): How often the agent checks in. Written to [settings.heartbeat].interval.
Steps
1. Detect environment
Print OS, shell, and dependency versions. This determines the install path.
Constraints:
- You MUST print OS + shell + node version (if present).
- You MUST NOT assume Termux unless
$TERMUX_VERSION is set.
uname -a
printf "SHELL=%s\n" "$SHELL"
command -v node >/dev/null && node -v || echo "node: missing"
command -v npm >/dev/null && npm -v || echo "npm: missing"
command -v tmux >/dev/null && tmux -V || echo "tmux: missing"
command -v git >/dev/null && git --version || echo "git: missing"
command -v pi >/dev/null && pi --version || echo "pi: missing"
command -v rho >/dev/null && rho --version || echo "rho: missing"
2. Install system dependencies
Constraints:
- You MUST ensure: Node.js >= 18, npm, tmux, git.
- You MUST detect the platform and use the correct package manager.
- You MUST NOT blindly run
sudo apt install — detect the package manager first.
Android / Termux
pkg update -y
pkg install -y nodejs-lts tmux git
macOS
brew install node tmux git
Linux
Detect the package manager:
| Distro | Command |
|---|
| NixOS | Add to environment.systemPackages or nix-shell -p nodejs tmux git |
| Debian/Ubuntu | sudo apt update && sudo apt install -y nodejs npm tmux git |
| Arch | sudo pacman -S nodejs npm tmux git |
| Fedora | sudo dnf install nodejs npm tmux git |
If Node.js version is < 18, use NodeSource or nvm.
3. Install pi coding agent
pi is the runtime that rho extends. Install it globally.
Constraints:
- You MUST install pi globally if
command -v pi fails.
- You MUST verify the install succeeded.
command -v pi >/dev/null || npm install -g @mariozechner/pi-coding-agent
pi --version
4. Install rho
Clone the repo and run the installer. The installer handles config bootstrapping, CLI setup, and brain initialization.
Constraints:
- You MUST clone to
~/.rho/project (the default path).
- You MUST NOT clone if the repo already exists (pull instead).
- You MUST run
install.sh from within the repo directory.
if [ -d ~/.rho/project/.git ]; then
echo "Rho repo exists, pulling latest..."
cd ~/.rho/project && git pull --ff-only
else
git clone https://github.com/mikeyobrien/rho.git ~/.rho/project
fi
cd ~/.rho/project && bash install.sh
The installer will:
- Detect your platform
- Check/install remaining dependencies
- Install Node deps for the project
- Set up the
rho CLI on your PATH
- Run
rho init (generates ~/.rho/init.toml, ~/.rho/packages.toml, and brain.jsonl defaults)
- Run
rho sync (writes pi's settings.json from your config)
5. Configure heartbeat interval (optional)
If the user requested a non-default interval, edit ~/.rho/init.toml:
sed -i 's/interval = "30m"/interval = "'"${HEARTBEAT_INTERVAL}"'"/' ~/.rho/init.toml
rho sync
6. Verify installation
Constraints:
- You MUST run
rho doctor and report any failures.
- You MUST NOT declare success if doctor reports errors.
rho doctor
7. Authenticate
Constraints:
- You MUST tell the user to run
rho login to set up their LLM provider.
- You MUST NOT run
rho login automatically (it's interactive).
Tell the user:
Run rho login to authenticate with your LLM provider (Anthropic, OpenAI, etc). This is interactive — you'll need to provide API keys or log in via browser.
8. Start rho (optional)
Constraints:
- You MUST ask before starting background processes.
rho
This starts the daemon if needed and attaches to the tmux session.
9. Post-install orientation
Share these essentials with the user:
Key files:
~/.rho/init.toml — Main config (Doom-style: modules, settings)
~/.rho/packages.toml — Third-party pi packages
~/.rho/brain/brain.jsonl — Single source of truth for all memory (behaviors, learnings, preferences, tasks, reminders)
Memory system:
/brain or brain action=list — View memory stats
brain action=add type=learning text="..." — Add a learning
brain action=add type=preference text="..." category=Code — Add a preference
brain action=add type=task description="..." priority=high — Add a task
brain action=add type=reminder text="..." cadence={kind:"daily",at:"08:00"} — Add a reminder
memory-consolidate — Run consolidation (decay stale entries, mine sessions since last consolidation)
CLI basics:
rho — Start and attach
rho status — Show daemon and module status
rho doctor — Health check
rho trigger — Force immediate heartbeat
rho stop — Stop daemon
rho upgrade — Update rho and sync new modules
Inside a session:
/rho status — Heartbeat state
/rho now — Trigger check-in
/rho interval 30m — Set check-in interval
tmux essentials (if unfamiliar):
- Detach:
Ctrl-b d
- List sessions:
tmux -L rho ls
- Attach:
tmux -L rho attach -t rho
Troubleshooting
| Problem | Fix |
|---|
rho sync says pi missing | npm install -g @mariozechner/pi-coding-agent |
rho doctor shows settings out of sync | rho sync |
rho not found after install | Add ~/.local/bin to PATH |
| tmux missing | Install with your platform's package manager |
| Node.js < 18 | Upgrade via nvm or NodeSource |
install.sh fails on NixOS | Dependencies must be in your nix config, not installed via apt |