Stinkpot добавляет поиск истории Bash через SQLite

Stinkpot добавляет поиск истории Bash через SQLite

Разработчик представил Stinkpot, открытый поисковик истории команд оболочки Bash с базой данных SQLite. Проект написан примерно в 400 строк Go и намеренно ограничен двумя задачами: вести историю независимо от текущей сессии и давать текстовый интерфейс для её поиска.

Автор сравнивает Stinkpot с Atuin, которым пользовался ранее. В Atuin ему не нужны сервер синхронизации, ИИ-функции, менеджер dotfiles, менеджер скриптов и хранилище ключ, значение; кроме того, на его машинах разные настройки и разные наборы команд, поэтому синхронизация истории ему не подходит.

После сборки нужно добавить в .bashrc команду инициализации, импортировать существующую историю Bash командой stinkpot import, а затем нажимать Ctrl+R. В появившемся списке можно перемещаться стрелками, принять найденную команду Tab или Enter и затем отдельным нажатием Enter выполнить её. База хранится в ~/.local/share/stinkpot; если обновление сломает формат базы, автор предлагает удалить её и снова выполнить импорт.

Ключевые факты

  • Stinkpot хранит историю команд Bash в SQLite и показывает результаты в текстовом интерфейсе поиска.
  • Проект написан примерно в 400 строк Go и задуман как более компактная альтернатива Atuin для локального сценария использования.
  • Для начала работы нужно подключить вывод stinkpot init в .bashrc и запустить stinkpot import.
  • Ctrl+R открывает обратный поиск; выбранную команду можно принять, а затем выполнить отдельным нажатием Enter.
  • Данные лежат в ~/.local/share/stinkpot; при несовместимом обновлении базы её предлагают удалить и импортировать историю заново.

Почему это важно

Stinkpot решает узкую повседневную задачу: делает историю Bash доступной между сессиями и удобной для обратного поиска. В отличие от более функционального Atuin он не пытается включать синхронизацию, ИИ-функции или управление конфигурациями и скриптами.

Кому это важно

Утилита рассчитана на пользователей Bash, которым нужен локальный поиск по истории команд. Особенно она подходит тем, кто использовал Atuin только для истории и интерфейса поиска либо не хочет объединять историю между машинами с разными сценариями работы.

Как это применить

Соберите проект командой go build -o stinkpot, добавьте в .bashrc вызов eval "$(stinkpot init)" и импортируйте старую историю через stinkpot import. В NixOS с Home Manager можно подключить модуль проекта. После этого Ctrl+R вызывает поиск, а база размещается в ~/.local/share/stinkpot.

Можно ли доверять

Описание проекта прямо указывает используемые технологии, команды установки и ожидаемое поведение интерфейса. Это небольшой открытый проект, но в материале нет независимых тестов, сведений о поддерживаемых версиях Bash или гарантий надёжности хранения.

Риски и подводные камни

Stinkpot рассчитан именно на Bash и покрывает лишь локальный сценарий, поэтому функции Atuin вроде синхронизации, ИИ-возможностей, менеджера dotfiles, менеджера скриптов и хранилища ключ, значение в нём отсутствуют. Автор также предупреждает, что после обновления при поломке формата базы может потребоваться удалить базу и повторно импортировать историю.