Recipes

Personal assistant

verified · v2026.5.29 .md edit on github ↗

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 openrouter

Already onboarded and just want to add channels? There's a flag for that:

nullclaw onboard --channels-only

The wizard writes channel credentials into ~/.nullclaw/config.json. Inspect what you have:

nullclaw channel list
nullclaw channel status

2. Start the gateway#

Channels only run inside the long-running runtime:

nullclaw gateway

This 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 status

If 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 list

cron 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.