research

The Steinberger Sweep — steipete's GitHub, inventoried and mined

Jul 14, 2026

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 --jsoncrawlkit.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 — a telecrawl 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) live API sync CORRECTED: no such feature in v0.3.1, no Telegram API credentials needed. Refresh the mirror any time with: 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 for orgs/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/tap and openclaw/tap, with release artifacts hosted at github.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 from telecrawl status post-import.
  • Honest nulls: crabbox is not installed — reasons in §2; crawlctl scheduling 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).