wctx
wctx
Контекст рабочего пространства для агентов кодирования.
Ваша система охватывает несколько репозиториев. Контекст вашего агента тоже должен.
wctx capture --summary "what this session figured out" # at the end of a session
wctx search "has anyone looked at this?" # from any other repo, laterSession in Repo A
↓
discovers behavior in Repo B
↓
wctx
↓
fresh session in Repo B retrieves itСессия агента кодирования ограничена репозиторием, потому что именно там редактируются файлы. Исследуемая система — нет. Поэтому сессия в вашем UI-репозитории выясняет, что ошибка на самом деле в вашем SDK — а когда вы открываете новую сессию в SDK неделю спустя, эти знания исчезают.
wctx превращает завершённые сессии агентов в структурированный, подтверждённый доказательствами инженерный контекст и предоставляет его будущим сессиям через MCP. Локально-ориентированный: никакого облачного аккаунта, никаких эмбеддингов, никакой загрузки транскриптов.
Двухминутная демонстрация
pnpm install
pnpm demoНикакого API-ключа, никакой сети. Он создаёт три синтетических репозитория, импортирует завершённую сессию из одного, а затем задаёт вопрос на естественном языке из другого:
$ wctx search "Has the selfie session expiration issue already been investigated?" --repo websdk-demo
3 result(s) · 4 candidates · 14ms · searched websdk-demo plus 2 related repositories
1. WebSDK uploadSessionImage does not retry after session expiration [finding]
from websdk-demo · session ses_8d3fb1a5 · commit 45a4cab · confidence 0.87
· matches the query text
· same repository
· matches symbol uploadSessionImage
3. Verify UI delegates selfie upload to the WebSDK [finding]
from verify-ui-demo · session ses_8d3fb1a5 · commit b041200 · confidence 0.95
· matches the query text
· verify-ui-demo uses websdk-demo (direct consumer)
· high stated confidence (0.95)Затем файл SDK изменяется, и доказательства перестают быть достоверными:
$ wctx evidence verify ev_9ae81278
before: current — The repository is still at the source commit b60a991; nothing has changed.
after: stale — All 1 referenced file(s) changed in b60a991..1ceeaa4. Re-read the code
before relying on this.Полное прохождение: docs/demo.md.
Related MCP server: obsmcp
Установка
Требуется Node 22+ и git.
pnpm install
pnpm build
npm link # optional: puts `wctx` on your PATH
wctx init # creates ~/.wctx
wctx doctor # checks database, git, adapters, and prints MCP setup hintsНастройка MCP
claude mcp add wctx -- wctx mcpИли для Codex и других MCP-клиентов:
{ "mcpServers": { "wctx": { "command": "wctx", "args": ["mcp"] } } }Семь инструментов, упорядоченных для постепенного раскрытия, чтобы они оставались доступными в окне контекста:
Инструмент | Назначение |
| Ориентация в незнакомом репозитории: топология, недавние сессии, ключевые находки |
| Основной. Поиск по предыдущим сессиям в связанных репозиториях |
| Один элемент полностью, с полной информацией о происхождении |
| Всё из одной сессии (транскрипт — только при явном согласии) |
| Как этот репозиторий связан с другими и в каком направлении |
| Изменился ли указанный код с момента записи? |
| Единственный инструмент записи: зафиксировать, что узнала эта сессия |
wctx mcp-info выводит поверхность и фрагменты конфигурации клиента.
Запись того, что узнала сессия
Одна команда в конце сессии. Она импортирует сессию, если необходимо, и записывает доказательства за один шаг, по умолчанию используя сессию, в которой вы работаете:
wctx capture --summary "Traced the upload failure into the SDK" \
--finding "SDK swallows the 419 :: uploadSessionImage returns it as terminal, no retry" \
--repo my-sdk \
--file "src/session/upload.ts#uploadSessionImage"Или просто попросите вашего агента сделать это — "запиши, что мы узнали" — и он вызовет finalize_session со своим собственным идентификатором сессии. Ему никогда не нужно знать внутренний идентификатор, а повторный вызов в одной сессии накапливает доказательства, а не дублирует сессию.
Как сделать это проактивным
Агент делает это только в том случае, если что-то ему говорит об этом, и самое надёжное место для этого — собственный файл агента проекта; они читаются при каждом запросе:
wctx instructions # print the guidance
wctx instructions --write # install it into CLAUDE.md / AGENTS.md (idempotent)Инструкции охватывают, когда искать (перед исследованием чего-либо нетривиального), когда записывать (коренные причины, решения с обоснованием, с трудом добытые ограничения, нерешённые вопросы, неожиданности) и что не записывать. Это разница между инструментом, который вы помните использовать, и тем, который накапливается сам.
Если сводка не предоставлена вовсе, wctx capture выводит фактическую на основе записанной активности инструментов сессии — количество файлов, команд, ошибок, изменённых файлов. Намеренно скучно: придумывание повествования из вызовов инструментов было бы той самой уверенной бессмыслицей, которую этот проект отказывается производить.
Основные концепции
Рабочее пространство — логический продукт, находящийся над репозиториями. Граница контекста. Репозитории остаются границей редактирования; ничто здесь не расширяет область записи агента.
Репозиторий — зарегистрированная git-рабочая копия, идентифицируемая по её реальному пути, чтобы один и тот же репозиторий не мог быть зарегистрирован дважды через символическую ссылку или подкаталог. Он может принадлежать нескольким рабочим пространствам.
Связь — объявленное, направленное, типизированное ребро (uses, depends_on, calls, imports, consumes_api, provides_api, shares_schema_with, related). Обход следует по рёбрам в обоих направлениях, потому что если verify-ui использует websdk, то сессия в websdk всё равно хочет знать, что узнал verify-ui.
Сессия — нормализованная сессия агента кодирования из Xirp, Claude Code или универсального JSONL, с её рабочей директорией, веткой, коммитом, сообщениями и активностью инструментов.
Доказательство — находка, решение, изменение, нерешённый вопрос, известная проблема, архитектурная заметка или ограничение, прикреплённое к репозиторию, о котором оно (часто не тому, в котором проходила сессия), с указанием файлов и символов, которых оно касается, и коммита, на котором оно было истинно.
Свежесть — основанный на git вердикт о том, изменились ли указанные файлы с момента этого коммита: current (актуально), possibly_stale (возможно устарело), stale (устарело) или unknown (неизвестно).
Архитектура
Xirp · Claude Code · Codex · generic JSONL
↓
session adapters ← the only code that knows a vendor format
↓
NormalizedSession
↓ ↓
transcript copy deterministic extraction (files, commands, errors — no LLM)
↓
structured evidence (findings, decisions, questions)
↓
workspace catalog · SQLite + FTS5 + git
↓
CLI · MCP · web UI ← one service layer, no duplicated logicПодробности и обоснование каждой границы: docs/architecture.md.
Статус интеграции с Xirp
Xirp оказался с открытым, документированным путём чтения, поэтому адаптер реален, а не заглушка.
Вопрос | Статус |
Экспорт сессии существует | ПОДТВЕРЖДЕНО — |
Стабильный идентификатор сессии | ПОДТВЕРЖДЕНО — переживает перемещения обвязки; собственный идентификатор обвязки — нет |
Атрибуция репозитория | ПОДТВЕРЖДЕНО — |
Вызовы инструментов и файловые операции | ПОДТВЕРЖДЕНО — восстанавливаемы по сообщению |
Кому принадлежит транскрипт | ПОДТВЕРЖДЕНО — обвязке, а не Xirp |
Хук завершения сессии | ВЕРОЯТНО — хуки |
Конфигурация MCP | ВЕРОЯТНО делегирована базовой обвязке |
Стабильность схемы между версиями | НЕИЗВЕСТНО — наблюдалась только Xirp 0.12.1 с обвязкой |
Адаптер фиксирует обе строки схемы и громко сообщает об ошибке при неизвестной версии, а не угадывает. Полные доказательства, включая то, что остаётся непроверенным и как это воспроизвести: docs/research/xirp.md.
Безопасность
Ничто не покидает вашу машину. Никакого облака, никакой телеметрии, никакого API эмбеддингов, никакой загрузки транскриптов; весь список зависимостей — это @modelcontextprotocol/server, better-sqlite3, commander и zod.
Транскрипты копируются в ваш каталог данных (Claude Code удаляет свои через 30 дней) вместе с отредактированной копией — и предоставляется только отредактированная копия.
Редактирование охватывает закрытые ключи, JWT, заголовки авторизации, токены AWS/GitHub/Slack/OpenAI/Google, URL с учётными данными и присвоения секретов. Это сопоставление с образцом, выполняемое по мере возможности, и не является гарантией того, что транскрипт безопасен для распространения.
Доказательства, возвращаемые агентам, помечаются как исторические, ненадёжные данные, а строки, похожие на инструкции ("игнорируй все предыдущие инструкции"), нейтрализуются. Смягчение, а не иммунитет.
Каждый вызов git использует массив аргументов, никогда не строку оболочки. Запросы FTS5 конструируются, никогда не интерполируются.
Удаление транскриптов и удаление доказательств — независимые операции.
Подробности: docs/security.md.
Сравнение с существующими инструментами
Заявления о возможностях взяты из собственных README каждого проекта, проверены 2026-08-13. Ничто здесь не утверждает, что другой проект не может чего-то делать.
Проект | Основная сильная сторона | Что wctx делает иначе |
Широкий автоматический захват: 12 хуков жизненного цикла, 54 MCP-инструмента, эмбеддинги, повтор сессий | Оптимизирован под один вопрос — что узнала предыдущая сессия в связанном репозитории — с 7 инструментами и топологией рабочего пространства в качестве ключа маршрутизации | |
Лёгкая, не зависящая от агента локальная память: Go-бинарник, SQLite + FTS5, MCP/HTTP/CLI/TUI | Доказательства после сессии с указанием коммита, файла и символа, а также вердикт об устаревании | |
Многорепозиторные рабочие пространства, наблюдения + ADR, межрепозиторные рёбра, выведенные из импортов и контрактов | Его единица — это наблюдение, записанное во время коммита; наша — завершённая сессия, разложенная на доказательства, а наши рёбра объявлены и управляют объяснимым ранжированием | |
Память репозитория и организации из истории PR GitHub, с уверенностью, свежестью и межрепозиторным влиянием | PR записывают, что было слито; мы индексируем исследование — включая тупики и нерешённые вопросы — и не требуем аутентификации GitHub | |
Ночная консолидация завершённых транскриптов Claude в долговечные факты | Та же философия (после сессии лучше, чем дисциплина во время сессии), расширенная на несколько агентов и многорепозиторное рабочее пространство | |
Курируемое, доступное для обмена дерево контекста | Происхождение и свежесть вместо курирования | |
Интеллект кода: 158 языков в графе знаний, запросы за доли миллисекунды | Дополняет — тот индексирует код, каков он сейчас; этот индексирует, что сессии узнали о нём |
Полный обзор с границей памяти каждого проекта, механизмом захвата и тем, что было использовано в качестве идеи: docs/research/competitive-landscape.md.
Оценка
На синтетическом корпусе из 15 запросов, 28 элементов (pnpm eval) соответствующая предыдущая сессия появилась в первой пятёрке для 15 из 15 запросов и заняла первое место для 11 из 15, с медианной задержкой локального поиска 1,6 мс. Добавление топологии рабочего пространства к обычному FTS5 оставило частоту попаданий на этом корпусе неизменной, но улучшило MRR с 0,839 до 0,867, сделало атрибуцию репозитория точной (0,93 → 1,00) и исключило результаты из несвязанных репозиториев (0,20 → 0,00 на запрос).
Корпус мал, синтетичен и написан тем же человеком, который писал запросы. Что это означает для чтения цифр, подробно описано в docs/evaluation.md.
Ограничения
Честный список, полностью: KNOWN_LIMITATIONS.md. Три наиболее важных:
Поиск ориентирован на ключевые слова. FTS5 сопоставляет токены. Полностью перефразированный запрос без лексического пересечения может пропустить результат; структурные повышения лишь частично компенсируют.
Свежесть — это не верификация. Он отвечает на вопрос «изменились ли упомянутые файлы?», но никогда — «верно ли это утверждение до сих пор». Изменение поведения в нетронутом файле невидимо.
Связи объявляются, а не выводятся. Необъявленная связь невидима для ранжирования.
Дорожная карта
Отсортировано по степени улучшения основного цикла:
Автоматическое завершение сессии через хук
stopобвязки (сейчас вручную).Укрепление адаптера Xirp в разных версиях и обвязок
codex/gemini.Обнаружение конфликтов и предложения по замене — схема поддерживает и то, и другое; никто их не заполняет.
Импорт Backstage / Portal
catalog-info.yamlза существующим швомCatalogProvider.Более сложный корпус для оценки с почти дублирующимися находками, чтобы проверить, помогает ли топология находить, а не только упорядочивать.
Участие в разработке
См. CONTRIBUTING.md. Должны проходить pnpm typecheck && pnpm lint && pnpm test, а pnpm demo должно работать из чистой копии без учетных данных.
Атрибуция и отсутствие принадлежности
wctx — это независимый эксперимент с открытым исходным кодом, вдохновленный публичными идеями Xirp, Spotify Portal, Backstage и MCP.
Он не связан с Spotify и не одобрен им.
Никакой исходный код из проектов таблицы сравнения не был скопирован. Различие между компонентом и системой в Backstage используется как источник вдохновения, а не как зависимость времени выполнения, и никакой экземпляр Backstage не требуется.
Лицензия
MIT. См. LICENSE.
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
- Flicense-quality-maintenanceAn MCP server that provides persistent project context, workflow management, and knowledge capture for AI coding agents. It enables agents to maintain structured memory across sessions by tracking project profiles, conventions, skills, and technical debt.7
- Alicense-qualityDmaintenanceA local-first MCP server and continuity control plane that helps AI coding tools maintain project state, tasks, and context across sessions, models, and interruptions, with features like session tracking, token-efficient context assembly, and code understanding via Code Atlas.MIT
- AlicenseAqualityBmaintenanceAn MCP server that indexes reference repositories and provides tools for AI coding agents to retrieve lossless code context, enabling reasoning over codebases larger than the agent's context window.82Apache 2.0
- Alicense-qualityAmaintenanceAn MCP server that indexes codebases into a local graph and provides on-demand context retrieval for AI coding agents, reducing token usage by tracking session history and delivering only relevant code subgraphs.17MIT
Related MCP Connectors
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
One shared context your team's AI tools read & write over MCP. No re-explaining. Free.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/Haroon-jay/wctx'
If you have feedback or need assistance with the MCP directory API, please join our Discord server