steipete /
birdclaw
Local SQLite archive of your Twitter/X history with a web app, CLI and MCP server
- 1.7k stars
- 2 stars since 3 Oct
- TypeScript
- Updated 2 days ago
- Some experience
- Productivity & personal
Your Twitter/X history is hard to search and hard to hand to an AI agent. Birdclaw takes the archive zip you can download from X and loads it into SQLite on your own machine. Tweets, DMs, likes, bookmarks, profiles, media and follow edges all end up in the same tables.
Search uses SQLite's FTS5 full-text index, so local reads are fast and make no network calls. You can use it through a web app on localhost, a CLI with JSON output, or an optional MCP server that exposes cached tweet search and thread lookup as read-only tools.
Live data is opt-in. When you ask, it syncs your timeline or bookmarks through xurl or an existing bird install. The README says it is for people who want their own history without a cloud backend, and that it is not affiliated with X Corp.
What it does
Archive import
Imports tweets, DMs, likes, bookmarks, profiles, media and follow edges from a Twitter/X archive zip. Imports are idempotent, so re-running them is safe.
Local full-text search
SQLite is the main store, with FTS5 search over tweets and DMs. Data lives under ~/.birdclaw, or wherever BIRDCLAW_HOME points.
Web app and CLI
The web app covers home, mentions, saved posts, DMs, inbox, moderation and network views. The CLI offers search, sync, moderation and JSON output.
Explicit live sync
Syncs timeline and bookmarks through xurl or bird only when you run the command. Live writes can be turned off with BIRDCLAW_DISABLE_LIVE_WRITES=1.
Read-only MCP and backups
The MCP endpoint stays off until you configure a token and public URL. Backups are deterministic JSONL shards that round-trip through Git.
What you could build
- Search years of your own tweets and DMs offline from the command line.
- Give an AI agent read-only access to your tweet history through the MCP server.
- Browse your bookmarks and likes in a local web app.
- Back up your Twitter/X data as JSONL shards kept in a Git repository.
- Serve a read-only archive site by setting BIRDCLAW_DEPLOYMENT_READ_ONLY=1.
Get started
Install with Homebrew (or npm install -g birdclaw), then create the demo database and start the web app at http://localhost:3000. To use your own data, run birdclaw import archive with your X archive zip.
brew install steipete/tap/birdclawbirdclaw init --demobirdclaw serveCommands are copied from the project's README. Read it on GitHub for the full setup.