logo
0
0
WeChat Login
Josh Palmer<joshp123@users.noreply.github.com>
Merge origin/main

nix-steipete-tools

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.

Why this exists

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

What's included

ToolWhat it does
summarizeLink → clean text → summary
gogcliGoogle CLI for Gmail, Calendar, Drive, and Contacts
camsnapCapture snapshots/clips from RTSP/ONVIF cameras
sonoscliControl Sonos speakers
birdFast X CLI for tweeting, replying, and reading
peekabooLightning-fast macOS screenshots & AI vision analysis
poltergeistUniversal file watcher with auto-rebuild
sagCommand-line ElevenLabs TTS with mac-style flags
imsgiMessage/SMS CLI
oracleBundle prompts + files for AI queries

Usage (as clawdbot plugins)

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

Usage (packages only)

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

Skills syncing

Skills are vendored from clawdbot/clawdbot main branch. No pinning - we track latest.

go run ./cmd/sync-skills

Pulls latest main via sparse checkout, only updates files when contents actually change.

Tool updates

Tools track upstream GitHub releases directly (not Homebrew).

go run ./cmd/update-tools

Fetches latest release versions/URLs/hashes and updates the Nix expressions. Oracle uses pnpm and auto-derives its hash via build mismatch.

CI

WorkflowScheduleWhat it does
sync-skillsEvery 30 minPulls latest skills from clawdbot main
update-toolsEvery 10 minChecks for new tool releases
GarnixOn pushBuilds all packages via checks.* (darwin + linux)

Automated PRs keep everything fresh without manual intervention.

License

Tools are packaged as-is from upstream. See individual tool repos for their licenses.

Nix packaging: MIT

About

No description, topics, or website provided.
Language
Nix62.3%
Go37.7%