Skip to main content
Glama

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

Инструмент

Назначение

lcm_status

Статистика базы данных и активного сеанса

lcm_grep

Буквальный и FTS5-лексический поиск по сообщениям и сводкам

lcm_recall

Ранжированный лексический поиск с ограниченным количеством результатов

lcm_expand

Просмотр исходных данных сводки или постраничное восстановление необработанных сообщений

lcm_recent

Сеансы, обновлённые в окне обратного просмотра UTC

lcm_describe

Метаданные сеанса или сводки

Поиск лексический, а не семантический: в этом выпуске нет заявлений о встраиваниях или векторной схожести.

Конфигурация

Конфигурация считывается из переменных окружения.

Переменная

По умолчанию

Назначение

CODEX_LCM_DB_PATH

~/.codex-lcm/codex-lcm.db

Путь к базе данных SQLite

CODEX_LCM_FRESH_TAIL

25

Новейшие необработанные сообщения, защищённые от уплотнения

CODEX_LCM_LEAF_CHUNK_TOKENS

20000

Максимальное оценочное количество токенов в листовом фрагменте

CODEX_LCM_LEAF_MIN_FANOUT

3

Активные листовые сводки, необходимые для конденсации

CODEX_LCM_CONDENSED_MIN_FANOUT

3

Активные более глубокие сводки, необходимые для конденсации

CODEX_LCM_MAX_ROUNDS

5

Раундов уплотнения за один запуск рабочего процесса

CODEX_LCM_MAX_SUMMARY_CALLS

12

Попыток обращения к провайдеру за сеанс и окно вызовов

CODEX_LCM_SUMMARY_CALL_WINDOW_MS

600000

Окно учёта попыток обращения к провайдеру

CODEX_LCM_SUMMARY_TIMEOUT_MS

60000

Тайм-аут запроса к провайдеру

CODEX_LCM_PROGRESS_THRESHOLD

0.10

Помечает запуск уплотнения как остановившийся ниже этого коэффициента экономии

CODEX_LCM_ADDITIONAL_CONTEXT_LIMIT

5000

Бюджет восстановления контекста в оценочных токенах

CODEX_LCM_COMPACTION_BACKLOG

5

Дополнительные несжатые сообщения, разрешённые перед запуском рабочего процесса Stop

CODEX_LCM_COMPACTION_MODEL

gpt-4.1-mini

Модель суммаризации листовых сводок

CODEX_LCM_CONDENSATION_MODEL

gpt-4.1

Модель конденсации

CODEX_LCM_API_KEY / OPENAI_API_KEY

—

Необязательные учётные данные провайдера

CODEX_LCM_BASE_URL / OPENAI_BASE_URL

—

Необязательная конечная точка, совместимая с OpenAI

CODEX_LCM_CAPTURE_TOOLS

1

Установите 0, чтобы отключить захват инструментов

CODEX_LCM_TOOL_INPUT_MAX_CHARS

2000

Длина предпросмотра входных данных инструмента для поиска

CODEX_LCM_TOOL_RESULT_MAX_CHARS

2000

Длина предпросмотра выходных данных инструмента для поиска

Каталог данных по умолчанию имеет режим 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

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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.
    4
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Collects 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.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Persistent 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.
    22
    2
    MIT