Персистентная память для OpenCode — нулевая конфигурация, видимый результат.
Твой ИИ-ассистент забывает всё между сессиями. Этот плагин это исправляет. Он незаметно сохраняет важное и находит его, когда нужно — без лишних подсказок и ручной работы.
Перед каждым ответом плагин ищет в памяти релевантный контекст. После каждой сессии — тихо сохраняет устойчивые знания. Тебе не нужно говорить «запомни это» — но если скажешь, плагин услышит.
Ты: "Какую систему сборки мы используем?"
ИИ: [ищет в памяти] → "Bun. Это решение приняли 10 апреля."- Ответы, опирающиеся на прошлые решения, предпочтения и историю проекта
- Не нужно повторять объяснения от сессии к сессии
- Приватность: секреты и приватные блоки никогда не сохраняются
- Работает полностью локально — без облака, API-ключей и MCP-сервера
Требования: OpenCode и Python 3.10+ с pip.
pip install mempalace
mempalace init ~/.mempalace/palaceДобавь в opencode.json:
{
"plugin": ["@rvboris/opencode-mempalace"]
}Готово. Поиск по памяти, автосохранение и оба инструмента активны сразу.
Перед каждым ответом плагин подставляет инструкцию «сначала проверь память». Модель видит релевантный контекст без лишнего шума в чате.
При простое сессии, компактизации или завершении — плагин анализирует транскрипт, извлекает устойчивые факты и сохраняет их в нужную область памяти.
Четыре режима, один интерфейс:
| Режим | Назначение |
|---|---|
save |
Сохранить предпочтение, факт или решение |
search |
Найти релевантную память по запросу |
kg_add |
Добавить структурированный факт в граф знаний |
diary_write |
Записать короткую рабочую заметку |
Примеры:
mempalace_memory mode: save scope: user room: preferences content: Предпочитает краткие ответы.
mempalace_memory mode: search scope: project room: decisions query: система сборки
mempalace_memory mode: kg_add subject: my-repo predicate: uses object: bun
Проверь, реально ли плагин помогает:
mempalace_status
Показывает процент попаданий при поиске, последний результат автосохранения, превью памяти и накопительные счётчики. Для полного отчёта — verbose: true.
Компактная строка статистики текущей сессии в области ввода OpenCode:
MEM hits 3 · saved 2 · failed 0 · writes 1Цветовые индикаторы для SKIPPED и FAILED. Требует записи в tui.json (см. ниже).
Память пользователя — кросс-проектные предпочтения и привычки:
preferences— стиль кода, предпочтения общенияworkflow— рабочие паттерны, выбор инструментовcommunication— язык, формат ответов
Память проекта — знания, привязанные к репозиторию:
architecture— архитектурные решения, паттерныworkflow— команды сборки, CI-конфигdecisions— ADR, компромиссыbugs— известные баги, обходные путиsetup— настройка окружения, зависимости
- Блоки
<private>...</private>уважаются и никогда не сохраняются - Типовые секреты (API-ключи, токены, пароли) скрываются перед записью
- Полностью приватное содержимое пропускается целиком
Необязательный файл конфигурации: ~/.config/opencode/mempalace.jsonc
Переменные окружения:
| Переменная | Назначение |
|---|---|
MEMPALACE_AUTOSAVE_ENABLED |
Включить/выключить фоновое автосохранение |
MEMPALACE_RETRIEVAL_ENABLED |
Включить/выключить скрытый поиск |
MEMPALACE_KEYWORD_SAVE_ENABLED |
Включить/выключить сохранение по ключевым словам |
MEMPALACE_PRIVACY_REDACTION_ENABLED |
Включить/выключить скрытие секретов |
MEMPALACE_ADAPTER_PYTHON |
Путь к бинарнику Python |
MEMPALACE_ADAPTER_TIMEOUT_MS |
Таймаут адаптера (по умолчанию 15000) |
Чтобы включить отображение статистики в строке промпта, добавь tui.json в каталог конфигурации OpenCode:
{
"$schema": "https://opencode.ai/tui.json",
"plugin": [
"file:///путь/до/mempalace-autosave/plugin/tui/index.tsx"
]
}Или при установке из npm — используй пакетный вход:
{
"$schema": "https://opencode.ai/tui.json",
"plugin": ["@rvboris/opencode-mempalace/tui"]
}Сообщение пользователя
→ системный хук подставляет «сначала проверь память»
→ модель вызывает mempalace_memory [search]
→ результаты влияют на ответ
Сессия завершается / простаивает
→ хук событий анализирует транскрипт
→ Python-адаптер сохраняет устойчивые факты через MemPalaceПлагин использует локальную Python-прослойку (bridge/mempalace_adapter.py) для работы с MemPalace. Ему не нужен MCP-сервер MemPalace.
| Требование | Версия |
|---|---|
| OpenCode | latest |
| Python | 3.10+ |
| MemPalace | 3.3+ |
| ОС | macOS, Linux, Windows |
- Changelog — история изменений
- Contributing — правила ведения changelog
git clone https://github.com/rvboris/opencode-mempalace.git
cd opencode-mempalace/mempalace-autosave
npm install
npm run buildЗагрузка из исходников в opencode.json:
{
"plugin": ["file:///ABSOLUTE/PATH/TO/mempalace-autosave/plugin/index.ts"]
}Отладка: opencode --log-level DEBUG или файл ~/.mempalace/opencode_autosave.log.
- OpenCode: https://opencode.ai
- MemPalace: https://github.com/milla-jovovich/mempalace
- npm: https://www.npmjs.com/package/@rvboris/opencode-mempalace
MIT
{ "autosaveEnabled": true, "retrievalEnabled": true, "keywordSaveEnabled": true, "maxInjectedItems": 6, "retrievalQueryLimit": 5, "privacyRedactionEnabled": true }