Core tools for clawdbot. Batteries included. Always fresh.
Nix packaging for Peter Steinberger's tools, with per-tool clawdbot plugins. Part of the nix-clawdbot ecosystem.
Darwin/aarch64 plus Linux (x86_64/aarch64) for tools that ship Linux builds.
On Linux, summarize is built from source (Node 22 + pnpm) since upstream only ships a macOS Bun binary.
These tools are essential for a capable clawdbot instance - screen capture, camera access, TTS, messaging. Packaging them as Nix flakes with clawdbot plugin metadata means:
- Reproducible: Pinned versions, no Homebrew drift
- Declarative: Add a plugin,
home-manager switch, done - Fresh: CI keeps tools and skills at latest automatically
- Integrated: Skills teach your bot how to use each tool
| Tool | What it does |
|---|---|
| summarize | Link → clean text → summary |
| gogcli | Google CLI for Gmail, Calendar, Drive, and Contacts |
| camsnap | Capture snapshots/clips from RTSP/ONVIF cameras |
| sonoscli | Control Sonos speakers |
| bird | Fast X CLI for tweeting, replying, and reading |
| peekaboo | Lightning-fast macOS screenshots & AI vision analysis |
| poltergeist | Universal file watcher with auto-rebuild |
| sag | Command-line ElevenLabs TTS with mac-style flags |
| imsg | iMessage/SMS CLI |
| oracle | Bundle prompts + files for AI queries |
Each tool is a subflake under tools/<tool>/ exporting clawdbotPlugin. Point your nix-clawdbot config at the tool you want:
programs.clawdbot.plugins = [
{ source = "github:clawdbot/nix-steipete-tools?dir=tools/camsnap"; }
{ source = "github:clawdbot/nix-steipete-tools?dir=tools/peekaboo"; }
{ source = "github:clawdbot/nix-steipete-tools?dir=tools/summarize"; }
];Each plugin bundles:
- The tool binary (on PATH)
- A skill (SKILL.md) so your bot knows how to use it
- Any required state dirs / env declarations
If you just want the binaries without the plugin wrapper:
inputs.nix-steipete-tools.url = "github:clawdbot/nix-steipete-tools";
# Then use:
inputs.nix-steipete-tools.packages.aarch64-darwin.camsnap
inputs.nix-steipete-tools.packages.aarch64-darwin.peekaboo
# etc.
# Linux examples:
inputs.nix-steipete-tools.packages.x86_64-linux.camsnap
inputs.nix-steipete-tools.packages.aarch64-linux.gogcli
inputs.nix-steipete-tools.packages.x86_64-linux.summarizeSkills are vendored from clawdbot/clawdbot main branch. No pinning - we track latest.
go run ./cmd/sync-skillsPulls latest main via sparse checkout, only updates files when contents actually change.
Tools track upstream GitHub releases directly (not Homebrew).
go run ./cmd/update-toolsFetches latest release versions/URLs/hashes and updates the Nix expressions. Oracle uses pnpm and auto-derives its hash via build mismatch.
| Workflow | Schedule | What it does |
|---|---|---|
| sync-skills | Every 30 min | Pulls latest skills from clawdbot main |
| update-tools | Every 10 min | Checks for new tool releases |
| Garnix | On push | Builds all packages via checks.* (darwin + linux) |
Automated PRs keep everything fresh without manual intervention.
Tools are packaged as-is from upstream. See individual tool repos for their licenses.
Nix packaging: MIT