Recipes
Personal assistant
The starter recipe: a single NullClaw instance that answers you on the chat apps you already use, remembers context locally, and runs as a background service. One binary, one config file, no other components.
Ingredients#
- NullClaw (installed directly or via NullHub)
- An API key for one of 50+ providers (OpenRouter is the quick default)
- A chat channel — NullClaw supports 19, including Telegram, Discord, Signal, Slack, WhatsApp, Matrix, IRC and Email
1. Onboard#
nullclaw onboard --api-key sk-... --provider openrouterAlready onboarded and just want to add channels? There's a flag for that:
nullclaw onboard --channels-onlyThe wizard writes channel credentials into ~/.nullclaw/config.json. Inspect what you have:
nullclaw channel list
nullclaw channel status2. Start the gateway#
Channels only run inside the long-running runtime:
nullclaw gatewayThis starts the HTTP gateway on 127.0.0.1:3000, connects your channels, and runs the heartbeat and cron scheduler. Message your bot from Telegram (or wherever) and it answers.
3. Make it permanent#
Register it as an OS service (systemd or OpenRC) so it starts at boot:
nullclaw service install
nullclaw service statusIf NullHub manages your instance, skip this — the hub already supervises it and restarts it on crashes.
4. Season to taste#
Memory. The default engine is hybrid search — SQLite FTS5 plus vector similarity — and it works out of the box. Look inside it:
nullclaw memory stats
nullclaw memory search "that restaurant in Lisbon"nullclaw memory forget and nullclaw memory export-jsonl are there when you need them.
Schedules. Recurring jobs — a morning summary, a nightly cleanup — run through built-in cron:
nullclaw cron listcron add, once, pause, resume and run manage entries; the scheduler runs inside the gateway.
Skills. Packaged capabilities install from a registry:
nullclaw skills list
nullclaw skills install <name>Why this is enough#
For a single-user assistant you need no orchestrator, no task tracker, no separate memory service. Resource cost is small — around 1 MB of RAM, as measured by the project — so it runs happily on a Raspberry-class board next to the router.
When one agent stops being enough, the upgrades are incremental: shared memory across agents is Shared knowledge, and unattended work is Durable backlog.