codex-lcm
codex-lcm
Локальное управление контекстом без потерь для OpenAI Codex CLI.
codex-lcm захватывает события диалогов Codex в SQLite, уплотняет более старый контекст в иерархию сводок без удаления исходных сообщений, восстанавливает релевантный контекст при запуске сеанса и предоставляет лексический поиск через локальный MCP-сервер.
Смысл «без потерь»: исходное содержимое сохраняется после заданного редактирования секретов. Поисковые предпросмотры инструментов ограничены, а полные отредактированные входные и выходные данные инструментов остаются доступными через постраничное разворачивание.
Статус и платформа
codex-lcm — это бета-программное обеспечение для macOS. Оно полагается на хуки Codex и POSIX flock; Windows и Linux в настоящее время не поддерживаются и не заявляются.
Related MCP server: Codex Native Memory
Возможности
Живой захват: пользовательские подсказки, ответы ассистента и активность инструментов захватываются через хуки Codex.
Надёжное локальное хранилище: SQLite в режиме WAL хранит необработанные сообщения, структурированные части сообщений, сводки и индексы FTS5.
Иерархическое уплотнение: более старые сообщения становятся листовыми сводками; подходящие серии сводок могут быть сжаты в более глубокие узлы DAG. Исходные строки никогда не удаляются автоматически.
Восстановление контекста: активные сводки и самые новые несжатые сообщения внедряются при запуске сеанса в пределах строгого ограничения размера.
Локальный поиск: шесть инструментов stdio MCP обеспечивают лексический поиск, поиск недавних сеансов, проверку метаданных и постраничное разворачивание исходных данных.
Отказоустойчивые хуки: сбои захвата или уплотнения не блокируют ход выполнения Codex.
Контроль безопасности: редактирование секретов, блокировки уплотнения для каждого сеанса, атомарные записи сообщений/FTS, резервирование вызовов провайдера, проверки прогресса и приватные права доступа к файлам по умолчанию.
Установка из репозитория
python3 -m venv ~/.codex-lcm/venv
~/.codex-lcm/venv/bin/python -m pip install .
~/.codex-lcm/venv/bin/codex-lcm install
~/.codex-lcm/venv/bin/codex-lcm doctorПерезапустите Codex после установки. Используйте /hooks в Codex для проверки и доверия установленным хукам.
Установщик объединяет записи codex-lcm в ~/.codex/hooks.json и ~/.codex/config.toml. Он создаёт резервные копии с метками времени перед изменением существующих файлов. Повторный запуск установщика идемпотентен.
Исходный код также включает scripts/install.sh, который выполняет ту же изолированную установку и проверку.
Необязательная LLM-суммаризация
На Python 3.11+ основной пакет не имеет сторонних зависимостей времени выполнения. Python 3.10 устанавливает совместимый бэкпорт tomli для безопасной обработки конфигурации TOML. Без LLM-клиента уплотнение использует детерминированное усечение по началу и концу.
Чтобы включить суммаризацию, совместимую с OpenAI, установите дополнительный пакет и настройте учётные данные:
~/.codex-lcm/venv/bin/python -m pip install ".[llm]"
export CODEX_LCM_API_KEY="..."OPENAI_API_KEY также распознаётся. Используйте CODEX_LCM_BASE_URL или OPENAI_BASE_URL для конечной точки, совместимой с OpenAI. Настройки провайдера CODEX_LCM_* обрабатываются как пара и имеют приоритет как пара, поэтому глобальный ключ никогда не отправляется на ограниченную конечную точку. Если задан CODEX_LCM_BASE_URL, настройте также CODEX_LCM_API_KEY.
CLI
codex-lcm install Wire hooks and the MCP server into Codex
codex-lcm uninstall Remove codex-lcm wiring and keep stored data
codex-lcm status Show database statistics
codex-lcm doctor Verify package, database, hooks, and MCP wiring
codex-lcm compact --session <id> Compact one session synchronously
codex-lcm compact --all Compact every recorded session synchronouslyУдаление не удаляет ~/.codex-lcm/ или его базу данных.
Инструменты MCP
Инструмент | Назначение |
| Статистика базы данных и активного сеанса |
| Буквальный и FTS5-лексический поиск по сообщениям и сводкам |
| Ранжированный лексический поиск с ограниченным количеством результатов |
| Просмотр исходных данных сводки или постраничное восстановление необработанных сообщений |
| Сеансы, обновлённые в окне обратного просмотра UTC |
| Метаданные сеанса или сводки |
Поиск лексический, а не семантический: в этом выпуске нет заявлений о встраиваниях или векторной схожести.
Конфигурация
Конфигурация считывается из переменных окружения.
Переменная | По умолчанию | Назначение |
|
| Путь к базе данных SQLite |
|
| Новейшие необработанные сообщения, защищённые от уплотнения |
|
| Максимальное оценочное количество токенов в листовом фрагменте |
|
| Активные листовые сводки, необходимые для конденсации |
|
| Активные более глубокие сводки, необходимые для конденсации |
|
| Раундов уплотнения за один запуск рабочего процесса |
|
| Попыток обращения к провайдеру за сеанс и окно вызовов |
|
| Окно учёта попыток обращения к провайдеру |
|
| Тайм-аут запроса к провайдеру |
|
| Помечает запуск уплотнения как остановившийся ниже этого коэффициента экономии |
|
| Бюджет восстановления контекста в оценочных токенах |
|
| Дополнительные несжатые сообщения, разрешённые перед запуском рабочего процесса |
|
| Модель суммаризации листовых сводок |
|
| Модель конденсации |
| — | Необязательные учётные данные провайдера |
| — | Необязательная конечная точка, совместимая с OpenAI |
|
| Установите |
|
| Длина предпросмотра входных данных инструмента для поиска |
|
| Длина предпросмотра выходных данных инструмента для поиска |
Каталог данных по умолчанию имеет режим 0700; база данных, боковые файлы WAL, файлы блокировок и журнал уплотнения имеют режим 0600 на системах POSIX.
Границы данных и безопасности
Редактирование выполняется до сохранения для известных ключей API, токенов, заголовков авторизации, назначений паролей/секретов, JWT и закрытых ключей PEM.
URL-адреса удалённых репозиториев Git, содержащие учётные данные, хранятся без информации о пользователе, параметров запроса или фрагментов.
Редактирование — это защита в глубину, а не гарантия распознавания всех возможных форматов секретов.
Полные отредактированные полезные данные инструментов могут по-прежнему содержать приватные данные диалогов или проектов. Соответственно защищайте локальную учётную запись и резервные копии базы данных.
Никакие данные не отправляются LLM-провайдеру, если не установлен дополнительный клиент и не настроены учётные данные провайдера или базовый URL.
Автоматическое хранение и удаление намеренно отсутствуют. Приложение не удаляет молча историю исходных данных.
Разработка
Используйте локальное окружение проекта; тестам никогда не нужен живой профиль Codex или база данных.
python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m pytest -q
.venv/bin/python tests/smoke_test.py
.venv/bin/python tests/reliability_test.py
.venv/bin/python tests/package_test.py
.venv/bin/ruff check .
.venv/bin/bandit -q -r codex_lcmТестовый пакет собирается и устанавливается во временный домашний каталог и виртуальное окружение. Скрипты проверки и надёжности также используют временные базы данных.
См. DESIGN.md для модели хранения, инвариантов, потока хуков и поведения при сбоях.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-tool persistent memory and context for AI assistants over MCP.
Persistent memory for AI agents to retain, retrieve, and recall conversation context through MCP.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
A paid remote MCP for OpenAI Codex context compressor, built to return verdicts, receipts, usage log
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI coding agents to maintain persistent, cross-session memory of codebase architecture, naming conventions, and decisions through MCP tools. Eliminates repetitive project re-explanation by automatically injecting stored context into every session with local-first SQLite storage and optional team sharing capabilities.4MIT
- AlicenseBqualityCmaintenanceProvides local cross-session memory for Codex by importing transcripts, indexing in SQLite, and exposing search, context, and memory management through MCP tools.13MIT
- FlicenseNot gradedqualityCmaintenanceCollects session JSONL from Codex and Claude Code into local SQLite memory, exposed through MCP with tools for memory context, search, get, put, forget, sleep, and status.-
- AlicenseAqualityAmaintenancePersistent memory for AI coding agents, storing decisions, bug fixes, conventions, and discoveries in a local SQLite database and automatically recalling them when relevant. Works with Claude Code, Codex, Cursor, Gemini CLI, and other MCP-compatible agents.222MIT