Здравствуйте, дамы и господа! Меня зовут Васильев Стас и я хотел бы вам представить утилиту командной строки по работе с хранилищем историй сессий AI-Агента Opencode.

Всем нам, в какой-то степени, повезло жить в момент зарождения новой эпохи. Эпохи, когда часть работы на себя будет брать этот самый AI. А для плодотворного взаимодействия люди придумали помощников - Агентов. Из всего многообразия на данный момент мне симпатичен Opencode, а раз так, то хочется иметь возможность использовать рабочий инструмент на все 100500 процентов.

Все результаты взаимодействия между пользователем и Агентом сохраняется в локальной SQLite базе данных, которая находится (на *.nix системах) ~/.local/share/opencode/opencode.db. Со временем, если работа ведётся активно, файл может разрастаться до многих гигабайт. Не лишним будет знать и понимать, а что же именно Агент сохраняет? Может быть мне это пригодится или я смогу найти что-то, что ранее мог упустить в силу различных причин.

Мой проект опубликован на PyPI, его можно установить uv tool install opencode-dbили pip install opencode-db. Своим продуктом я не претендую на какую-то уникальность. Изначально в Opencode есть встроенный механизм работы с базой. Если запустить Агента с ключом db

opencode db

Откроется консоль, которая предоставит интерактивный доступ к хранилищу через терминал. Но как мне показалось работа в ней слишком мудрённая, для выполнения простых операций приходится разбираться в интерфейсе и последовательности команд.

Еще есть проект OpenCode Database Cleaner, который может анализировать базу, показать её различные параметры или выполнить VACUUM и высвободить занимаемое пространство.

В opencode-db я попытался реализовать базовые, по моему мнению, вещи которые бы были востребованы большинством пользователей.

Управление opencode-db простое и интуитивное:

opencode-db --version     # версия установленной программы
opencode-db help          # все команды, примеры, флаги
opencode-db list          # последние сессии
opencode-db stats         # сводка по всей БД
opencode-db schema        # определить схему v1/v2
opencode-db export        # сохранить диалог в .md (интерактивно)
opencode-db costs --total # общие расходы

Вы можете посмотреть список своих последних 25 сессий

opencode-db list

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

opencode-db directories

покажет их все. Это может быть полезно ещё тем, что при удалении директории открыть сессию, которая была к ней привязана, не получится. И она навсегда останется в базе.

Можно получить детальную информацию по сессии

opencode-db info ses_1c9d9fa58ffe
============================================================
  Анализ export-dialog скрипта
============================================================
  ID:        ses_1c9d9fa58ffeiqsrHGVg8MPZes
  Проект:    global (global)
  Модель:    deepseek-reasoner
  Агент:     plan
  Версия:    1.15.1
  Создана:   2026-05-17 13:35:22
  Активна:   2026-05-17 14:13:23
  Длит-сть:  38 мин

  ────────────────────────────────────────────────────────
  Сообщений: 43
  Частей:    224
  ────────────────────────────────────────────────────────
  Токены ввода:     82 026
  Токены вывода:    36 837
  Токены reasoning: 17 211
  Кэш (чтение):     2 077 312
  Всего токенов:    118 863
  Стоимость:        $0.085

Также я добавил такую возможность как экспорт сессии в MD-формате

opencode-db export --latest

Данная функция может быть полезна в следующих сценариях:

  • вернуться к диалогу, в котором агент допустил архитектурную ошибку;

  • найти момент, когда требования были поняты неправильно;

  • изучить, почему агент выбрал неудачный вариант реализации;

  • сохранить историю для технического разбора или подготовки документации;

  • передать экспортированный диалог другому инструменту анализа, если формат и содержимое ему подходят.

Есть анализ расходов на токены

opencode-db costs

Утилита позволяет оценить расходы по данным об использовании моделей, сохранённым в истории. Точность оценки зависит от доступности этих данных и применяемых тарифов; результат не обязательно совпадает с фактическим списанием у провайдера.

На этом список возможностей не заканчивается, opencode-db также может искать по сессиям, удалять их, показывать дерево ветвлений, покажет список проектов над которыми работал пользователь и многое другое.

Если вас это заинтересовало, то все подробности на:

GitHub: https://github.com/VasilevNStas/opencode-db

PyPI: https://pypi.org/project/opencode-db/

Буду рад, если утилита окажется полезной. Если попробуете opencode-db, буду благодарен за обратную связь, сообщения об ошибках и предложения по развитию проекта

Комментарии (0)