The project uses Python + uv with hatchling as the build backend.
cd /path/to/raven
uv syncThis creates/updates .venv with all core dependencies from uv.lock.
For optional extras:
uv sync --extra channels # messaging integrations (Telegram, Slack, etc.)
uv sync --extra sandbox # boxlite sandbox execution
uv sync --extra tools # web/readability tools
# or all at once:
uv sync --all-extrasuv pip install -e .This wires up the raven CLI script to your source code so changes take effect immediately.
# via uv run (uses .venv automatically, no activation needed):
uv run raven --help
# or activate the venv first:
source .venv/bin/activate
raven --helpuv run raven onboardCreates ~/.raven/config.json and the workspace directory. Edit the config to add your API key (default provider: OpenRouter — get a key at https://openrouter.ai/keys).
| Command | Description |
|---|---|
raven agent |
Start interactive chat session |
raven agent -m "Hello" |
Send a single message and exit |
raven gateway |
Start full server (all channels + heartbeat + cron) |
raven status |
Show config path, workspace, and API key status |
raven channels status |
Show which messaging channels are enabled |
raven provider login <name> |
Authenticate with an OAuth provider (e.g. openai-codex) |
uv run pytest tests/Requires Python ≥ 3.11. Test configuration is in pyproject.toml (asyncio_mode = "auto").