Skip to main content
Glama

cortex

家庭やチームのためのセルフホスト型ブレイン:人々が互いにチャットし、共有ノートを読んだエージェントともチャットできるダッシュボード——自分のモデルで、自分のマシン上で。

ステータス: alpha。 APIと設定の表面は固まりつつあります。マイナーバージョン間で破壊的変更が予想されます。インデックスとチェックポイントの形式は使い捨てのキャッシュです——.cortex/ を削除すると会話は失われますが、ノートは失われません。

pip install cortxai
cortex setup                 # wizard: brain dir, model endpoint, admin account
cortex serve --host 0.0.0.0  # dashboard on :8642

または bash install.sh(pipx/uv/venv 自動検出)、あるいは docker-compose.yml に記載された一度きりの cortex setup /brain の後に docker compose up を実行します。

やらないこと: cortex はモデルをホストしません——エンドポイントを持ち込む必要があります:Ollama、vLLM、LM Studio、LiteLLM プロキシ、OpenRouter、または Anthropic API。ベクトル検索はプロセス内の正確なコサイン類似度で、個人・チーム規模のブレインに適しており、数百万チャンクには不適切です。Vault の編集は last-writer-wins 方式で、競合の検出(409 とバナー)は行いますが、git レベルのマージは行いません。カレンダーコネクタはまだ繰り返しルールを展開しません。

ダッシュボード

  • チャット — エージェントとのプライベートスレッド。回答前に検索し、ツール呼び出しをストリーミングし(⚙ search_brain … ✓ 33ms)、ファイルをパスで引用します。引用をクリックすると vault ビューで開きます。

  • チャンネル — ブレイン上の人々のためのピアチャット。@cortex にメンションすると、エージェントがチャンネル内で回答します。共有 vault のみを読み、個人の vault は決して読みません。

  • Vault — 共有および個人の vault。ブラウザで Obsidian 風レンダリングで編集:[[wikilinks]]、![[embeds]]、> [!note] コールアウト、frontmatter、書き込みが反映されるタスクチェックボックス、#tags。Ctrl-S で保存。同時編集は競合バナーが表示され、静かに上書きされることはありません。

  • インポート — 既存の Obsidian vault を zip アップロード、git URL、またはサーバーパスとして取り込みます。.obsidian/、.git/、および vault 以外のファイルタイプはスキップされます。

  • 管理 — アカウント(admin / member)、インデックス統計。

アカウントはユーザー名 + パスワード(scrypt)、セッションは HttpOnly クッキーです。各ユーザーは共有 vault、自分の vault、コネクタソースを表示します——検索、grep、エージェントはリクエストごとにスコープされ、クエリ内でフィルタリングされ、後から切り詰められるのではありません。

Related MCP server: claudecode-mcp

エージェントスタック

LangChain チャットモデル上の LangGraph の ReAct エージェント。会話状態はスレッドごとに AsyncSqliteSaver チェックポイントに保存されます:

providers:
  local:
    kind: openai                    # Ollama, vLLM, LM Studio — one wire
    base_url: "http://localhost:11434/v1"
    chat_model: qwen3
    embed_model: nomic-embed-text
  router:
    kind: openrouter                # cloud aggregator, OpenAI wire
    api_key_env: OPENROUTER_API_KEY
    chat_model: anthropic/claude-sonnet-5
  claude:
    kind: anthropic                 # direct Anthropic Messages API
    api_key_env: ANTHROPIC_API_KEY
    chat_model: claude-sonnet-5
roles:
  chat: router
  embed: local

LiteLLM プロキシは kind: litellm とその base_url で指定します——ルーティングとフォールバックポリシーはプロキシ側に残るため、cortex は LiteLLM SDK を保持しません。エンドポイントはネットワークの事実によって分類されます:プライベート、ループバック、CGNAT、Tailscale アドレスは信頼され、公開アドレスはノートがネットワーク外に出るという平易な警告が表示されます。

検索はハイブリッド:SQLite FTS5 とベクトルコサインを別々にランク付けし、reciprocal rank fusion で融合し、新しさで調整——Cerebras のナレッジベースの設計です。チャンクスキーマまたは埋め込みモデルが変更されるとインデックスはゼロから再構築されます。ベクトル空間を静かに混ぜることは破損だからです。埋め込みエンドポイントがない場合は、偽のベクトルスコアではなく、その旨を明示する全文検索になります。

拡張する4つの方法

拡張

契約

実行タイミング

ツールプラグイン

plugins/*.py で register(registry) を公開、または cortex.tools エントリポイントを持つパッケージ

エージェント実行時

MCP サーバー

mcp_servers: ブロック(stdio または streamable HTTP)、langchain-mcp-adapters 経由で接続

エージェント実行時

スキル

skills/<name>/SKILL.md(agentskills.io)、use_skill 経由で遅延ロード

オンデマンド

コネクタ

connectors/*.py で sync(out_dir, settings) を公開——ダンプではなく蒸留

cortex connectors run

壊れた拡張は報告され隔離され、致命的にはなりません。登録は認可ではありません:機密に触れるツールは、呼び出し可能オブジェクト内に独自のチェックを保持します。

ダッシュボードから管理できます。 管理者専用の拡張パネルには、すべてのプラグイン、スキル、コネクタ、MCP サーバーが、提供内容、ロードエラーがあればその内容、ソースファイルを決して編集しない有効化トグルとともに一覧表示されます。プラグインやコネクタをブラウザで作成できます:保存前にロードされるため、インポートできないコードは、次のターンを静かに壊すのではなく、ローダー自身のメッセージで拒否され、保存に成功するとエージェントが再構築され、再起動なしで新しいツールが有効になります。コネクタには設定ボックスと「今すぐ実行」ボタンがあり、MCP サーバーにはフォームがあります。cortex.yaml で定義されたサーバーは読み取り専用で表示されます——ファイルが宣言したものの所有者であり続けます。

プラグインやコネクタを保存すると、そのコードが cortex ユーザーとしてサーバー上で実行されます。これは stdio MCP サーバーを設定するのと同じ信頼レベルであり、パネルが管理者専用である理由です。ターミナルからは、cortex ext list、cortex ext disable plugin <name>、cortex ext delete でブラウザなしで同じ管理ができます。

Cortex は MCP サーバーでもあります—— claude mcp add home-brain -- cortex mcp --brain ~/brain で Claude Code、Cursor、または Hermes に同じツールレジストリをボックス所有者スコープで提供します。

ブレインのレイアウト

~/brain/
├── cortex.yaml        # providers, roles, mcp servers, connectors
├── vaults/shared/     # everyone's notes
├── vaults/<user>/     # each user's private vault
├── sources/           # connector output
├── skills/ plugins/ connectors/
└── .cortex/           # index, checkpoints, usage.jsonl — disposable cache

フォルダをコピーしてバックアップします。ホームブレイン、カンパニーブレイン、クラブブレイン:3つのフォルダ、3つの cortex serve プロセス。

可観測性

すべてのモデル呼び出しとツール呼び出しは JSONL を .cortex/usage.jsonl に追記し、エンドポイントが報告する場合に prompt_tokens/completion_tokens を含みます——欠落したカウントはゼロになるのではなく欠落したままになります。これは preflight がキャリブレーションに期待するものです。テレメトリが呼び出しを失敗させることは決してありません。

開発

uv venv --python 3.12 && uv pip install -e '.[dev]'
.venv/bin/pytest                    # 102 tests
.venv/bin/ruff check src tests
cd web && npm install && npm run dev   # SPA dev server, proxies to :8642

フロントエンドの契約は docs/product-spec.md にあります。リリースの手順は RELEASING.md です。

ドキュメント: unchained-labs.github.io/cortex · ブランド: Unchained-Labs/branding · ライセンス: MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An MCP server that transforms Claude-style skills and resources into callable tools for any MCP-compatible agent or client. It automatically discovers, exposes, and executes scripts from skills organized in local directories or packaged archives.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Local MCP server that wraps the headless Claude Code CLI as MCP tools, providing stateless access to Claude's coding capabilities through prompt-based interactions. It enables users to execute Claude Code commands with various prompt formats and structured outputs directly from MCP clients.
    3
    MIT