Personal Operating Layer

A personal agent harness in WhatsApp, keeping context, routing work, and coordinating specialized agents across my day.

Ravi is the operating layer behind a personal agent system that lives where the day already happens. It keeps durable context per conversation, routes work into the right session or specialist agent, and coordinates follow-through across tasks, messages, and background runs.

omni handles transport and channels. Ravi keeps memory, routing, permissions, task execution, and cross-agent coordination coherent. The CLI and the WhatsApp overlay can sit on top as operator surfaces, but the harness itself lives here.

Mental Model

omni
Transport and channel APIs.
JetStream
The event backbone for routing and automation.
Ravi
The harness that keeps context, routing, tasks, permissions, and coordination stable.
CLI / Overlay
Operator surfaces on top of the same runtime.

What Ravi Handles

Context, work routing, and follow-through.

Sessions and routing

Durable session context for DMs, groups, threads, and workflow lanes, with routing that decides where each message should land.

Specialized agents

Multiple agents with separate prompts, models, scopes, permissions, and working directories.

Task runtime

`TASK.md`-first tasks, assignments, comments, parent-child lineage, callbacks, and tracked execution lanes.

Automation

Cron, triggers, heartbeat, outbound flows, and event-driven coordination on the same backbone.

Architecture

$ ravi daemon start
nats-server :4222
JetStream backbone for routing, tasks, triggers, and runtime events.
omni API :8882
Channel transport for WhatsApp, Telegram, and Discord.
ravi runtime
session routing
agent runtimes
task runtime
permissions + policies
runners + automation
CLI + overlay surfaces

Primary Surface

WhatsApp first

WhatsApp is the main operator surface today. Telegram and Discord can use the same backbone when omni is configured, but Ravi is shaped around durable personal operations in WhatsApp.

CLI for control and inspection
WhatsApp overlay for live operational context
Other operator surfaces can sit on top of the same runtime

Quick Start

Bring the harness up locally.

1. Install

git clone https://github.com/filipexyz/ravi.git
cd ravi
bun install
bun run build
bun link

2. Configure

ravi setup

# then configure ~/.ravi/.env
OMNI_DIR=/path/to/omni-v2
DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/omni

3. Start

ravi daemon start
ravi whatsapp connect

Positioning

Ravi is the harness. Not the gimmick.

The system is centered on durable context, routing, task execution, and agent coordination inside the conversations where work is already happening. The interface can evolve. The operating layer stays here.