NoctaVox 0.3.4: локальный TUI-плеер для своей музыки

15 августа 2026 автор Jaxx497 опубликовал NoctaVox 0.3.4. Это локальный музыкальный плеер с текстовым интерфейсом в терминале. Репозиторий на GitHub, пакет на crates.io, лицензия MIT. Команда после установки: vox.

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

Зачем это, если есть обычный плеер

У части людей библиотека уже лежит на диске: FLAC, Opus, MP3, иногда ALAC с айфона. Облачный сервис тут лишний. GUI-плееры часто тянут плагины, сканеры, сетевые «фичи» и отдельный аккаунт. NoctaVox рассчитан на другой сценарий: открыл терминал, запустил vox, слушает свои файлы.

Управление в духе Vim: j/k, поиск через /, в очередь по q. Есть очередь, плейлисты, ReplayGain, бесшовное воспроизведение, системные медиакнопки, минимальный вид и визуализации (waveform, осциллограф, спектр). Автор прямо пишет, что это хобби-проект, в первую очередь учебный. Ждать от него уровень коммерческого клиента не стоит, зато границы понятные: локально, read-only к вашей музыке, без онлайна.

Что умеет

Форматы из README: mp3, m4a, wav, flac, ogg, opus, aiff, alac, webm. Для webm в changelog отдельно сказано, что поддержка может быть нестабильной из-за метаданных.

Аудиодвижок свой: Voxio. Автор объясняет, зачем его написал: готовые Rust-решения не давали сразу gapless, Opus, отвод сэмплов под визуализации и нормальный API. С 0.3.0 движок переписан, смена аудиоустройства больше не должна ронять поток. С 0.3.1 волны строятся самим Voxio, без вызовов ffmpeg.

Интерфейс на Ratatui. С 0.3.3 сайдбар стал деревом: альбомы и плейлисты в одной панели, заголовки сворачиваются. 0.3.4 как раз подчищает эту картинку и очередь.

NoctaVox 0.3.4: локальный TUI-плеер для своей музыки

Как поставить

Для повседневного запуска проще взять готовый архив со страницы релиза v0.3.4. На 15 августа 2026 там есть linux-x64, linux-arm64, macos-x64, macos-arm64 и windows-x64. Бинарник называется vox. Его достаточно положить в каталог из PATH.

Если собираете из crates.io, в Cargo.toml указано rust-version = "1.95". Старый rustc из репозитория дистрибутива, скорее всего, не подойдёт. Нужен актуальный rustup, затем:

cargo install noctavox --locked

После установки:

vox

Сборка из git тоже есть в README: cargo run --release или cargo install --path .. Для звука автор советует именно release-профиль.

Первый запуск

При старте программа просит указать корневой каталог библиотеки. Корни потом добавляются и убираются клавишами ` и ~. Плеер не правит теги и не раскладывает файлы. Если в треках пустой ID3/Vorbis, в интерфейсе будет каша. Для разметки библиотеки автор отсылает к beets или Mp3tag, внутри NoctaVox редактора тегов нет и не планируется без отдельного opt-in.

Клавиши

Карта зависит от режима (библиотека, очередь, поиск) и от панели. Глобальные клавиши и управление воспроизведением работают почти везде, кроме поля поиска: чтобы не ломать набор запроса. Регистр важен: s и S это разные действия. Внутри плеера справка открывается по ?. Ниже сводка по docs/keymaps.md для 0.3.4. С 0.3.2 ? это карта клавиш, статистика переехала на обратный слэш.

ДействиеКлавиши
Выбор / подтверждениеEnter
Вверх / внизk / j
На 5 / 25 пунктовu U / d D
В начало / в конец спискаg / G
Альбом текущего трека=
Между панелямиh l или стрелки влево/вправо

Воспроизведение

ДействиеКлавиши
Паузапробел
Перемотка вперёд 5 с / 30 сn / N
Перемотка назад 5 с / 30 сp / P
Следующий в очередиCtrl+n
Предыдущий из историиCtrl+p
Стоп и очистка очередиCtrl+s
Повтор трекаCtrl+r
Громкость+ -

Ctrl+n и Ctrl+p работают даже в поиске и попапах. Шаги перемотки задаются в config.toml: seek_small и seek_large (по умолчанию 5 и 30 секунд).

Виды

ДействиеКлавиши
К плейлистамCtrl+t
ОчередьCtrl+q
Ширина сайдбара[ ]
Минимальный видm
Полноэкранный прогрессf
Цикл виджетовw
Progress bar / осциллограф / спектр / волнаB / O / S / W
Сглаживание волны{ }

Общее

ДействиеКлавиши
Поиск/
Карта клавиш?
Статистика
Настройки (корни библиотеки)` или ~
Закрыть попап / выйти из поискаEsc
Перескан библиотекиF5 или Ctrl+u
Перезагрузить темуF6
Менеджер темC
Цикл тем< > или , .
ВыходCtrl+c

Правая панель (треки)

ДействиеКлавиши
ИгратьEnter
В очередьq
В плейлистa
В последний плейлист, без попапаaa
К альбомуCtrl+a
Назад в сайдбарh
Мультивыбор / все / сбросv / V / Ctrl+v
Убрать из плейлиста или очередиx
Сдвинуть трек вниз / вверхJ / K
Перемешать очередь (только режим очереди)s

Порядок мультивыбора сохраняется. С 0.3.4: мультивыбор плюс s в треклисте перемешивает выбранное и кладёт в очередь.

Сайдбар

Одно дерево: заголовки ALBUMS и PLAYLISTS. При сортировке по артисту альбомы вложены ещё на уровень. h сначала сворачивает открытый заголовок, потом прыгает к родителю.

ДействиеКлавиши
Свернуть/открыть заголовок, открыть альбом или плейлистEnter
Раскрыть / открыть листl Tab
Свернуть или к родителюh
Раскрыть всёL
В очередь весь альбом или плейлистq
В очередь с перемешиваниемs
Сортировка альбомов (артист / название / год)Ctrl+h / Ctrl+l
Новый плейлистc
Переименовать плейлистr
Удалить плейлистx

c работает из любой строки сайдбара. Если очередь пустая, q по альбому или плейлисту сразу запускает первый трек.

Числовой префикс

Как в Vim: перед частью команд можно набрать число. Буфер держит последние 3 цифры, сброс Esc или Backspace. Работает для прокрутки, мультивыбора и запуска трека. Выход за границы списка даёт ошибку, кроме прокрутки.

  • 11j вниз на 11 строк;
  • 23g на 23-ю строку текущего списка;
  • 8v выбрать текущую и ещё 8 (если уже все выбраны, снимет выбор);
  • 12 затем Enter играть 12-й трек альбома, плейлиста, очереди или поиска.

Флаги vox

Без аргументов открывается TUI. Остальные флаги взаимоисключающие:

vox
vox --version
vox --import-playlist
vox --export-playlist
vox --list
vox --reset

Импорт, экспорт и список плейлистов требуют аддон Transpose в $CONFIG/noctavox/addons. vox --reset уничтожает базу, это не «перезапуск».

Конфиг и база

На Linux каталог обычно ~/.config/noctavox (в README это $CONFIG/noctavox). На Windows: %APPDATA%noctavox. Там же SQLite noctavox.db и, если появился, config.toml.

Конфиг автор помечает как незавершённый, возможны ломающие правки. Незнакомое имя поля или неверный тип сбрасывает весь файл на значения по умолчанию, ошибка пишется в строку буфера при запуске. Темы в этом месте мягче: неизвестные ключи игнорируются.

Минимальный пример, только то, что чаще всего меняют:

[general]
framerate = 60
update_on_start = true
auto_resume = false
replay_gain = "off"
broadcast = false

replay_gain принимает off, track или album. broadcast = true нужен, если сами читаете представление now_playing_v1 из базы (для самодельного scrobbling или Discord). Официальных аддонов на это пока нет.

Часть глифов по умолчанию из Nerd Font. Если в терминале квадраты, либо поставьте пропатченный шрифт, либо переопределите иконки в [icons] обычным Unicode.

Что изменилось в 0.3.4

Релиз на GitHub: 15 августа 2026, 20:51 UTC. Тот же день пакет попал на crates.io. Заголовок: «Tighter Visual Buffs + More bug fixes». По CHANGELOG это не новая архитектура, а полировка после перестройки интерфейса в 0.3.3:

  • нормальнее обрезка bufferline на узком терминале и shimmer у этой строки;
  • починен переход к плейлисту;
  • вертикальные отступы прогресса в полноэкранном виде;
  • в режиме очереди s снова перемешивает очередь;
  • мультивыбор в треклисте плюс s перемешивает выбранное и кладёт в очередь;
  • плотнее подсветка поиска, слайдер громкости спрятан в fullscreen;
  • мелочи и обновление зависимостей.

Импорт и экспорт плейлистов по-прежнему не в ядре. Нужен аддон Transpose из NoctaVox-Plugins: бинарник кладётся в $CONFIG/noctavox/addons, дальше vox --import-playlist и vox --export-playlist. В README прямо сказано, что аддоны собираются выпилить и влить в основную программу.

Где обычно спотыкаются

Библиотека «в кучу»: нет тегов. Плеер тут ни при чём, он показывает то, что прочитал из файла.

После правки config.toml настройка «не применяется»: ищите опечатку в другом поле. Один битый ключ обнуляет весь файл.

Темы. В README есть однострочник curl ... | sh. Так ставить скрипты с GitHub не стоит, даже если репозиторий выглядит прилично. Скачайте scripts/get-themes.sh, прочитайте, затем запускайте локальную копию. Сами темы не обязательны для прослушивания.

Сборка через cargo install на старом Rust. Смотрите MSRV 1.95 или берите готовый архив с Releases.

Аварийный сброс. Если после падения vox больше не стартует, в FAQ предлагают vox --reset. Команда уничтожает базу и внутренние настройки: плейлисты, историю, кэш волн, представление библиотеки. Файлы музыки программа не трогает, но служебное состояние пропадёт. Сначала имеет смысл скопировать noctavox.db.

vox --reset

Как проверить, что всё на месте

В PATH должна появиться команда vox. У CLI есть флаг версии через clap:

vox --version

Ожидаемая версия на момент материала: 0.3.4. Первый запуск без аргументов открывает TUI и спрашивает корень библиотеки. После скана в списке должны быть альбомы с нормальными тегами. F5 подхватывает новые файлы без перезапуска.

Коротко

NoctaVox 0.3.4: локальный TUI-плеер для своей музыки, без сети и без телеметрии. Для жизни это простой ответ на вопрос «хочу слушать свои FLAC из терминала, без аккаунта». Ставить лучше бинарником с GitHub Releases либо через cargo install noctavox --locked на свежем Rust. Не кормите его curl | sh и не жмите vox --reset, пока не сохранили базу.

Источники


Комментарии загружаются…