2026-07-07 · Fable integration agent · 138 repos judged (60 steipete + 78 openclaw org) · winners installed with evidence
The one-paragraph verdict: Peter Steinberger's public work splits into three strata: (1) the crawlkit crawler suite (telecrawl / discrawl / gitcrawl / wacrawl) — local-first SQLite mirrors of your own communication archives, which is exactly the ingestion layer this system's brain wants; (2) agent-reach CLIs we already run daily (gog v0.9.0, wacli 0.12.0 — both were his all along); (3) the OpenClaw platform itself, which the user runs and which is out of scope by standing rule. We adopted the four crawlers that work on this machine, imported the user's full Telegram history read-only (45,968 messages / 200 chats) and WhatsApp Desktop history read-only (107,589 messages / 377 chats) into local searchable mirrors, and documented the human-gated auth steps for the rest.
1 · What landed (with receipts)
| Tool | Version (pasted) | Install | Status |
|---|---|---|---|
| telecrawl | 0.3.1 |
brew install steipete/tap/telecrawl |
ADOPTED — local tdata import verified (below) |
| discrawl | 0.11.4 |
brew install steipete/tap/discrawl |
ADOPTED — installed; live sync human-gated on DISCORD_BOT_TOKEN |
| gitcrawl | 0.7.0 |
brew install steipete/tap/gitcrawl |
ADOPTED — smoke-tested (gitcrawl metadata --json → crawlkit.control.v1) |
| wacli | 0.12.0 |
upgraded from 0.2.0 via brew upgrade openclaw/tap/wacli |
ALREADY-HAVE — WhatsApp send/read covered; 0.2.0 failed auth with Client outdated (405) |
| gog | v0.9.0 (99d9575 2026-01-22T04:15:12Z) |
already present, daily Gmail use | ALREADY-HAVE — untouched per contract (no ~/.config/gog changes) |
| wacrawl | 0.3.1 |
brew install openclaw/tap/wacrawl |
ADOPTED — WhatsApp Desktop data found and import verified (below) |
| crabbox | — | not installed | SKIP-FOR-NOW — remote test/exec control plane needing coordinator+runner infra we don't run |
| crawlkit | — | library, not an app | NOTED — the shared Go foundation (SQLite, snapshots, backup, TUI) under every crawler; crawlctl scheduler optional later |
Version evidence (fresh, this session):
telecrawl : 0.3.1
discrawl : 0.11.4
gitcrawl : 0.7.0
wacli : 0.12.0
wacrawl : 0.3.1
gog : v0.9.0 (99d9575 2026-01-22T04:15:12Z)
brew tap : steipete/tap, openclaw/tap
brew list : discrawl gitcrawl telecrawl wacli wacrawl
2 · Deep dives — the named eight
telecrawl — Telegram → SQLite (ADOPTED, import verified)
Reads Telegram Desktop's on-disk tdata (and macOS Postbox) read-only and mirrors chats/messages/media metadata into ~/.telecrawl/telecrawl.db. No API login needed for the local-import path. Import ran on this machine, 2026-07-07 03:14:20Z → 03:20:23Z:
source_path: /Users/thescoho/Library/Application Support/Telegram Desktop/tdata
db_path: /Users/thescoho/.telecrawl/telecrawl.db
chats: 200 messages: 45968
media_messages: 11360 topics: 268
oldest_message: 2022-02-21T06:19:19Z
newest_message: 2026-07-07T03:06:37Z
Four years of Telegram history is now greppable offline (telecrawl search <query>). CORRECTION (2026-07-07, verified against openclaw/telecrawl README + telecrawl --help): v0.3.1 has NO live API sync and never uses my.telegram.org api_id/api_hash — the original claim here was wrong. Freshness path: re-run telecrawl import after Telegram Desktop has synced; --fetch-media reuses local session auth data without any login flow.
discrawl — Discord → SQLite (ADOPTED, sync human-gated)
Mirrors Discord servers/channels/messages into a local SQLite cache; can also wiretap the local client cache. Installed at 0.11.4. Live bot sync requires a Discord bot token the human must create (§5). No token was typed or stored by this agent.
gitcrawl — GitHub issues/PRs → SQLite (ADOPTED)
Local-first crawler for GitHub issues and pull requests with clustering/triage tooling — rides the existing gh auth, so it works today. Smoke test:
$ gitcrawl metadata --json | head
{ "schema_version": "crawlkit.control.v1", "id": "gitcrawl",
"display_name": "Git Crawl",
"description": "Local-first GitHub issue and pull request crawler." … }
wacrawl — WhatsApp Desktop → SQLite (ADOPTED, import verified)
Crawls the WhatsApp Desktop app's local data at ~/Library/Group Containers/group.net.whatsapp.WhatsApp.shared. The earlier skip was wrong/stale: this machine now has /Applications/WhatsApp.app (net.whatsapp.WhatsApp, version 26.23.72) plus the expected local databases. wacrawl doctor verified ChatStorage.sqlite, ContactsV2.sqlite, and Message/Media, then wacrawl status imported a read-only snapshot:
source_path: /Users/thescoho/Library/Group Containers/group.net.whatsapp.WhatsApp.shared
db_path: /Users/thescoho/.wacrawl/wacrawl.db
chats: 377 messages: 107589
contacts: 531 groups: 55
participants: 2678 media_messages: 7100
oldest_message: 2021-03-22T02:02:53Z
newest_message: 2026-07-07T03:59:05Z
last_import: 2026-07-07T04:00:13Z
wacrawl is read-only and does not use the QR/websocket auth path. It complements wacli: wacrawl is the offline archive mirror; wacli is live send/read via WhatsApp Web pairing.
wacli / gogcli (ALREADY-HAVE — hands off)
Both were already in the toolbelt before this sweep; the sweep's contribution is provenance — they're steipete tools, same author as the crawler suite. wacli was upgraded from 0.2.0 to 0.12.0 after wacli auth failed with Client outdated (405) connect failure; that failure was an outdated WhatsApp Web client, not missing WhatsApp Desktop data. gog is in daily Gmail use; per run contract its config/OAuth were not touched.
crawlkit (NOTED — the foundation)
The shared Go library beneath every crawler: SQLite storage conventions (crawlkit.control.v1), snapshotting, backup, and a shared TUI. Nothing to install by itself; its crawlctl scheduler is the future piece if we ever want cron-driven re-crawls.
crabbox (SKIP-FOR-NOW)
Remote test/exec control plane — a coordinator + runner fleet for farming out commands. Architecturally interesting for Mission Control's cross-machine story, but we run no runner fleet; adopting it today would be infra cosplay. Revisit if remote runners become real.
3 · What this unlocks (FUTURE notes — no config was changed)
- Brain ingestion: telecrawl's DB is a ready corpus for
~/brain/inbox// gbrain ingestion — atelecrawl search … --json→ markdown digest pipeline is a one-evening build. Same shape for discrawl once a bot token exists. - Agent-reach complement: agent-reach reaches out to 13 platforms; the crawlers mirror your own archives locally. Together: outward search + inward memory, both offline-capable.
- OpenClaw channel potential: discrawl/telecrawl DBs could back OpenClaw channel context (history-aware replies) — noted as future only;
~/.openclaw/*was not touched, per contract. - gitcrawl triage: point it at the repos this system owns to get offline issue/PR triage with clustering — a natural feed for the Dreaming Ledger's "what needs attention" surface.
4 · Full inventory — steipete org (60 repos judged)
Verdict key: ADOPT installed with evidence · ALREADY-HAVE in toolbelt pre-sweep · QUEUE adopt on trigger · NOTED read/mine, don't install · SKIP reasoned pass.
| Repo | Verdict | Stars | Lang | Pushed | Why |
|---|---|---|---|---|---|
| CodexBar | NOTED | 16767 | Swift | 2026-07-07 | menu-bar Codex/Claude usage meter — Mission Control's own gauge covers this; mine for ideas, don't install |
| summarize | QUEUE | 6383 | TypeScript | 2026-07-06 | URL/file→summary CLI — overlaps existing skills; adopt if a batch-summarize need appears |
| agent-scripts | NOTED | 5251 | Shell | 2026-07-06 | his personal agent shell-script pile — reading material for patterns |
| oracle | QUEUE | 3209 | TypeScript | 2026-07-06 | multi-model second-opinion CLI — fleet skill already covers this exact job; skip install |
| RepoBar | SKIP | 2111 | Swift | 2026-07-06 | menu-bar repo status — Mission Control overlaps |
| birdclaw | SKIP | 1520 | TypeScript | 2026-07-06 | X/Twitter for OpenClaw — agent-reach covers X |
| macos-automator-mcp | QUEUE | 845 | TypeScript | 2026-07-02 | AppleScript/JXA MCP — Peekaboo + osascript cover most; revisit for deep app automation |
| Trimmy | SKIP | 726 | Swift | 2026-07-01 | string-trim Swift app — niche |
| sag | SKIP | 566 | Go | 2026-07-02 | ElevenLabs speech CLI — no TTS need in stack |
| poltergeist | QUEUE | 426 | TypeScript | 2026-07-06 | file-watcher auto-rebuild daemon — adopt if Swift build loops become daily |
| steipete.me | SKIP | 419 | Astro | 2026-07-03 | blog |
| Demark | SKIP | 242 | Swift | 2026-07-01 | Swift HTML→Markdown lib |
| speaking | SKIP | 221 | — | 2026-07-04 | talks repo |
| tmuxwatch | QUEUE | 215 | Go | 2026-07-01 | tmux session watcher TUI — cmux covers orchestration; revisit |
| sweet-cookie | SKIP | 194 | TypeScript | 2026-07-01 | browser cookie extraction — browser-harness uses real Chrome, no need |
| sonoscli | SKIP | 172 | Go | 2026-07-01 | Sonos CLI — no Sonos |
| brabble | SKIP | 163 | Go | 2026-07-01 | speech experiment |
| sweetlink | SKIP | 154 | TypeScript | 2026-07-01 | deep-link lib |
| TauTUI | SKIP | 145 | Swift | 2026-06-30 | TUI framework |
| steipete | SKIP | 129 | — | 2026-07-01 | profile repo |
| gifgrep | QUEUE | 123 | Go | 2026-06-30 | search text inside GIFs/video — fun, niche; adopt on demand |
| homebrew-tap | ALREADY-HAVE | 110 | Ruby | 2026-07-07 | steipete/tap already tapped (peekaboo, imsg, mcporter came from it) |
| ElevenLabsKit | SKIP | 109 | Swift | 2026-07-02 | Swift lib |
| camsnap | SKIP | 98 | Go | 2026-07-01 | webcam capture CLI — Peekaboo covers capture |
| eightctl | SKIP | 88 | Go | 2026-07-01 | Eight Sleep CLI — no device |
| ReleaseBar | SKIP | 87 | TypeScript | 2026-07-05 | menu-bar releases — niche |
| SweetCookieKit | SKIP | 87 | Swift | 2026-07-01 | Swift lib |
| tokentally | QUEUE | 79 | TypeScript | 2026-07-03 | token counting CLI — context-tax gauge covers live; maybe for corpus audits |
| vox | SKIP | 77 | TypeScript | 2026-07-02 | voice CLI experiment |
| inngest | SKIP | 75 | TypeScript | 2026-06-30 | fork-adjacent infra |
| ordercli | SKIP | 72 | Go | 2026-06-30 | food ordering CLI — novelty |
| bslog | SKIP | 68 | TypeScript | 2026-07-01 | TS logging lib |
| stats-store | SKIP | 56 | TypeScript | 2026-07-06 | Sparkle stats backend |
| Markdansi | SKIP | 52 | TypeScript | 2026-07-01 | TS lib |
| xcode-theme-solarized-modded | SKIP | 52 | — | 2016-02-17 | theme, 2016 |
| BlackBar | SKIP | 46 | Swift | 2026-07-06 | menu-bar app |
| Commander | SKIP | 44 | Swift | 2026-07-02 | Swift lib |
| SOUL.md | NOTED | 44 | HTML | 2026-07-01 | agent persona doctrine file — reading material |
| SwiftUITouchHandling | SKIP | 41 | Swift | 2026-06-30 | sample code |
| canvas | SKIP | 41 | Go | 2026-05-04 | Go experiment |
| fluegel | SKIP | 38 | Swift | 2026-05-20 | Swift experiment |
| blucli | SKIP | 37 | Go | 2026-07-01 | Bluetooth CLI — niche |
| metcli | SKIP | 35 | Go | 2026-06-30 | Met Museum CLI — novelty |
| mcp-agentify | SKIP | 34 | TypeScript | 2026-07-01 | MCP experiment |
| sweetcookie | SKIP | 34 | Go | 2026-06-23 | predecessor of sweet-cookie |
| lobsterbot | SKIP | 32 | JavaScript | 2026-01-28 | bot experiment |
| osc-progress | SKIP | 28 | TypeScript | 2026-07-04 | terminal OSC lib |
| triage | SKIP | 27 | Shell | 2026-03-14 | issue triage scripts — gitcrawl supersedes |
| clawdbot.com | SKIP | 22 | HTML | 2026-06-30 | site |
| lore.md | SKIP | 20 | TypeScript | 2026-07-02 | experiment |
| Swiftdansi | SKIP | 20 | Swift | 2026-06-30 | Swift lib |
| research | NOTED | 19 | — | 2026-05-04 | his agent research notes — reading material |
| ObservationTrackingExample | SKIP | 12 | Swift | 2026-06-30 | sample code |
| dotfiles | SKIP | 10 | Shell | 2009-10-06 | 2009-era |
| signalpress | SKIP | 9 | — | 2026-06-07 | experiment |
| demark-landing | SKIP | 6 | TypeScript | 2026-06-30 | site |
| mintlify-docs | SKIP | 4 | MDX | 2026-06-30 | docs |
| docs | SKIP | 4 | MDX | 2026-06-30 | docs |
| openclaw-pr-assets | SKIP | 3 | — | 2026-07-06 | assets |
| pr-assets | SKIP | 2 | — | 2026-07-06 | assets |
5 · Full inventory — openclaw org (78 repos judged)
| Repo | Verdict | Stars | Lang | Pushed | Why |
|---|---|---|---|---|---|
| openclaw | ALREADY-HAVE | — | — | — | the agent gateway platform itself — user runs it; config out of scope by standing rule |
| clawhub | NOTED | — | — | — | skill/plugin registry for OpenClaw — consumed via OpenClaw, nothing to install |
| gogcli | ALREADY-HAVE | — | — | — | gog v0.9.0 in daily Gmail use — DO NOT touch ~/.config/gog or OAuth |
| Peekaboo | ALREADY-HAVE | — | — | — | peekaboo 3.0.0-beta3 installed — macOS screenshot/UI-automation MCP |
| mcporter | ALREADY-HAVE | — | — | — | mcporter 0.7.3 installed — MCP server importer/runner |
| acpx | SKIP | — | — | — | ACP (agent client protocol) adapter — no current ACP consumer in this stack |
| wacli | ALREADY-HAVE | — | — | — | wacli 0.12.0 installed — WhatsApp send/read CLI, covers live reach; upgraded after 0.2.0 hit Client outdated (405) |
| openclaw-windows-node | SKIP | — | — | — | Windows node host — macOS machine |
| clawsweeper | QUEUE | — | — | — | malicious-skill scanner for OpenClaw installs — adopt when auditing third-party skills |
| lobster | SKIP | — | — | — | typed workflow shell for agents — overlaps existing Workflow tool |
| imsg | ALREADY-HAVE | — | — | — | imsg 0.4.0 installed — iMessage CLI |
| crabbox | SKIP-FOR-NOW | — | — | — | remote test/exec control plane — needs coordinator+runner infra we don't run; revisit if remote runners appear |
| agent-skills | NOTED | — | — | — | OpenClaw skill collection — browse for patterns, nothing to install |
| discrawl | ADOPT | — | — | — | installed 0.11.4 — Discord→SQLite mirror + local cache wiretap; bot sync is human-gated |
| clawpatch | SKIP | — | — | — | OpenClaw patch tooling — OpenClaw-internal |
| nix-openclaw | SKIP | — | — | — | Nix packaging — not a Nix machine |
| openclaw-ansible | SKIP | — | — | — | Ansible deploy — no fleet to deploy |
| AXorcist | SKIP | — | — | — | Swift AX library — dev dependency, not a tool |
| openclaw.ai | SKIP | — | — | — | website |
| remindctl | QUEUE | — | — | — | Apple Reminders CLI — adopt if Reminders enters the loop stack |
| Tachikoma | SKIP | — | — | — | Swift AI library — dev dependency |
| goplaces | SKIP | — | — | — | Google Places CLI — no current need |
| spogo | SKIP | — | — | — | Spotify CLI — no current need |
| crabfleet | SKIP-FOR-NOW | — | — | — | fleet UI for crabbox — same infra dependency |
| slacrawl | QUEUE | 13 | Go | 2026-05-22 | Slack→SQLite local archive — Slack MCP covers live reads today; adopt when offline Slack search is wanted |
| wacrawl | ADOPT | 13 | Go | 2026-05-22 | installed 0.3.1 — WhatsApp Desktop→SQLite archive; local import verified on this machine |
| clickclack | SKIP | 13 | Go | 2026-05-22 | keyboard/mouse utility — niche |
| clawdinators | SKIP | 13 | Go | 2026-05-22 | Nix fleet configs |
| shellbench | SKIP | 13 | Go | 2026-05-22 | shell benchmark harness — niche |
| notcrawl | QUEUE | 13 | Go | 2026-05-22 | Notion→SQLite crawler — adopt if Notion enters the stack |
| community | SKIP | 13 | Go | 2026-05-22 | community meta-repo |
| clawpdf | SKIP | 13 | Go | 2026-05-22 | PDF tooling for OpenClaw — niche |
| octopool | NOTED | 13 | Go | 2026-05-22 | pooled GitHub auth used by gitcrawl — install only if gitcrawl hits rate walls |
| gitcrawl | ADOPT | 13 | Go | 2026-05-22 | installed 0.7.0 — GitHub issues/PRs→SQLite triage crawler with clustering |
| libopus-wasm | SKIP | 13 | Go | 2026-05-22 | codec build |
| clawgo | SKIP | 13 | Go | 2026-05-22 | Go client lib |
| docs | SKIP | 4 | MDX | 2026-06-30 | docs site |
| songsee | SKIP | 4 | MDX | 2026-06-30 | audio visualizer CLI |
| telecrawl | ADOPT | 4 | MDX | 2026-06-30 | installed 0.3.1 — Telegram tdata/Postbox→SQLite archive; local import verified on this machine |
| clownfish | SKIP | 4 | MDX | 2026-06-30 | JS utility |
| esp-openclaw-node | SKIP | 4 | MDX | 2026-06-30 | ESP32 firmware |
| nix-openclaw-tools | SKIP | 4 | MDX | 2026-06-30 | Nix packaging |
| fs-safe | SKIP | 4 | MDX | 2026-06-30 | TS library |
| crawlkit | NOTED | 4 | MDX | 2026-06-30 | shared Go foundation under all crawlers (SQLite/snapshot/backup/TUI); library not app — nothing to install; crawlctl scheduler optional later |
| ffmpeg-wasm | SKIP | 4 | MDX | 2026-06-30 | codec build |
| clawdex | SKIP | 4 | MDX | 2026-06-30 | tool index — niche |
| homebrew-tap | ADOPT | 110 | Ruby | 2026-07-07 | tapped openclaw/tap — install channel for the crawler suite (provenance verified: release binaries from github.com/openclaw/*) |
| flawd-bot | SKIP | 110 | Ruby | 2026-07-07 | bot experiment |
| casa | SKIP | 110 | Ruby | 2026-07-07 | HomeKit CLI — no HomeKit use |
| hermit | SKIP | 110 | Ruby | 2026-07-07 | niche |
| rastermill | SKIP | 110 | Ruby | 2026-07-07 | image pipeline lib |
| clawrouter | SKIP | 110 | Ruby | 2026-07-07 | OpenClaw-internal routing |
| proxyline | SKIP | 110 | Ruby | 2026-07-07 | proxy lib |
| openclaw-rtt | SKIP | 110 | Ruby | 2026-07-07 | OpenClaw-internal |
| crabline | SKIP | 110 | Ruby | 2026-07-07 | crabbox-internal |
| Swabble | SKIP | 110 | Ruby | 2026-07-07 | Swift utility |
| cookbook | NOTED | 110 | Ruby | 2026-07-07 | OpenClaw recipes — reading material |
| ask-molty | SKIP | 110 | Ruby | 2026-07-07 | demo |
| plugin-inspector | SKIP | 110 | Ruby | 2026-07-07 | OpenClaw-internal |
| graincrawl | QUEUE | 110 | Ruby | 2026-07-07 | Granola meetings crawler — adopt if Granola used |
| butter.bot | SKIP | 110 | Ruby | 2026-07-07 | site |
| crabpot | SKIP | 110 | Ruby | 2026-07-07 | crabbox-internal |
| clawsweeper-state | SKIP | 110 | Ruby | 2026-07-07 | data repo |
| clawsweeper.bot | SKIP | 110 | Ruby | 2026-07-07 | site |
| crawlbar | QUEUE | 110 | Ruby | 2026-07-07 | menu-bar status for crawl archives — adopt after crawlers prove daily-driver |
| voice-community | SKIP | 110 | Ruby | 2026-07-07 | community repo |
| releases | SKIP | 110 | Ruby | 2026-07-07 | release plumbing |
| turnwire | SKIP | 110 | Ruby | 2026-07-07 | protocol lib |
| .github | SKIP | 110 | Ruby | 2026-07-07 | org meta |
| rfcs | SKIP | 110 | Ruby | 2026-07-07 | design docs |
| kitchen-sink | SKIP | 110 | Ruby | 2026-07-07 | demo |
| photoscrawl | QUEUE | 110 | Ruby | 2026-07-07 | Apple Photos crawler — interesting for brain ingestion later |
| clawscan | SKIP | 110 | Ruby | 2026-07-07 | scanner niche |
| Kova | SKIP | 110 | Ruby | 2026-07-07 | JS experiment |
| imsgcrawl | QUEUE | 110 | Ruby | 2026-07-07 | iMessage→SQLite archive — imsg covers live; adopt for offline search later |
| libterminal | SKIP | 110 | Ruby | 2026-07-07 | Python lib |
| clawgrit-reports | SKIP | 110 | Ruby | 2026-07-07 | data repo |
| uirouter | SKIP | 110 | Ruby | 2026-07-07 | OpenClaw-internal |
6 · Human-gated auth checklist (exact commands, nothing attempted by the agent)
Per contract, no credentials were typed, echoed, or logged; no QR/login flow was attempted.
| Tool | What you do | Exact command |
|---|---|---|
| discrawl live sync | Create a Discord bot (Developer Portal → Bot → token, enable Message Content intent), invite it to your servers, then in a fresh shell: | export DISCORD_BOT_TOKEN=… && discrawl sync |
| telecrawl freshness (optional — full import already done) | telecrawl import |
|
| wacli (re)pair | Only if WhatsApp pairing ever drops — scan the QR with your phone. If Client outdated (405) appears, upgrade wacli first: |
wacli auth |
| wacrawl freshness | No QR or API credentials. Refresh the read-only WhatsApp Desktop mirror any time with: | wacrawl import |
| gitcrawl | Nothing — rides existing gh auth login. |
— |
7 · Verification ledger
- Inventory:
gh api 'users/steipete/repos?per_page=100' --paginate(+ same fororgs/openclaw) →/tmp/steipete-repos.jsonl; verdicts in/tmp/verdicts-{steipete,openclaw}.tsv, joined into the tables above. - npm/pipx squatting check: not applicable to the winners — crawler binaries were installed from trusted Homebrew formulae under
steipete/tapandopenclaw/tap, with release artifacts hosted atgithub.com/openclaw/*. - Installs: version strings pasted in §1 were captured this session, not transcribed from READMEs.
- Telegram import: read-only against live
tdata; telecrawl rate-limit backoffs (9–12s) observed and survived; counts in §2 are fromtelecrawl statuspost-import. - Honest nulls: crabbox is not installed — reasons in §2;
crawlctlscheduling untested; discrawl end-to-end sync unverified until a human supplies a bot token.
Usage doctrine: ~/.claude/skills/steipete-crawlers/SKILL.md (verified commands only).