Rho

An always-on personal AI operator that persists across sessions, remembers context, and checks in proactively — controlled via terminal, web UI, Telegram, and email.

Source repo
mikeyobrien/rho
Stars
★ 371
Last updated
3d ago
License
MIT
Primary language
TypeScript

At a glance

How it runs
CLIWeb appSelf-hosted service
Works with
Universal · cross-platform
Cost
Free software; you pay for model usage
Setup effort
Medium · a few setup steps
You'll need
Node.js 18+tmuxgitShell / CLINetwork accessLocal filesystem
Typical use
An individual who wants reminders and tasks to survive between sessions, kept alive by scheduled heartbeats
Not a fit if
  • Users wanting a turnkey hosted cloud service
  • Users on Windows with no native support
  • Users who don't want to manage their own model provider keys

What does this agent do, and when should you use it?

Rho (GitHub: mikeyobrien/rho, MIT licensed) is a background-resident personal AI operator built to fix the statelessness of ordinary chat tools, where context dies when the tab closes. Its core modules are a Heartbeat daemon that performs autonomous check-ins every 30 minutes by default, a Brain (append-only brain.l structured memory), and a Vault (markdown knowledge graph under ~/.rho/vault/), all built on top of the pi coding agent. You interact with it through a CLI, a built-in web UI at localhost:3141 (chat with streaming, session forking, memory editing, task management, and /review line-level code review), a Telegram adapter with allowlisting, and an agent email inbox at [email protected]. Memory and configuration stay on your machine under ~/.rho/, and model providers are supplied by you via rho login. It runs natively on macOS, Linux, and Android (Termux); iPhone/iPad connect via SSH to a remote instance, and the native Android wrapper offers explicit Idle and Live background modes.

After install, rho init creates config in ~/.rho/, rho sync syncs that config to pi, rho login authenticates your providers through pi, and rho start launches the background heartbeat daemon. The Heartbeat fires autonomous check-ins on a configurable interval (default 30m, adjustable via /rho interval 30m); the Brain appends behaviors, preferences, and learnings to brain.l, which you can inspect, search, and edit with /brain; /vault inbox surfaces captured knowledge items. The web UI is served by Hono routes with no-build browser JS and streams chat over live RPC/WebSocket. The Telegram adapter polls messages behind an allowlist plus moderation flow; the email agent polls, reads, and replies through [email protected]. rho doctor runs health checks, rho trigger forces an immediate heartbeat, and rho logs shows recent heartbeat output.

  1. An individual who wants reminders and tasks to survive between sessions, kept alive by scheduled heartbeats
  2. A developer wanting a coding copilot that remembers preferences and past decisions, with /brain to inspect and edit what was learned
  3. A mobile user who wants to issue prompts to their agent from Telegram at any time
  4. Anyone wanting an agent-run email inbox ([email protected]) that polls, reads, and replies
  5. An Android power user using Live Mode to keep long streaming responses alive while the phone is locked
  6. A self-hoster deploying rho on a VPS as a browser control panel for chat, memory, tasks, and config

How do you install or deploy this agent?

Prerequisites: Node.js 18+, tmux, git. Recommended 2-minute quick start:

bash

npm install -g @rhobot-dev/rho
rho init && rho sync
rho login && rho start

rho

Or via a pi package install:

bash

pi install npm:@rhobot-dev/rho
rho init && rho sync
rho login && rho start

macOS/Linux installer script:

bash

git clone https://github.com/mikeyobrien/rho.git ~/.rho/project
cd ~/.rho/project && ./install.sh

Android: install Termux and Termux:API from F-Droid first, then:

bash

curl -fsSL https://rhobot.dev/install | bash

iPhone/iPad: no local install — run rho on a server/VPS and connect with Termius or any SSH client (see docs/iphone-setup.md).

How do you use this agent?

Start and attach an interactive session, then use:

bash

rho status     # daemon + module health
rho trigger    # force a heartbeat now
rho doctor     # health + config checks
rho logs       # recent heartbeat output
rho config     # show effective config
rho web --open # start web UI and open browser

In-session slash commands:

text

/rho status        # heartbeat state
/rho now           # immediate check-in
/rho interval 30m  # set check-in interval
/brain             # open memory viewer
/vault inbox       # captured vault items
/skill run pdd     # planning workflow

The web UI defaults to http://localhost:3141 with chat, session forking, memory editing, task management, and /review line-level code review.

What are this agent's strengths and limitations?

Pros
  • Observable persistent memory: /brain lets you inspect, search, and edit what the agent has learned instead of treating it as a black box
  • Proactive heartbeat: autonomous check-ins every 30m by default, unlike passive stateless chat tabs
  • Multi-surface control: terminal, web UI, Telegram, and email all operate the same agent
  • Local-first with BYO provider: memory and config stay on your machine, no hosted memory backend
  • Lightweight web stack: no frontend bundler, Hono routes with WebSocket streaming updates
Limitations
  • You must configure and pay for your own model provider (via pi's rho login); no hosted model included
  • Windows has no native support; iPhone/iPad only work via SSH to a remote instance
  • On Android, if the optional node-pty native module can't build, the embedded web terminal drawer is disabled
  • Live Mode increases battery/network usage with a persistent foreground notification; Idle mode can drop background streams
  • Requires a terminal toolchain (tmux etc.), so setup is more involved than a one-command app

How does this agent compare with similar options?

The README positions rho against OpenClaw and nanobot: rho emphasizes a built-in operator workspace with stronger memory observability and a lightweight no-build stack (chat, learned-memory inspection/editing, tasks, config, review); OpenClaw focuses on a Gateway Control UI plus WebChat control plane; nanobot's README primarily emphasizes CLI and channel gateway flows.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Rho This agent Insufficient evidence CLIFree + model costs ★ 371 3d ago TypeScript —
Iva Personal Assistant 85 · Good Chat botFree + model costs ★ 228 1d ago TypeScript ChatGPT · Codex
LISA Autonomous Personal Assistant 59 · Major gaps CLIFree + model costs ★ 175 1d ago TypeScript Codex · Claude Code · OpenAI API · Claude API
GAIA — Personal AI Assistant 73 · Some gaps Hosted serviceFreemium ★ 305 5d ago Python —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Insufficient evidence
Risks and how to mitigate them
  • Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
  • Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
  • Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
  • Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
  • Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
  • Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
  • Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
  • Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
  • No source files were attached to this review, so the results do not reflect the actual repository; rerun the FARS-2.1 assessment once README, code, LICENSE, and supporting files are supplied.
Evidence confidence: Low Reviewed Oct 04, 2026 Reviewed revision 073a3ee8a5dc
See the full review method →

FAQ

Does my data go to a third-party server?
Memory (~/.rho/brain/brain.l) and config (~/.rho/init.toml) are local, and the README states no hosted memory backend is required; interactions with your model provider depend on whichever provider you configure.
What does it cost to run?
The software is free (MIT), but you connect your own model provider via rho login and pay that provider per use.
Can I use it on my phone?
Android (Termux) is fully supported; iPhone/iPad don't run it locally — run rho on a server and connect via Termius or any SSH client.
Can I change the check-in interval?
Yes — it defaults to 30 minutes; use /rho interval 30m in-session, and /rho enable/disable to toggle the heartbeat.
Are the Telegram and email channels safe?
Telegram has allowlists and mention gating; email has sender controls and outbound policy limits — both documented built-in controls.
View on GitHub ↗ Install ↓

Related agents