npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@rvboris/opencode-mempalace

v0.4.0

Published

OpenCode plugin for hidden MemPalace retrieval and autosave via a local Python adapter.

Readme

@rvboris/opencode-mempalace

Персистентная память для OpenCode — нулевая конфигурация, видимый результат.

Твой ИИ-ассистент забывает всё между сессиями. Этот плагин это исправляет. Он незаметно сохраняет важное и находит его, когда нужно — без лишних подсказок и ручной работы.

English version


Что он делает

Перед каждым ответом плагин ищет в памяти релевантный контекст. После каждой сессии — тихо сохраняет устойчивые знания. Тебе не нужно говорить «запомни это» — но если скажешь, плагин услышит.

Ты: "Какую систему сборки мы используем?"
ИИ:  [ищет в памяти] → "Bun. Это решение приняли 10 апреля."

Результат

  • Ответы, опирающиеся на прошлые решения, предпочтения и историю проекта
  • Не нужно повторять объяснения от сессии к сессии
  • Приватность: секреты и приватные блоки никогда не сохраняются
  • Работает полностью локально — без облака, API-ключей и MCP-сервера

Быстрый старт

Требования: OpenCode и Python 3.10+ с pip.

pip install mempalace
mempalace init ~/.mempalace/palace

Добавь в opencode.json:

{
  "plugin": ["@rvboris/opencode-mempalace"]
}

Готово. Поиск по памяти, автосохранение и оба инструмента активны сразу.

Возможности

Скрытый поиск

Перед каждым ответом плагин подставляет инструкцию «сначала проверь память». Модель видит релевантный контекст без лишнего шума в чате.

Фоновое автосохранение

При простое сессии, компактизации или завершении — плагин анализирует транскрипт, извлекает устойчивые факты и сохраняет их в нужную область памяти.

mempalace_memory — единый инструмент

Четыре режима, один интерфейс:

| Режим | Назначение | |---|---| | 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 — видимое доказательство

Проверь, реально ли плагин помогает:

mempalace_status

Показывает процент попаданий при поиске, последний результат автосохранения, превью памяти и накопительные счётчики. Для полного отчёта — verbose: true.

TUI HUD — статистика памяти в строке промпта

Компактная строка статистики текущей сессии в области ввода 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

{
  "autosaveEnabled": true,
  "retrievalEnabled": true,
  "keywordSaveEnabled": true,
  "maxInjectedItems": 6,
  "retrievalQueryLimit": 5,
  "privacyRedactionEnabled": true
}

Переменные окружения:

| Переменная | Назначение | |---|---| | MEMPALACE_AUTOSAVE_ENABLED | Включить/выключить фоновое автосохранение | | MEMPALACE_RETRIEVAL_ENABLED | Включить/выключить скрытый поиск | | MEMPALACE_KEYWORD_SAVE_ENABLED | Включить/выключить сохранение по ключевым словам | | MEMPALACE_PRIVACY_REDACTION_ENABLED | Включить/выключить скрытие секретов | | MEMPALACE_ADAPTER_PYTHON | Путь к бинарнику Python | | MEMPALACE_ADAPTER_TIMEOUT_MS | Таймаут адаптера (по умолчанию 15000) |

Настройка TUI HUD

Чтобы включить отображение статистики в строке промпта, добавь 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 |

Документация проекта

Локальная разработка

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