praes-connect
v0.4.4
Published
One-command observability for OpenClaw agents — track activity, costs, tools, soul & memory
Maintainers
Readme
praes-connect
One-command observability for OpenClaw agents. Zero code changes needed.
Install
npx praes-connect --key <your-key>Or install globally:
npm i -g praes-connect
praes-connect --key <your-key>What it does
praes-connect hooks into your OpenClaw agent and automatically forwards everything to the Praes dashboard:
- Activity — every conversation across all channels
- Costs — tokens, model usage, and spend per run
- Tools — every tool call your agent makes
- Soul — syncs
SOUL.mdfrom your workspace - Memory — syncs
MEMORY.mdfrom your workspace
Getting your key
- Open the Praes dashboard
- Go to your agent's Console tab
- Click Connect and copy the key
Options
| Flag | Description | Default |
|------|-------------|---------|
| --key <key> | Your Praes agent key (required) | — |
| --url <url> | Praes server URL | https://praes.app |
| --channel <name> | Force a specific channel for all runs | auto-detected |
You can also set PRAES_URL as an environment variable instead of passing --url.
Connecting agents & agent naming
praes-connect auto-selects the OpenClaw agent directory for your Praes agent key. It matches using the Praes slug and name against OpenClaw agent IDs and directory aliases.
Matching order:
- Exact/normalized match against OpenClaw
agents.listmetadata (id,name,slug,agentDir) in~/.openclaw/openclaw.json - Exact/normalized match against directory names under
~/.openclaw/agents/ - Fallback to
main(then first available directory)
~/.openclaw/agents/
my-agent/ ← OpenClaw agent directory name
sessions/
...Example: if your OpenClaw agent ID/folder is clawdius and your Praes slug is clawdius, the connector auto-binds to ~/.openclaw/agents/clawdius/sessions/ even when multiple agents exist.
Running multiple agents
Each agent in Praes gets its own key. Run a separate praes-connect process per agent:
# Terminal 1 — telegram bot
npx praes-connect --key pk_bot1_xxx
# Terminal 2 — rabbit r1 agent
npx praes-connect --key pk_r1_xxx --channel "rabbit r1"For best auto-matching, keep each Praes agent slug aligned with the OpenClaw agentId (directory name).
Forcing a channel
If your agent's sessions don't carry platform metadata (common with Rabbit R1, iMessage, and local setups), use --channel to pin it:
npx praes-connect --key pk_xxx --channel "rabbit r1"
npx praes-connect --key pk_xxx --channel telegram
npx praes-connect --key pk_xxx --channel imessageSupported channel values: telegram, whatsapp, discord, slack, signal, webchat, imessage, rabbit r1, local, api, schedule.
Auto-detection order
When --channel is not set, the channel is resolved in this order:
- Explicit
channel/platform/sourcefield on the JSONL entry - Nested
metadataorcontextfields on the entry or message sessions.jsonhints (channel,origin,Provider) keyed bysessionId- OpenClaw canonical session-key patterns (
agent:<agentId>:<channel>:...,cron:...,hook:...,node-...) - Session ID prefix (e.g.
tg_,discord_,r1_,wa_) - Content markers in the message (e.g.
[voice],[scheduled],rabbit r1, Telegram topic markers) - Entry
typefield (schedule,webhook,cron, etc.) gatewayfield in~/.openclaw/openclaw.json- Falls back to
api
How it works
- Verifies your key against the Praes API
- Locates your OpenClaw workspace (
~/.openclaw/workspace) - Syncs
SOUL.mdandMEMORY.mdto the dashboard - Watches
~/.openclaw/agents/<name>/sessions/for new activity - Forwards conversations, tool calls, and cost data in real time
- Sends heartbeats so the dashboard knows your agent is online
Requirements
- Node.js 18+
- An OpenClaw agent running locally
- A Praes account with an agent key
License
MIT
