pond について
pond は AI エージェントのセッションを欠落なく保存し、検索できるようにする MCP サーバーです。複数のクライアントのセッションをローカルディレクトリまたは自前の S3 バケットに集約します。ツールや端末をまたいで過去のセッションを検索したい利用者向けです。v1 以前のため、スキーマや設定キーは変更される可能性があります。
主な機能
- 01多数のクライアントからセッションを自動取り込みし、欠落なく保存
- 02BM25 全文検索と、任意で利用できるセマンティック検索
- 03セッションデータに対する読み取り専用 SQL クエリ
- 04セッションを他の対応クライアントへ復元
- 05ローカルディレクトリと S3 互換ストレージへの対応
活用シーン
- 01以前解決した問題を探し、同じ修正を適用する
- 02別のクライアントや別のマシンで前日の作業を再開する
- 03過去に検討した判断や失敗した手法があったかを確認する
MCP 対応
pond は pond mcp または pond serve を通じて MCP インターフェースを提供し、エージェントがアーカイブ済みのセッションを検索・読み取りできるようにします。Claude Code や Codex などのクライアントに登録して利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
pond
「前に話したのは覚えているのに、どうしてあの会話が見つからないんだ?」
Pond を使えば、Claude Code、Codex など、あらゆるツールやマシンで実行したすべての AI エージェントセッションを、一か所で検索できます。
エージェントの履歴はすでにディスク上にあります。何千ものセッションには、判断や修正、行き詰まった記録が詰まっていますが、検索できないツールに分散しています。Pond はそれらをすべて自動的かつ損失なく、所有者であるあなたが管理するストレージ(ローカルディレクトリまたは独自の S3 バケット)に取り込み、コーパス全体を検索および SQL クエリで利用できるようにします。さらに、その過去の情報を MCP 経由でエージェントに提供します。つまり、「以前はどうやってこれを直したんだっけ?」は、考古学的な発掘作業ではなく、クエリになります。セッションは、それを作成したツールに縛られません。どのセッションでも、サポート対象のクライアントに復元して続きを進められます。
brew install tenequm/tap/pond # macOS / Linux
scoop bucket add tenequm https://github.com/tenequm/scoop-bucket # Windows
scoop install tenequm/pond
または、エージェントにこう指示してください: 「pond をインストールしてセットアップしてください(github.com/tenequm/pond を参照)」。このプロンプトの完全版(失敗への対策済み)は、エージェントを接続するにあります。
1 万 2,000 件のセッションを含む稼働中のコーパスと、現在のコードで見つけて検証した 3 か月前の修正(より鮮明な MP4)
実際の過去情報に関する質問 5 件、1 つのコーパス、1 台のマシン。手法、生データ、再実行可能なスクリプトはdocs/benchmarksにあります
ステータス:v1 前です。スキーマ、ワイヤー形式、設定キーは、v1 まで破壊的変更が行われる可能性があります。完全なドキュメントはpond.lockerにあります。仕様はdocs/spec.mdです。
クイックスタート
インストールして、ガイド付きセットアップを実行し、ローカルのセッションを取り込みます。
brew install tenequm/tap/pond # macOS / Linux; Windows: Scoop or a release zip - see Install below
pond init # guided setup: storage, adapters, MCP + agent skill, optional schedule
pond sync # ingest and index - every enabled adapter
pond init は pond を Claude Code の MCP サーバーとして登録し、同梱の pond スキルをインストールします。Codex の場合は代わりに実行するコマンドが表示されます。ツールを読み込むため、その後クライアントを再起動してください。手動で行う場合:claude mcp add -s user pond -- pond mcp、codex mcp add pond -- pond mcp。スキル:mkdir -p ~/.claude/skills/pond && pond skill > ~/.claude/skills/pond/SKILL.md(この行全体は POSIX 専用です。mkdir -p、&&、> は Windows PowerShell 5.1 では動作しないか、内容を破損させます。エージェントを接続するにある PowerShell のブロックを使用してください)。次に、エージェントに尋ねてみましょう。日常的な使用での実際のプロンプトの例です。
check in pond how we solved this before, then apply the same fix here
where we left off yesterday - check pond, then continue
are you sure that won't break X? check in pond how we struggled with exactly this
セッションは、Claude Code、Claude デスクトップアプリ(ローカルエージェントモード)、Codex CLI、opencode、pi-coding-agent、oh-my-pi、OpenClaw、NanoClaw、Hermes Agent、letta-code、grok-build、Antigravity CLI(agy。その ACP サーバーを含む)、Devin CLI(devin)から自動的に取得されます。Claude.ai のデータエクスポートは pond sync claude-ai-export --path <path> でインポートできます(手動でダウンロードするため、自動検出はされません)。
これはまた別のメモリツールではありませんか?
いいえ。これはメモリツールの土台となるレイヤーです。メモリツールは、必要だと判断した情報、つまり事実、要約、分類済みの断片を保存しますが、セッションそのものは失われます。Pond はセッションを保持します。すべてのメッセージ、ツール呼び出し、結果を、内容を完全に保ったまま、複数のクライアントをまたいで、所有するストレージに保存し、削除することはありません。MCP 経由で検索でき、どのクライアントにも復元できます。メモリはアーカイブからいつでも再構築できる派生ビューですが、メモリからアーカイブを再構築することはできません。
「メモリ」と呼ばれるツールは 3 種類あります。並べて比較します。
| pond | セッション検索(ctx、deja-vu、cass) | メモリレイヤー(Mem0、Letta) | |
|---|---|---|---|
| インストール前の履歴 | あり | あり | なし |
| 保存されるもの | セッション全体 | 検索インデックス ¹ | 抽出された事実 |
| 保存場所 | ローカルディレクトリまたは S3 バケット | ローカルインデックス | ツールのデータベース |
| ハーネスがファイルを削除した後 | 残る | 次回の更新時に消える ¹ | 抽出された内容のみ |
| 複数のマシン | 共有バケットを 1 つ使用 | 1 台のマシンに取り込み ² | 共有サーバーまたはクラウド |
| エージェントからのアクセス | CLI、MCP、HTTP、SQL | CLI、MCP ³ | HTTP、SDK、MCP |
¹ cass は元のファイルも複製するため、ソースより長く保持されます。² deja-vu は ssh 経由でマシン間のレコードをコピーします。cass は ssh/rsync 経由で他のホストのセッションファイルをローカルインデックスに取り込みます。ctx は単一マシンで動作します。³ cass には MCP サーバーがありません。
ローカルですばやく呼び出したい場合は、セッション検索を選んでください。エージェントに記録ではなく要約された事実を保持させたい場合は、メモリレイヤーを選んでください。実行するすべてのマシンのセッションそのものを、所有するストレージに保存したい場合は、pond を選んでください。
各ツールの根拠を含む詳細な比較は、pond.locker/compareをご覧ください。各セルには、他のプロジェクトの特定のバージョンに関する主張が記載されています。内容が古くなっている場合は、issue を作成してください。同日中に修正されます。
背景
エージェント型 CLI はそれぞれ独自のセッション形式と検索機能を備えています。ツールを切り替えると、履歴が失われます。あるプロバイダーのツールで Claude Code のセッションを再生するには、ワイヤー形式を手作業で変換し直す必要があります。ホスト型のマルチテナントデプロイでは、同じストレージレイヤーが毎回ゼロから構築されています。
Pond は、その基盤となるストレージおよび検索レイヤーです。すべてのアダプターは、クライアント形式と単一の標準スキーマを相互変換するコーデックです。そのため、どのセッションもどのアダプターからでも復元でき、生成元のクライアントに戻す必要はありません。ストレージ、検索(デフォルトでは BM25 全文検索。オプションのセマンティック検索では、クエリごとに 1 つの検索方式を使用)、プロバイダーに依存しない再生は、すべて単一の Lance オブジェクトストレージ基盤上で動作します。
v1 の機能には、完全な CLI、HTTP+JSON および MCP トランスポート、3 つの Lance データセットに対する検索、FP16 重みでのオプトイン方式の intfloat/multilingual-e5-small 埋め込み(macOS では Metal、CUDA はオプトイン、CPU にフォールバック)、Lance の object_store 統合によるローカル FS/S3/GCS/Azure バックエンドが含まれます。
インストール
Linux、macOS、Windows に対応しています。
macOS および Linux:
brew install tenequm/tap/pond # Homebrew
nix profile add github:tenequm/pond#pond # Nix
Windows(主要な配布チャネルである Scoop。スケジュールされた同期の実行に使われる、ウィンドウを表示しないランチャー pondw.exe も同梱されています):
scoop bucket add tenequm https://github.com/tenequm/scoop-bucket
scoop install tenequm/pond
バケットは git クローンなので、最初のコマンドを実行するには PATH に git が必要です。「Git is required for buckets」というエラーが発生した場合は、scoop install git を実行してから再試行してください。
Scoop がまだインストールされていませんか?まず、通常の(管理者権限ではない)PowerShell からセットアップしてください(インストーラーは昇格したシェルでは実行できません)。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
irm get.scoop.sh | iex
その後、新しいターミナルを開いてください。PATH の変更は、インストール後に起動したプロセスにのみ反映されます。Defender、長いパス、スケジュール設定、WSL については、Windows の注意事項を参照してください。
パッケージマネージャーを使わない場合(すべてのプラットフォーム): すべてのリリースに、ビルド済みバイナリが添付されています(Windows では pond-x86_64-pc-windows-msvc.zip、展開後約 223 MB)。展開して、そのディレクトリを PATH に追加してください(Windows の場合:設定 > システム > バージョン情報 > システムの詳細設定 > 環境変数で、ユーザー環境変数に追加)。ほかにインストールは不要です。
cargo 経由(すべてのプラットフォーム、Rust ツールチェーンが必要):
cargo binstall pond-db # downloads the prebuilt binary (needs cargo-binstall)
cargo install pond-db # builds from crates.io (installs the `pond` command)
どちらの方法でもインストールされるのは pond.exe のみです。そのため、Windows でスケジュールされた同期を実行するには pondw.exe が必要となり、代わりに Scoop または zip からインストールしてください(または、ソースからビルドする場合は --features windows-launcher を指定してください)。cargo install には、以下に示す protoc と NASM の前提条件も必要です。
ソースからビルド:
git clone https://github.com/tenequm/pond.git
cd pond
cargo install --path packages/pond
Windows では、まずこのクローンに対して git config --global core.longpaths true を実行してください(テストフィクスチャのパスが 260 文字を超えます)。また、ビルド時には --target x86_64-pc-windows-msvc を明示する必要があります。これを指定しないと、cargo はリポジトリの +crt-static フラグをビルドスクリプトと proc-macro にも適用するため、読み込みに失敗します。
Linux で CUDA アクセラレーションを使用する場合:
cargo install --path packages/pond --features cuda
macOS では Metal バックエンドが自動的に選択されます。それ以外のシステムでは、追加機能なしで CPU にフォールバックして動作します。Windows でソースからビルドする場合は、protoc(winget install Google.Protobuf)と NASM(winget install NASM.NASM を実行後、インストーラーでは追加されないため、自分で C:\Program Files\NASM を PATH に追加)が PATH に必要です。
どのインストール方法でも問題が発生した場合は、よくある停止要因をトラブルシューティングガイドで確認してください。
使い方
同期と検索
ストレージ、アダプター、MCP 登録、オプションの同期スケジュールをまとめて設定します(冪等です。修復や更新が必要なときは、いつでも再実行できます)。
pond init
次に、ローカルアダプターからセッションをインポートし、インデックスを更新して検索します。
pond sync
pond search "how did we wire up the OCC retry loop"
サーバーを実行する
pond serve # HTTP on 127.0.0.1:9797
pond serve --transport stdio # MCP over stdio
pond mcp # alias for stdio MCP
取得とコピー
単一のセッションまたはメッセージを取得するか、コーパス全体を移動します。
pond get-session <id>
pond get-message <id>
pond copy --from local --to snapshot.pond
pond copy --from snapshot.pond --to local
読み取り専用 SQL
読み取り専用 SQL を使って構造化された質問を行います(pond_sql MCP ツールと同じ機能です)。
pond sql "SELECT project, count(*) FROM messages GROUP BY project ORDER BY 2 DESC"
メンテナンス
必要に応じてメンテナンスを実行します(同期のたびにインデックスが統合されます)。
pond optimize --only embed # only when [embeddings].enabled = true
pond optimize --only index
定期同期
pond を自動的に最新の状態に保ちます(macOS では launchd、Linux では systemd ユーザータイマーまたは cron、Windows ではタスク スケジューラを使用します。Windows では、昇格していない通常のシェルから実行してください。昇格したシェルで実行すると、タスクの所有者が Administrators になります)。
pond schedule start # every 5m by default (--every 15m|1h|6h|1d)
pond schedule status
pond schedule logs
ステータスと内部情報
pond status は、テーブルごとのストレージテーブルに続いて、indexes(テキスト検索の準備状況と、埋め込みが有効な場合のみセマンティック検索の準備状況も表示)、stored(セッションとメッセージ)、agents(ストア内のソースエージェント)、およびこのホストから見た情報を表示します。このホストから見た情報には、アダプターごとの同期待ちセッション、直近の同期結果(スケジュール実行で発生したエラーも表示)、次回のスケジュール実行が含まれます。pond status --hosts は共有ストアを取り込みホストごとに分類して表示します。--include-subagents は、各サブエージェントを個別のエージェントとしてカウントします。pond sync --dry-run は、次回の同期で読み込まれる内容をプレビューします。pond search --explain は、各検索経路について Lance の analyze_plan の出力を返します。
リモートストレージ
デフォルトでは、pond はデータをローカルの ~/.local/share/pond(Windows では %LOCALAPPDATA%\pond\data)に保存します。オブジェクトストアを使うには、認証情報を追加して保存先を切り替えます。
pond creds add # interactive: name, access key, hidden secret
pond storage use s3+https://nbg1.your-objectstorage.com/my-pond # probe end-to-end, then flip [storage].path
pond storage check # verify: parse, creds, conditional-put (OCC), write/read/delete
pond init --storage-path <url> はセットアップ時にリモート保存先を設定し、保存先がリモートの場合は認証情報の入力をその場で求めるため、バケットの設定は 1 つのコマンドで完了します。s3+https://host/bucket 形式は、S3 互換ストア(Hetzner、R2、B2、MinIO)で使用できます。[creds.*] に一致する設定がない場合、s3://、gs://、az:// は標準のクラウド SDK 認証情報チェーンを使用します。pond copy --from <local> --to <url> は、既存のローカルデータをバケットにコピーします。冪等で、コピー元は削除されません。完了時にはコピー先のインデックスを再構築し、すべての行が取り込まれたことを検証します(不足または重複がある場合は終了コード 6 となるため、手作業で調整する必要はありません)。pond copy --verify-only --from <local> --to <url> は、コピーせずに読み取り専用で同じ検証を実行します。詳しい手順は、pond.locker をご覧ください。
設定
pond init では、以下のすべてを対話形式で設定でき、検出されたアダプターが有効になります。pond sync は、すでに有効になっているアダプターのみを取り込みます。アダプターの有効化は明示的な手順(pond adapters enable / pond adapters discover / pond init)で行い、同期によって自動的に有効になることはありません。設定は、macOS と Linux では ~/.config/pond/config.toml、Windows では %APPDATA%\pond\config.toml にあります(pond config path でパスを表示できます)。各 [adapters.<name>] ブロックで enabled = true にすると有効になります。この設定がないセクション(または enabled = false のセクション)はスキップされます。パス内の ~ は、すべてのプラットフォームで展開されます(Windows では %USERPROFILE%)。
[adapters.claude-code]
enabled = true
path = "~/.claude/projects"
[adapters.codex-cli]
enabled = false # kept in config, skipped on `pond sync`
path = "~/.codex/sessions"
検索はデフォルトで BM25 全文検索です。セマンティック検索はオプトインで、明示的に有効にしない限り無効です。無効の場合、pond のプロセスが埋め込みモデルをダウンロードまたは読み込むことはなく、新しいメッセージにベクトルは付与されず、--mode vector は拒否されます。設定または POND_EMBEDDINGS_ENABLED=true で有効にしてから、バックログを埋めるために一度 pond optimize --only embed を実行してください。
[embeddings]
enabled = true
コストや、異なる構成のホストが混在する場合の動作を含む詳細は、設定リファレンスをご覧ください。
サポート対象のハーネス
ハーネスごとにアダプターが1つあり、pond adapters の検出順に表示されます。Reads は、pond init が検出し、[adapters.<name>].path に書き込むパスです。POSIX 形式で表示されますが、Windows でもホームディレクトリからの相対構成は同じです(~/.claude/projects は %USERPROFILE%\.claude\projects です)。Last verified は、アダプターにコミットされたフィクスチャ(packages/pond/tests/fixtures/adapter/)の最新の取得日または更新日であり、マッピングのテスト対象となるコーパスの日付です。アダプターはベストエフォートで保守されています。また、フォーマットの変更に安全に対応できるよう設計されており、未知のレコード形式も損失なく取り込まれ、不正な入力はファイル名を示す型付きエラーとして表面化します。ハーネスの追加は通常の作業です。コントリビューションをご覧ください。
| アダプター | 読み込み対象 | 最終確認日 |
|---|---|---|
claude-code | Claude Code CLI、~/.claude/projects | 2026-08-14 |
claude-desktop-app | Claude Desktop / Cowork のローカルエージェントセッション | 2026-05-13 |
claude-ai-export | claude.ai のデータエクスポートアーカイブ(手動で --path を指定) | 2026-06-04 |
codex-cli | OpenAI Codex CLI、~/.codex/sessions | 2026-09-01 |
opencode | opencode、~/.local/share/opencode(opencode.db:1.x のテーブルと OpenCode 2 の session_v2 ストア、およびレガシー JSON ツリー) | 2026-10-12 |
openclaw | openclaw、~/.openclaw | 2026-05-13 |
nanoclaw | nanoclaw、~/nanoclaw(data/v2-sessions を含むインストールルート) | 2026-05-14 |
hermes | Hermes Agent、~/.hermes(プロファイルごとの state.db) | 2026-07-23 |
pi-coding-agent | pi、~/.pi/agent/sessions | 2026-08-06 |
oh-my-pi | oh-my-pi、~/.omp/agent/sessions(取り込みのみ) | 2026-08-14 |
letta-code | letta-code、~/.letta/transcripts(LETTA_TRANSCRIPT_ROOT で移動したルートは、明示的な path として設定します) | 2026-08-24 |
grok-build | grok-build(xAI の grok CLI)、~/.grok/sessions(移動した GROK_HOME は、明示的な path として設定します) | 2026-08-24 |
agy | Antigravity CLI とその ACP サーバー、~/.gemini(antigravity-cli/ と antigravity-acp/ の両方。移動した GEMINI_HOME は明示的な path として設定します。取り込みのみ) | 2026-09-10 |
devin | Devin CLI(Cognition の devin)、~/.local/share/devin/cli(sessions.db。Windows では %APPDATA%\devin\cli。移動した XDG_DATA_HOME は明示的な path として設定します。取り込みのみ) | 2026-09-26 |
詳細度
ルートレベルの -v / -vv / -vvv でトレースレベルを引き上げます(info / debug / trace)。-q / -qq で引き下げます。デフォルトでは警告のみが表示されます。RUST_LOG が設定されている場合、CLI フラグより優先されます。POND_LOG は現在使用されません。
設計
完全な仕様は docs/spec.md にあります。主な選択事項は次のとおりです。
- Lanceを直接使用し、ラッパーは使いません。 ストレージと検索エンジンは
lance-format/lanceクレートのみです。lancedbや並行する抽象化レイヤーはありません。ストレージ、インデックス作成、OCC、スキーマの進化、blob列、バージョン管理、タイムトラベルはすべてLanceが担います。読み取り専用のpond sqlインターフェースは、同じLanceデータセットに対するDataFusionのプランニング機能です。第2のエンジンではなく、クエリのための代替手段です。 - 正規のSession/Message/Part中間表現。 Effect v4の
Prompt側にあるPartユニオンに沿った形式で、pondが所有します。このスキーマはpondのプロダクトであり、それ以外はすべてその周辺の仕組みです。 - Lanceデータセットは3つ(
sessions、messages、parts)です。messagesには、単一段階のフィルタープッシュダウン用の非正規化フィルター列(source_agent/project/role/timestamp)とともに、null許容の埋め込み(vector+embedding_model)を格納します。 - 値を合成しないアダプター境界。 アダプターは、値を「作り出す」ことがコンパイルエラーになるエクストラクターヘルパーを通じてソースレコードを解析します。
model-no-synthesis、model-schema-honesty、adapter-provenance-requiredはレビュー規則ではなく、構造上の制約です。 - インデックスのライフサイクルを書き込みから分離。 書き込みでは、インデックスの統合を行わずにデータをコミットします(埋め込みが有効な場合、取り込み時にインラインで計算した埋め込みも含みます)。
pond syncはデフォルトでインデックスのメンテナンスを実行し、pond optimize --only indexは必要に応じて実行します。Lanceはインデックス結果を未インデックスのフラグメントに対するフラットスキャンとマージするため、読み取りの正確性は保たれます。 - 検索方式は1つだけです。 各クエリでは、
fts(BM25、デフォルト)またはvector(コサイン類似度。緩やかな新しさ優先のタイブレーカー付き。埋め込みが有効な場合のみ提供)から、クエリごとに選んだ1つの検索方式を実行します。サーバー側での融合はありません。--sort-by recencyは新しい順で返します。結果はsession_rootをキーとして、セッションごとに1件の要約にまとめられます。 - 言語に依存しない全文検索。 単語レベルの
simpleトークナイザーを使い、英語のステミングを行います(ASCIIの折りたたみを有効化)。ステマーが認識しないトークンは変更せずにそのまま通し、完全一致検索できる状態を保ちます。そのため、pondはあらゆる言語のセッションを同様にインデックス化します。 - 2つのトランスポートと1つのハンドラー群。 HTTP+JSON(axum)とMCP(rmcp)はどちらも同じハンドラーにディスパッチします。ワイヤー操作は
pond_search、pond_get_session、pond_get_message、pond_ingestです。MCPではさらに、読み取り専用のpond_sqlツールと、schema://pond、schema://pond-sql、stats://pondリソースも公開します。 - 不透明な文字列によるマルチテナンシー。 各テナントはインテグレーターが指定する
namespace文字列です。pondは認証、認可、アイデンティティのモデル化を行いません。オブジェクトストアのIAMがストレージ境界となります。 - 暗号化は運用面で行います。 バケットのSSEとファイルシステムの暗号化を使用します。pondは鍵を保持せず、アプリケーションレベルの暗号化も追加しません。
ロードマップ
pond は小さなステップでリリースされます。この表では、各ステップを順番に示しています。完了したステップも表に残ります。ロードマップボード には、各ステップと関連するイシューが掲載されています。イシューにリアクションするかコメントして、順序に影響を与えてください。
| # | ステップ | 状況 |
|---|---|---|
| 1 | Claude Code と Codex から Lance へ、ローカルまたは S3 にロスレスで取り込み | ✅ v0.5 |
| 2 | シングルアーム検索:BM25 またはベクトル検索を、クエリごとに 1 つのアームで実行 | ✅ v0.10 |
| 3 | リモート同期を 1 分未満で完了し、ウォーム検索を 1 秒未満で実行 | ✅ v0.11-v0.12 |
| 4 | ツール呼び出し用のカラムと、コーパスに対する読み取り専用 SQL | ✅ v0.13 |
| 5 | 開くと自己修復する、クラッシュに強いローカルストア | ✅ v0.14.0 |
| 6 | 11 個のハーネス、任意のクライアントへの pond resume、MCP レジストリ、Windows | ✅ v0.14.11 |
| 7 | BM25 をデフォルトのアームに。埋め込みはオプトインに。#164 | ✅ v0.15.0 |
| 8 | 新しいアダプターを日常的に追加:pond-add-adapter プレイブックと適合性ハーネス #172、letta-code #170、grok CLI #171 - 12 個のハーネス | ✅ v0.15.1 |
| 9 | Lance 10、続いて 11:count のプッシュダウン、日付フィルター用ゾーンマップ、ステマーの自己修復。#145 | ✅ v0.16.0-v0.17.0 |
| 10 | pond erase:唯一認められた削除。#45 | ⏭ 次 |
| 11 | リモート読み取りをローカル読み取りと同じ速さに。#165 | ⏳ 後日 |
| 12 | 名前空間:仕事用と個人用のセッションを分離。#166 | 🔧 進行中 (設計) |
| 13 | コピー、エクスポート、再開時に秘匿化。取り込み時には行いません。#167 | ⏳ 後日 |
| 14 | herdr プラグイン:稼働中かどうかを問わず、あらゆるマシン上のすべてのセッションを 1 つのリストに表示。再開、フォーク、引き継ぎに対応。#219 | ⏳ 後日 |
公開契約としての標準モデル:ATIF のエクスポートとインポート、/format ページ、安定性の保証。投票で決定し、番号付きの順序の対象外です。#180 | 🔧 進行中 | |
コミュニティアダプター:9 個のハーネスを募集中、プレイブック主導で追加 - Qwen Code、Crush、Cline、OpenHands、Copilot CLI、Cursor CLI、Droid、Kiro CLI、Roo/Zoo Code。adapter イシュー | 🙋 募集中 | |
| キャプチャデーモン。pond は、ハーネスがすでに書き込んでいるデータを読み取ります。 | ❌ 計画なし | |
| バケットを管理するホステッドサービス。ストレージは引き続き自分で管理できます。 | ❌ 計画なし | |
| 保存済みセッションの要約または整理。pond はセッションをそのまま保持します。 | ❌ 計画なし |
ステップ 7 はデータに基づいて決定しました。63 日間にわたり、エージェントはこのアーカイブに対して 1,126 回検索を実行しました。BM25 は 61% の確率で答えを見つけました。ベクトル検索では 37% でした。測定結果をご覧ください。
これは方向性であり、契約ではありません。データが変われば、順序も変わります。
参考資料
pond の標準モデルの形成に影響を与えた上流スキーマについては、docs/references/ に記載しています(ソース URL と各スキーマが重要な理由。ベンダー提供のコード自体は再配布していません)。実際のセッションキャプチャは packages/pond/tests/fixtures/adapter/ にあります。
| ソース | 重要な理由 |
|---|---|
| Effect-TS/effect | Effect v4 の Prompt/Response Part ユニオンです。pond の標準型はこの形を模倣しています。 |
| sst/opencode | Effect Schema の標準 Part ユニオン、SDK 型、ストレージスキーマです。 |
| kilo-org/kilocode | OpenCode のフォークです。editorContext、plan-followup、kilocode 固有のイベントを追加しています。 |
| badlogic/pi-mono | pi-coding-agent のリーフカーソル分岐と、プロバイダー横断の適合性テストマトリックスです。 |
| open-telemetry/semantic-conventions-genai | GenAI のセマンティック規約です。構造の重なりの参考にしていますが、pond は OTel に由来するものではありません。 |
packages/pond/tests/fixtures/adapter/ | 15 種類のソースハーネス(agy、claude_ai_export、claude_code、claude_desktop_app、claude_managed_agents、codex_cli、devin、grok-build、hermes、letta-code、nanoclaw、oh-my-pi、openclaw、opencode、pi-coding-agent)のセッションサンプルです(synthetic な hermes の state.db と生成された oh-my-pi コーパスを除き、実際のキャプチャを使用しています)。アダプターの設計に活用し、アダプターのテスト用フィクスチャとしても使用します。 |
貢献
Issue やプルリクエストを歓迎します。現在、特に役立つ貢献は次のとおりです。
- pond がまだ読み取れないハーネス用のアダプター。手順は
pond-add-adapterskill、プルリクエストの要件は CONTRIBUTING.md に記載しています。 docs/spec.mdへの仕様に関するフィードバック。docs/references/に記録する価値のある、追加の参照スキーマやセッションサンプルに関する情報。- v1 の機能(CLI の動詞、wire 操作、スキーマの不一致、OCC の動作、オブジェクトストアのバックエンド)に関するバグ報告。
規模の大きな変更については、ロードマップをご覧ください。作業を始める前に Issue にコメントして、範囲を合意しましょう。そのほかの大規模な変更についても、方向性を相談するため、まず Issue を作成してください。セキュリティに関する問題は、SECURITY.mdをご覧ください。
質問やフィードバックはありますか?GitHub Discussionを始めるか、Telegram または X で DM をお送りください。すべて自分で返信します。
リンク
- ドキュメント:pond.locker
- クレート:crates.io の pond-db
- MCP Registry 名:
mcp-name: io.github.tenequm/pond
ライセンス
Apache-2.0 (c) 2026 tenequm
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。