Skip to main content
Glama

Pindoc

CI License MCP

AI支援開発のための、コードに紐付いたチームメモリ。 エージェントが永続的な記録を作成し、人間がレビュー、議論、そして方向付けを行います。

Pindocは、AIコーディングエージェントと連携するチームのためのセルフホスト型プロジェクトメモリシステムです。エージェントによる有用な発見を、決定、デバッグ経路、タスク完了報告、検証メモ、コードに関連付けられた分析といった「型付きアーティファクト」に変換します。すべてのアーティファクトはプロジェクト領域にスコープされ、コミット、ファイル、URL、リソース、または関連するPindocアーティファクトに紐付けられます。

これは、これまで誰も書き込むことのなかったWikiのようなものですが、単なる自動化が目的ではありません。Pindocは、チームメイトや将来のエージェントが再利用できるエージェントの作業内容を保持します。

なぜ存在するのか

AIコーディングセッションは生産的ですが、チームのコンテキストは依然として見落とされがちです:

  • デバッグ経路がターミナルセッションの終了とともに消えてしまう

  • 同じ決定事項が新しいエージェントごとに説明し直される

  • 有用な分析がチームの知識にならず、特定のオペレーターのチャット内に留まる

  • Wiki、課題追跡システム、PR、コミットメッセージ間で重複するドキュメントが蓄積される

  • 実際のプロジェクト環境では、問題を発見した人が必ずしもすぐにコードを変更できるとは限らない。構造化された証拠は、チームが議論し決定を下す助けとなる

Pindocは、残す価値のあるエージェントの作業を、検索可能でコードに紐付いたチームメモリに変換します。次のチームメイトやコーディングエージェントは、編集を行う前にPindocに何が重要かを尋ねることができます。

Pindocの違い

  • 共同メモリレイヤー: アーティファクトはプライベートなチャットの要約ではなく、チームメイトや将来のエージェントのために書かれます。

  • エージェント専用の書き込みインターフェース: リーダーUIは読み取りとレビュー用であり、永続的な書き込みはエージェントを通じて行われます。

  • MCPネイティブなワークフロー: pindoc.context_for_taskpindoc.artifact.proposepindoc.task.queue などのツールが、単なる薄いCRUD APIとしてではなく、エージェントの動作を制御します。

  • 型付きアーティファクト: 決定、分析、デバッグ、フロー、タスク、TC(テストケース)、用語集、およびドメインパック型。

  • コードに紐付いたメモリ: アーティファクトはコミット、ファイル、行範囲、リソース、URL、および関連するアーティファクトを指し示すことができます。

  • 記録に値する設計: Pindocは生のチャットアーカイブを避け、将来価値のある決定、分析、デバッグ経路、検証、タスクコンテキストのみを保持します。

  • マルチプロジェクトデーモン: 1つの /mcp エンドポイントで複数のプロジェクトを処理でき、各ツール呼び出しは project_slug を保持します。

  • セルフホスト第一: Docker Composeにより、Postgres、pgvector、Pindocデーモン、およびリーダーSPAを起動します。

パブリックデモ

読み取り専用のパブリックデモは追跡中のタスクであり、このOSSリリースには含まれていません。公開されるまでは、README、docs/、およびセルフホストしたクローンが主な証明となります。Pindocをエンドツーエンドで評価したいオペレーターは、docker compose up -d --build を実行して自身のアーティファクトを調査してください。

フォローアップのデモ計画は、ホストされたインスタンスが適切な時期のために Public Demo Plan に保持されています。

クイックスタート

前提条件:

  • Docker 27以上

  • ローカルでのドッグフーディングや小規模チームでの使用には、2 CPUコアと4 GB RAMを推奨

  • Dockerイメージ、Postgresデータ、埋め込みキャッシュ用に5 GBの空きディスクを推奨。新規クローン直後の最小構成では2 GB

  • 初回実行時にバンドルされたEmbeddingGemmaモデルとランタイムをキャッシュするため、アウトバウンドのHTTPS接続が必要

  • ホストネイティブ開発のみGo 1.25以上

  • Docker外でのWeb開発のみNode 20.15以上およびpnpm 10以上

デフォルトのDockerパスには、バンドルされたEmbeddingGemma Q4 ONNXプロバイダーを通じたセマンティック検索が含まれているため、埋め込み用のサイドカーは不要です。最小およびオプションのデプロイメントプロファイルについては System Requirements を参照してください。

git clone https://github.com/var-gg/pindoc.git
cd pindoc
docker compose up -d --build

リーダーを開く:

http://localhost:5830/

新規インスタンスでは、/ は最初のプロジェクトウィザードにリダイレクトされます。そのウィザードを直接開くには:

http://localhost:5830/projects/new?welcome=1

MCPクライアントの接続

Dockerデーモンは、アカウントレベルのMCPエンドポイントを1つ公開します:

{
  "mcpServers": {
    "pindoc": {
      "type": "http",
      "url": "http://127.0.0.1:5830/mcp"
    }
  }
}

プロジェクトのスコープはURLにはエンコードされていません。エージェントはプロジェクトスコープのツール呼び出し時に project_slug を渡します。pindoc.harness.install によって生成されたワークスペースは、そのスラッグを PINDOC.md のフロントマターに保存します。

一般的なワークフロー

プロジェクトのコンテキストを持って作業を開始するようエージェントに依頼します:

Use Pindoc context before editing. Find the current project, inspect assigned
Tasks, then implement the next acceptance item.

典型的なMCPループ:

  1. pindoc.workspace.detect

  2. pindoc.task.queue

  3. pindoc.context_for_task

  4. コードまたはドキュメントの作業

  5. pindoc.artifact.propose

  6. タスクの承認と完了状態の更新

設定

デフォルトのDockerパスはシングルユーザーかつループバック専用です:

変数

デフォルト

目的

PINDOC_DAEMON_PORT

5830

Docker Composeで使用されるホストポート。

PINDOC_PROJECT

pindoc

スコープ外の読み取り/設定用のデフォルトプロジェクト。

PINDOC_PUBLIC_BASE_URL

http://127.0.0.1:${PINDOC_DAEMON_PORT}

生成されたリンクやOAuthメタデータで使用されるパブリックベースURL。

PINDOC_BIND_ADDR

127.0.0.1:5830

セキュリティの意図。ループバック以外を使用する場合はIdPまたは明示的なパブリック認証なしのオプトインが必要。

PINDOC_AUTH_PROVIDERS

外部リクエストに対して有効なIDプロバイダー。現在のプロバイダー: github

PINDOC_ALLOW_PUBLIC_UNAUTHENTICATED

false

IDプロバイダーなしで外部公開するための明示的なオプトイン。信頼できるネットワーク/リバースプロキシの背後でのみ使用すること。

PINDOC_FORCE_OAUTH_LOCAL

false

ローカルQAのためにループバック /mcp 呼び出しをOAuthベアラ認証経由でルーティングする開発フラグ。

IDプロバイダーなしで書き込み可能なデーモンをパブリックインターネットに公開しないでください。パブリックな読み取り専用デモの場合は、リバースプロキシで /mcp および変更を伴うHTTPルートをブロックしてください。SECURITY.md および docs/22-public-demo.md を参照してください。

書き込み可能なパブリックインスタンスやクロスデバイスインスタンスについては、docs/oauth-setup.md に従ってください。GitHub OAuthアプリの設定、${PINDOC_PUBLIC_BASE_URL}/auth/github/callback コールバックルール、ランタイムMCPクライアント登録、および PINDOC_FORCE_OAUTH_LOCAL を使用したローカルOAuth QAについて説明しています。

開発

# Run Go tests. Integration tests that need Postgres are skipped unless
# PINDOC_TEST_DATABASE_URL is set.
go test ./...

# Web checks.
cd web
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test:unit
pnpm build

# Full image build.
docker build -t pindoc-server:local .

127.0.0.1 経由で接続しながらローカルでOAuthベアラパスをテストするには、PINDOC_FORCE_OAUTH_LOCAL=true を設定します。デーモンは起動時に警告を発し、ループバック /mcp 呼び出しに対してベアラトークンを要求するようになります。

ローカルのCツールチェーンがないWindowsホストでは、Dockerを通じてGoテストを実行してください:

docker run --rm -v "${PWD}:/work" -w /work golang:1.25 go test ./...

ドキュメント

ステータス

Pindocは現在アクティブなドッグフーディング中です。ローカルのセルフホストパス、リーダーUI、プロジェクト/エリアモデル、アーティファクト提案フロー、タスクキュー、リビジョン履歴、要約、および実際の埋め込みプロバイダーパスが実装されています。パブリックOSSローンチのトラックは、初回実行時の信頼性、読み取り専用のドッグフーディングデモ、CI、セキュリティドキュメント、およびより明確な共同作業のポジショニングに焦点を当てています。

ライセンス

Apache License 2.0。LICENSE を参照してください。

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
2Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/var-gg/pindoc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server