# Birdclaw Birdclaw is a local-first Twitter/X workspace by [[Peter Steinberger]]. It mirrors tweets, DMs, likes, bookmarks, mentions, follows, blocks, and mutes — across multiple accounts — into a single local [[SQLite]] database with FTS5 full-text search, then layers a CLI and a small local web UI on top. It's the same archive-as-canon pattern as [[Discrawl]] (Discord) and [[Gitcrawl]] (GitHub), aimed at the platform that has historically been the most hostile to its own users' history. ## The problem Twitter/X gives users almost no real ownership of their own data. Search is shallow and rate-limited, the official archive is half-broken, the API is now a paid product, and the platform has demonstrated repeatedly that anyone's history can disappear without notice. For anyone who has spent years posting, replying, DMing, and bookmarking — that's a substantial loss of personal memory. Birdclaw treats the local archive as the source of truth. The platform becomes a replication source, not the database. ## How it works - **One SQLite DB.** Tweets, DMs, likes, bookmarks, mentions, follows, blocks, and mutes for any number of accounts in a single canonical store. - **FTS5 search.** Fast full-text search across the entire archive. - **Archive import + live sync.** Bootstrap from Twitter's official archive export, then keep current via cached live reads through `xurl` and `bird` — calls share a budget across the whole tool to avoid burning rate limits. - **Local web UI.** Home, Mentions, Likes, Bookmarks, DMs, Inbox, and Blocks views, served locally. - **AI-ranked inbox.** Optional [[OpenAI]]-powered ranking to filter low-signal mentions and DMs. - **Git-friendly text backups.** Tweets sharded by year, DMs organized per conversation — versionable, diffable, shareable. - **Account-scoped moderation.** Bulk blocklist import and per-account scoping. ## Design choices worth noting - **Archive-first, live-aware.** The archive is canonical; the live API is an update channel, not the system of record. - **CLI + local web, not SaaS.** No hosted service. JSON output envelopes for piping, stderr/stdout separation for clean automation. - **Schema churn is expected.** Steinberger explicitly treats the schema as evolving — appropriate for a tool exploring what the right local model of "your Twitter history" even is. - **Multi-account by default.** Most personal-archive tools assume one account. Birdclaw treats multiple as the norm. ## Where it fits For anyone with a long Twitter/X history they don't want at the mercy of one company, Birdclaw is the missing layer between the platform and the rest of their toolchain. Pipe the FTS index into journaling, search bookmarks like a personal Pocket, run analytics on years of conversation, or feed [[Embeddings]] into a [[Semantic Search]] layer. Same family as [[OpenClaw]] tooling: own the canonical store locally; treat vendors as input streams. ## References - Project site: <https://birdclaw.sh/> - Source: <https://github.com/steipete/birdclaw> - License: MIT ## Related - [[Peter Steinberger]] - [[Discrawl]] - [[Gitcrawl]] - [[SQLite]] - [[Embeddings]] - [[Semantic Search]]