cortex
cortex
Самостоятельный мозг для дома или команды: панель, где люди общаются друг с другом и с агентом, который прочитал их общие заметки — на вашей собственной модели, на вашей собственной машине.
Статус: альфа. 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 up после
одноразового cortex setup /brain, описанного в docker-compose.yml.
Чего он не делает: cortex не размещает модель — вы подключаете свою конечную точку: Ollama, vLLM, LM Studio, прокси LiteLLM, OpenRouter или API Anthropic. Векторный поиск — это точный косинус в процессе, подходящий для личных и командных мозгов, но не для миллионов фрагментов. Правки хранилища — это «последний пишущий побеждает» с обнаружением конфликтов (баннер 409), а не слияние уровня git. Календарный коннектор пока не раскрывает правила повторений.
Панель
Чаты — приватные переписки с агентом. Он ищет, прежде чем отвечать, стримит свои вызовы инструментов (⚙
search_brain… ✓ 33ms) и цитирует файлы по пути; клик по цитате открывает её в просмотре хранилища.Каналы — общие переписки для людей. Упомяните
@cortex— и агент ответит прямо в канале, читая только общее хранилище — никогда чьи-то личные.Хранилище — общие и личные хранилища, редактируемые в браузере с рендерингом в стиле Obsidian:
[[вики-ссылки]],![[встраивания]],> [!note]коллауты, frontmatter, чекбоксы задач с записью обратно,#теги. Ctrl-S сохраняет; параллельная правка даёт баннер конфликта, а не тихую перезапись.Импорт — перенесите существующее хранилище Obsidian через загрузку zip, git-URL или путь на сервере.
.obsidian/,.git/и не-заметочные типы файлов пропускаются.Администрирование — учётные записи (
admin/member), статистика индекса.
Учётные записи — это имя пользователя + пароль (scrypt), сессии — HttpOnly-куки. Каждый пользователь видит общее хранилище, своё личное и источники коннекторов — поиск, grep и агент ограничены в рамках запроса, фильтрация происходит внутри запроса, а не после него.
Related MCP server: claudecode-mcp
Стек агента
ReAct-агент LangGraph поверх чат-моделей LangChain, с состоянием переписки
в чекпоинтах 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 не несёт в себе SDK LiteLLM.
Конечные точки классифицируются по сетевым фактам: приватные, loopback, CGNAT и
адреса Tailscale считаются доверенными; всё публичное получает простое предупреждение,
что ваши заметки покинут сеть.
Поиск гибридный: SQLite FTS5 и векторный косинус ранжируются раздельно, затем объединяются с помощью reciprocal rank fusion и подправляются свежестью — та же схема, что в базе знаний Cerebras. Индекс пересобирается с нуля, когда меняется схема фрагментов или модель эмбеддингов, потому что тихое смешивание векторных пространств — это порча. Нет конечной точки эмбеддингов — значит, полнотекстовый поиск, который так и говорит, а не фальшивые векторные баллы.
Четыре способа расширить его
Расширение | Контракт | Запуск |
Плагин-инструмент |
| время агента |
MCP-сервер | блок | время агента |
Навык |
| по требованию |
Коннектор |
|
|
Сломанное расширение сообщается и изолируется, но не фатально. Регистрация — это не авторизация: инструмент, который трогает чувствительное, сам несёт проверки внутри своего вызова.
Управляйте ими с панели. Панель Расширения (только для админа) перечисляет
каждый плагин, навык, коннектор и 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Скопируйте папку — и всё. Домашний мозг, корпоративный мозг, клубный мозг:
три папки, три процесса 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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn 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.
- AlicenseAqualityBmaintenanceLocal 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.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to discover and execute tools via a secure MCP server with JWT authentication, RBAC, rate limiting, and audit logging.1MIT
- AlicenseNot gradedqualityAmaintenanceA self-hostable MCP server that turns a folder of skills into callable tools via MCP and REST APIs.2MIT
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Unchained-Labs/cortex'
If you have feedback or need assistance with the MCP directory API, please join our Discord server