セルフホスト型サービス
steipete/birdclaw avatar
steipete/birdclaw

birdclawはTwitter/X履歴をSQLiteに置くローカル検索器

このプロジェクトは「Stores all your tweets nicely claw-able for agents. It makes no network requests; run birdclaw serve afterward to browse the demo.」を基盤として、実践的に使えるオープンソース実装を提供し、再利用可能なツールチェーンと統合手段を備えています。

スター 1,652フォーク 160TypeScriptMIT

ひと目でわかる

これは何?
Twitter/XアーカイブをSQLiteへ取り込み、キャッシュしたライブ読み取り、Web、CLI、読み取り専用MCPを組み合わせるbirdclawを調べる。
誰に向いている?
向いているのは、投稿、DM、保存、フォロー関係を自分のマシンで検索したい利用者です。向かないのは、Xの現行データを常時同期するクラウドサービスを求める運用です。
商用利用できる?
できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に TypeScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

デモSQLiteで始める

birdclawはTwitter/X履歴をSQLiteに置くローカル検索器。READMEに書かれた機能を、実際のファイル、コマンド、設定値の境界から読みます。完成品としての印象ではなく、何を入力し、どんな出力を返し、どこを利用者が補うのかを分けて確認する記事です。 デモSQLiteで始めるの確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

最初の検証では steipete-birdclaw を小さな入力で起動し、成功した画面や応答だけで判断しません。ログ、生成物、エラー時の状態を同じ条件で保存し、READMEの記述と手元で再現した事実を照合します。 デモSQLiteで始めるに固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisのデモSQLiteで始めるでは、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

アーカイブが作るデータベース

最初の検証では steipete-birdclaw を小さな入力で起動し、成功した画面や応答だけで判断しません。ログ、生成物、エラー時の状態を同じ条件で保存し、READMEの記述と手元で再現した事実を照合します。 アーカイブが作るデータベースの確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

導入経路はREADMEの指定に合わせます。関連するサービス、データベース、ランタイム、コンテナを一度に増やさず、最小構成で一つの機能を通します。必要な版、ポート、設定ファイルが文書にない場合は、その不明点を運用条件として扱います。 アーカイブが作るデータベースに固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisのアーカイブが作るデータベースでは、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

ライブ読み取りのキャッシュ

導入経路はREADMEの指定に合わせます。関連するサービス、データベース、ランタイム、コンテナを一度に増やさず、最小構成で一つの機能を通します。必要な版、ポート、設定ファイルが文書にない場合は、その不明点を運用条件として扱います。 ライブ読み取りのキャッシュの確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

本番へ近づけるときは、権限、永続化、更新、失敗時の復旧を機能と分離して確認します。steipete-birdclawの結果を人が検査できる形式で出し、入力を変えたときに差分が説明できることを受け入れ条件にします。 ライブ読み取りのキャッシュに固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisのライブ読み取りのキャッシュでは、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

CLIとWebの同じ履歴

本番へ近づけるときは、権限、永続化、更新、失敗時の復旧を機能と分離して確認します。steipete-birdclawの結果を人が検査できる形式で出し、入力を変えたときに差分が説明できることを受け入れ条件にします。 CLIとWebの同じ履歴の確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

READMEの強みは具体的な入口にありますが、性能値や互換性、サポート期間まで自動的に保証するものではありません。Issue、リリース、公式文書へのリンクを役割ごとに読み、採用対象の環境で未確認の範囲を残します。 CLIとWebの同じ履歴に固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisのCLIとWebの同じ履歴では、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

読み取り専用MCP

READMEの強みは具体的な入口にありますが、性能値や互換性、サポート期間まで自動的に保証するものではありません。Issue、リリース、公式文書へのリンクを役割ごとに読み、採用対象の環境で未確認の範囲を残します。 読み取り専用MCPの確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

採用前には、steipete-birdclawを一つの代表データで繰り返し動かします。コマンドの終了コード、主要ファイルの内容、利用者に見える結果を記録し、更新前後で同じ観察点を比較します。結果が追跡できない場合は、用途を検証環境や補助機能に限定します。 読み取り専用MCPに固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisの読み取り専用MCPでは、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

Node 26とBun開発版の差

採用前には、steipete-birdclawを一つの代表データで繰り返し動かします。コマンドの終了コード、主要ファイルの内容、利用者に見える結果を記録し、更新前後で同じ観察点を比較します。結果が追跡できない場合は、用途を検証環境や補助機能に限定します。 Node 26とBun開発版の差の確認では、対象を一つに絞り、設定値と実行結果を同じ記録へ残します。

birdclawはTwitter/X履歴をSQLiteに置くローカル検索器。READMEに書かれた機能を、実際のファイル、コマンド、設定値の境界から読みます。完成品としての印象ではなく、何を入力し、どんな出力を返し、どこを利用者が補うのかを分けて確認する記事です。 Node 26とBun開発版の差に固有の出力を原本と照合し、異常時に元の入力を保持できることを確認します。

steipete-birdclaw-deep-analysisのNode 26とBun開発版の差では、入力、処理結果、失敗時の記録を別々に確認します。設定を一つだけ変更して再実行し、変更前後の出力とログに説明できる差分があるかを見ます。

編集部の結論

向いているのは、投稿、DM、保存、フォロー関係を自分のマシンで検索したい利用者です。向かないのは、Xの現行データを常時同期するクラウドサービスを求める運用です。評価では `birdclaw init --demo` と `birdclaw search tweets` を実行後、アーカイブ取込の重複、メディア、MCPの読み取り範囲を確認してください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート