[BREAKGLASS] Append-only mirror of github.com/openclaw/nix-openclaw-tools
Go to file
Dave Dennis 3103831ea1
feat: add CodexBar app package and module
Thanks @0xdsqr for the contribution.

Co-authored-by: 0xdsqr <me@dsqr.dev>
2026-04-27 05:57:45 +01:00
.github/workflows replace shell update scripts with Go tooling 2026-01-04 18:06:45 +01:00
cmd feat: add crawling tool plugins 2026-04-26 03:16:51 +01:00
internal 🤖 refactor: remove oracle from nix-steipete-tools 2026-02-17 19:43:35 -08:00
nix feat: add CodexBar app package and module 2026-04-27 05:57:45 +01:00
tools feat: add crawling tool plugins 2026-04-26 03:16:51 +01:00
flake.lock init nix-stepiete-tools with summarize 2026-01-04 13:16:38 +01:00
flake.nix feat: add CodexBar app package and module 2026-04-27 05:57:45 +01:00
garnix.yaml 🤖 codex: add linux builds (no-issue) 2026-01-08 15:23:59 +01:00
go.mod fix module path for renamed repo 2026-01-04 18:21:36 +01:00
README.md feat: add CodexBar app package and module 2026-04-27 05:57:45 +01:00

nix-steipete-tools

Core tools for openclaw. Batteries included. Always fresh.

Nix packaging for Peter Steinberger's tools, with per-tool openclaw plugins. Part of the nix-openclaw 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 openclaw instance - screen capture, camera access, TTS, messaging. Packaging them as Nix flakes with openclaw 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

Pure Nix and Home Manager design

This repo is meant to be consumable directly from Nix flakes, Darwin, and Home Manager configs. Packages should stay pinned and reproducible, and optional Home Manager modules should expose normal programs.<name> options instead of requiring downstream users to hand-write app bundle or launchd glue.

For macOS app bundles, prefer a Nix package plus Home Manager integration. Home Manager can expose app bundles from home.packages through its Darwin app targets, and modules can opt into launchd.agents when Home Manager should own startup. Homebrew casks are still useful, but they belong in a nix-darwin Homebrew configuration, not in these pure Nix package/module definitions.

What's included

Tool What it does
summarize Link → clean text → summary
discrawl Mirror Discord into SQLite and search history locally
wacrawl Read-only local archive and search for WhatsApp Desktop data
gogcli Google CLI for Gmail, Calendar, Drive, and Contacts
goplaces Google Places API (New) CLI
camsnap Capture snapshots/clips from RTSP/ONVIF cameras
sonoscli Control Sonos speakers
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
CodexBar macOS menu bar app for Codex, Claude, and other provider usage

Usage (as openclaw plugins)

Each tool is a subflake under tools/<tool>/ exporting openclawPlugin. Point your nix-openclaw config at the tool you want:

programs.openclaw.plugins = [
  { source = "github:openclaw/nix-steipete-tools?dir=tools/camsnap"; }
  { source = "github:openclaw/nix-steipete-tools?dir=tools/discrawl"; }
  { source = "github:openclaw/nix-steipete-tools?dir=tools/peekaboo"; }
  { source = "github:openclaw/nix-steipete-tools?dir=tools/summarize"; }
  { source = "github:openclaw/nix-steipete-tools?dir=tools/wacrawl"; }
];

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:openclaw/nix-steipete-tools";

# Then use:
inputs.nix-steipete-tools.packages.aarch64-darwin.camsnap
inputs.nix-steipete-tools.packages.aarch64-darwin.discrawl
inputs.nix-steipete-tools.packages.aarch64-darwin.peekaboo
inputs.nix-steipete-tools.packages.aarch64-darwin.wacrawl
inputs.nix-steipete-tools.packages.aarch64-darwin.codexbar-app
# etc.

# Linux examples:
inputs.nix-steipete-tools.packages.x86_64-linux.camsnap
inputs.nix-steipete-tools.packages.x86_64-linux.discrawl
inputs.nix-steipete-tools.packages.aarch64-linux.gogcli
inputs.nix-steipete-tools.packages.x86_64-linux.summarize
inputs.nix-steipete-tools.packages.x86_64-linux.wacrawl

Home Manager modules

Some packages also ship Home Manager modules so they can be enabled directly without hand-writing install and launchd wiring. For CodexBar:

{
  imports = [ inputs.nix-steipete-tools.homeManagerModules.codexbar ];

  programs.codexbar.enable = true;
}

That adds the CodexBar app package to home.packages. Home Manager can then expose the app bundle through its Darwin app targets. If you want Home Manager to own startup too, enable the launchd agent explicitly:

{
  programs.codexbar = {
    enable = true;
    launchd.enable = true;
    launchd.keepAlive = false;
  };
}

macOS app bundles

If you only want the raw app package, use the package output directly:

inputs.nix-steipete-tools.packages.aarch64-darwin.codexbar-app

Skills syncing

Skills are vendored from openclaw/openclaw 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.

CI

Workflow Schedule What it does
sync-skills Every 30 min Pulls latest skills from openclaw 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.

Temporarily disabled

bird is not exported right now because the upstream GitHub release assets for v0.8.0 are gone. The npm package still exists, but this flake does not currently build npm dependencies for it.

License

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

Nix packaging: MIT