Перейти к основному содержимому

CLI

CLI VibeOS — полноценный терминальный UI, не веб. Многострочное редактирование, автодополнение slash-команд, история диалога, прерывание, перенаправления и стриминг. Для тех, кто живёт в терминале.

Первая настройка

Одна команда — vibeos setup --portal — и можно в vibeos chat. См. Nous Portal.

подсказка

Есть и более новый TUI: модальные окна, выделение мышью, non-blocking ввод. Запуск: vibeos --tui — см. TUI.

Запуск CLI​

# Start an interactive session (default)
vibeos

# Single query mode (non-interactive)
vibeos chat -q "Hello"

# With a specific model
vibeos chat --model "anthropic/claude-sonnet-4"

# With a specific provider
vibeos chat --provider nous # Use Nous Portal
vibeos chat --provider openrouter # Force OpenRouter

# With specific toolsets
vibeos chat --toolsets "web,terminal,skills"

# Start with one or more skills preloaded
vibeos -s vibeos-agent-dev,github-auth
vibeos chat -s github-pr-workflow -q "open a draft PR"

# Resume previous sessions
vibeos --continue # Resume the most recent CLI session (-c)
vibeos --resume <session_id> # Resume a specific session by ID (-r)

# Verbose mode (debug output)
vibeos chat --verbose

# Isolated git worktree (for running multiple agents in parallel)
vibeos -w # Interactive mode in worktree
vibeos -w -z "Fix issue #123" # Single query in worktree

Макет интерфейса​

Stylized preview of the VibeOS CLI layout showing the banner, conversation area, and fixed input prompt.

Баннер VibeOS CLI, поток разговора и фиксированное приглашение ввода отображаются как стабильный документ, а не хрупкий текстовый рисунок.

Приветственный баннер сразу показывает вашу модель, серверную часть терминала, рабочий каталог, доступные инструменты и установленные навыки.

Строка состояния​

Постоянная строка состояния находится над областью ввода и обновляется в реальном времени:

 ⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
ЭлементОписание
Название моделиТекущая модель (усекается, если длина превышает 26 символов)
Количество токеновИспользуемые токены контекста / максимальное окно контекста
Контекстная панельВизуальный индикатор заполнения с цветовыми порогами
СтоимостьОценка стоимости сессии (или n/a для неизвестных / zero-price моделей)
🗜️ NСчётчик сжатия контекста — сколько раз текущая сессия уже сжималась. Появляется после первого сжатия.
▶ NФоновые задачи — сколько /background ещё крутится в этой сессии. Видно, пока есть хотя бы одна.
ДлительностьВремя с начала сессии
⚠ YOLOПредупреждение YOLO — когда включён VIBEOS_YOLO_MODE (vibeos --yolo при старте или /yolo в сессии). Дублирует баннер, чтобы не забыть про auto-approve.

Полоса адаптируется к ширине терминала — полный макет при ≥ 76 столбцах, компактный при 52–75, минимальный (модель + длительность плюс значок YOLO, когда он активен) ниже 52.

Цветовое кодирование контекста:

ЦветПорогЗначение
Зеленый< 50%Много места
Желтый50–80%Наполняюсь
Оранжевый80–95%Приближаемся к пределу
Красный≥ 95%Вблизи переполнения — рассмотрим /compress

Используйте /usage для подробной разбивки, включая затраты по категориям (входные и выходные токены).

Отображение возобновления сеанса​

При возобновлении предыдущего сеанса (vibeos -c или vibeos --resume <id>`) между баннером и приглашением ввода появляется панель «Предыдущий разговор», на которой отображается компактный обзор истории разговора. Подробные сведения и настройки см. в разделе Сессии — повторение беседы при возобновлении.

Сочетания клавиш​

КлючДействие
EnterОтправить сообщение
Alt+Enter, Ctrl+J или Shift+EnterНовая строка (многострочный ввод). Для Shift+Enter требуется терминал, отличающий его от Enter — см. ниже. В терминале Windows Alt+Enter захватывается терминалом (переключение полноэкранного режима); вместо этого используйте Ctrl+Enter или Ctrl+J.
Alt+VВставка изображения из буфера обмена, если это поддерживается терминалом
Ctrl+VВставьте текст и прикрепите изображения из буфера обмена
Ctrl+BЗапуск/остановка записи голоса при включенном голосовом режиме (voice.record_key, по умолчанию: ctrl+b)
Ctrl+GОткройте текущий входной буфер в $EDITOR (vim/nvim/nano/VS Code/и т. д.). Сохраните и выйдите, чтобы отправить отредактированный текст в качестве следующего приглашения — идеальное решение для длинных подсказок, состоящих из нескольких абзацев.
Ctrl+X Ctrl+EАльтернативная привязка в стиле Emacs для внешнего редактора (то же поведение, что и Ctrl+G).
Ctrl+CАгент прерывания (дважды нажмите в течение 2 секунд, чтобы принудительно выйти)
Ctrl+DВыход
Ctrl+ZПереведите VibeOS в фоновый режим (только для Unix). Запустите fg в оболочке, чтобы возобновить работу.
TabПринять ghost-text или автодополнение slash-команды

Предварительный просмотр многострочной вставки. При вставке многострочного блока интерфейс командной строки отображает компактный однострочный предварительный просмотр ([pasted: 47 lines, 1,842 chars — press Enter to send]) вместо того, чтобы выгружать всю полезную нагрузку в обратную прокрутку. Полный контент по-прежнему отправляется; это просто полировка дисплея.

Стрип markdown в финальных ответах. CLI снимает самые шумные markdown-обёртки и оболочки **bold** / *italic* из финальных ответов агента, чтобы в терминале был читаемый текст, а не сырой markdown. Блоки кода и списки сохраняются. На платформы шлюза и вывод инструментов это не влияет — там markdown остаётся для нативного рендера.

Slash Commands​

Введите /, чтобы увидеть раскрывающийся список автозаполнения. VibeOS поддерживает большой набор косых команд CLI, динамических команд навыков и определяемых пользователем быстрых команд.

Распространенные примеры:

КомандаОписание
/helpПоказать справку по команде
/modelПоказать или изменить текущую модель
/toolsСписок доступных на данный момент инструментов
/skills browseПросмотрите центр навыков и официальные дополнительные навыки
/background <prompt>`Запуск запроса в отдельном фоновом сеансе
/skinПоказать или переключить активный скин CLI
/voice onВключить голосовой режим CLI (нажмите Ctrl+B для записи)
/voice ttsВключить голосовое воспроизведение ответов VibeOS
/reasoning highУвеличьте усилие рассуждения
/title My SessionНазовите текущий сеанс
/statusПоказать информацию о сеансе — модель/профиль/токены/продолжительность — с последующим локальным блоком Резюме сеанса (количество последних ходов, наиболее часто используемые инструменты, затронутые файлы, последнее приглашение пользователя + ответ помощника). Чисто локальные вычисления; нет звонка в LLM.
/sessionsОткройте интерактивный инструмент выбора сеанса прямо в классическом интерфейсе командной строки (та же поверхность, которую использует TUI). Введите для фильтрации, клавиши со стрелками для навигации, Enter для возобновления.

Полный список встроенных команд командной строки и списков сообщений см. в Справочнике по slash-командам.

Информацию о настройке, провайдерах, настройке тишины и обмене сообщениями/использовании голоса Discord см. в разделе Голосовой режим.

подсказка

Команды нечувствительны к регистру — /HELP работает так же, как /help. Установленные навыки также автоматически становятся косыми командами.

Быстрые команды​

Вы можете определить собственные команды, которые мгновенно запускают команды оболочки, не вызывая LLM. Они работают как в CLI, так и на платформах обмена сообщениями (Telegram, Discord и т. д.).

# ~/.vibeos/config.yaml
quick_commands:
status:
type: exec
command: systemctl status vibeos-agent
gpu:
type: exec
command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader
restart:
type: alias
target: /gateway restart

Затем введите /status, /gpu или /restart в любом чате. Дополнительные примеры см. в Руководстве по настройке.

Предварительная загрузка навыков при запуске​

Если вы уже знаете, какие навыки вы хотите активировать в сеансе, передайте их во время запуска:

vibeos -s vibeos-agent-dev,github-auth
vibeos chat -s github-pr-workflow -s github-auth

VibeOS загружает каждый названный навык в приглашение сеанса перед первым ходом. Тот же флаг работает в интерактивном режиме и режиме одного запроса.

Команды навыка Slash​

Каждый установленный навык в ~/.vibeos/skills/ автоматически регистрируется как slash-команда. Имя навыка становится командой:

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor

# Just the skill name loads it and lets the agent ask what you need:
/excalidraw

Личности​

Установите предопределенную личность, чтобы изменить тон агента:

/personality pirate
/personality kawaii
/personality concise

К встроенным личностям относятся: helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype.

Вы также можете определить индивидуальные особенности в ~/.vibeos/config.yaml:

personalities:
helpful: "You are a helpful, friendly AI assistant."
kawaii: "You are a kawaii assistant! Use cute expressions..."
pirate: "Arrr! Ye be talkin' to Captain VibeOS..."
# Add your own!

Многострочный ввод​

Существует два способа ввода многострочных сообщений:

  1. Alt+Enter, Ctrl+J или Shift+Enter — вставляет новую строку.
  2. Продолжение обратной косой черты — для продолжения завершите строку \:
❯ Write a function that:\
1. Takes a list of numbers\
2. Returns the sum
к сведению

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

Shift+Enter совместимость​

Большинство терминалов по умолчанию отправляют одну и ту же последовательность байтов для Enter и Shift+Enter, поэтому приложения не могут их различить. VibeOS распознает Shift+Enter только тогда, когда терминал отправляет отдельную последовательность через [протокол клавиатуры Kitty] (https://sw.kovidgoyal.net/kitty/keyboard-protocol/) или режим modifyOtherKeys в xterm.

ТерминалСтатус
Китти, нога, WezTerm, GhosttyОтдельные Shift+Enter включены по умолчанию
iTerm2 (недавний), Alacritty, терминал VS Code, WarpПоддерживается после включения протокола Kitty в настройках
Предварительная версия терминала Windows 1.25+Поддерживается после включения протокола Kitty в настройках
macOS Terminal.app, стандартный терминал Windows (стабильная версия)Не поддерживается — Shift+Enter неотличим от Enter

Если терминал не может их различить, Alt+Enter и Ctrl+J продолжают работать везде. В частности, в Windows Terminal Alt+Enter захватывается терминалом (переключает полноэкранный режим) и никогда не достигает VibeOS — используйте Ctrl+Enter (доставляется как Ctrl+J) или Ctrl+J непосредственно для новой строки.

Прерывание агента​

Вы можете прервать агента в любой момент:

  • Type a new message + Enter while the agent is working — it interrupts and processes your new instructions
  • Ctrl+C — прервать текущую операцию (нажмите дважды в течение 2 с для принудительного выхода)
  • Выполняемые команды терминала немедленно уничтожаются (SIGTERM, затем SIGKILL через 1 с)
  • Несколько сообщений, введенных во время прерывания, объединяются в одно приглашение.

Режим входа «Занято»​

Ключ конфигурации display.busy_input_mode управляет тем, что происходит, когда вы нажимаете Enter во время работы агента:

РежимПоведение
"interrupt" (по умолчанию)Ваше сообщение прерывает текущую операцию и немедленно обрабатывается
"queue"Ваше сообщение автоматически ставится в очередь и отправляется на следующем этапе после завершения работы агента
"steer"Ваше сообщение вводится в текущий запуск через /steer и поступает к агенту после следующего вызова инструмента — ни прерывания, ни нового хода
# ~/.vibeos/config.yaml
display:
busy_input_mode: "steer" # or "queue" or "interrupt" (default)

Режим "queue" полезен, когда вы хотите подготовить последующие сообщения без случайной отмены работы в полете. Режим "steer" полезен, когда вы хотите перенаправить агента в середине задачи, не прерывая его — например. «Вообще-то, еще проверь тесты», пока он еще редактирует код. Неизвестные значения возвращаются к "interrupt".

"steer" имеет два автоматических варианта возврата: если агент еще не запущен или если изображения прикреплены, сообщение возвращается к поведению "queue", поэтому ничего не потеряно.

Вы также можете изменить его внутри CLI:

/busy queue
/busy steer
/busy interrupt
/busy status
Подсказка при первом касании

При первом нажатии Enter во время работы VibeOS VibeOS печатает однострочное напоминание с описанием ручки /busy ("(tip) Your message interrupted the current run…"). Он срабатывает только один раз за установку — его фиксирует флаг в config.yaml под onboarding.seen.busy_input_prompt. Удалите этот ключ, чтобы снова увидеть подсказку.

Приостановка работы в фоновом режиме​

В системах Unix нажмите Ctrl+Z, чтобы перевести VibeOS в фоновый режим — как и любой терминальный процесс. Оболочка печатает подтверждение:

VibeOS has been suspended. Run `fg` to bring VibeOS back.

Введите fg в своей оболочке, чтобы возобновить сеанс с того места, на котором вы остановились. Это не поддерживается в Windows.

Отображение хода работы инструмента​

Интерфейс командной строки отображает анимированную обратную связь во время работы агента:

Анимация мышления (во время вызовов API):

  ◜ (。•́︿•̀。) pondering... (1.2s)
◠ (⊙_⊙) contemplating... (2.4s)
✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

Канал выполнения инструмента:

  ┊ 💻 terminal `ls -la` (0.3s)
┊ 🔍 web_search (1.2s)
┊ 📄 web_extract (2.1s)

Переключайте режимы отображения с помощью /verbose: off → new → all → verbose. Эту команду также можно включить для платформ обмена сообщениями — см. configuration.

Длина предварительного просмотра инструмента​

Ключ конфигурации display.tool_preview_length управляет максимальным количеством символов, отображаемых в строках предварительного просмотра вызова инструмента (например, пути к файлам, команды терминала). По умолчанию используется 0, что означает отсутствие ограничений — отображаются полные пути и команды.

# ~/.vibeos/config.yaml
display:
tool_preview_length: 80 # Truncate tool previews to 80 chars (0 = no limit)

Это полезно на узких терминалах или когда аргументы инструмента содержат очень длинные пути к файлам.

Управление сеансами​

Возобновление сеансов​

При выходе из сеанса CLI печатается команда возобновления:

Resume this session with:
vibeos --resume 20260225_143052_a1b2c3

Session: 20260225_143052_a1b2c3
Duration: 12m 34s
Messages: 28 (5 user, 18 tool calls)

Варианты резюме:

vibeos --continue                          # Resume the most recent CLI session
vibeos -c # Short form
vibeos -c "my project" # Resume a named session (latest in lineage)
vibeos --resume 20260225_143052_a1b2c3 # Resume a specific session by ID
vibeos --resume "refactoring auth" # Resume by title
vibeos -r 20260225_143052_a1b2c3 # Short form

Возобновление восстанавливает полную историю разговоров из SQLite. Агент видит все предыдущие сообщения, вызовы инструментов и ответы — так, как будто вы никогда не уходили.

Используйте /title My Session Name внутри чата, чтобы назвать текущий сеанс, или vibeos sessions rename &lt;id&gt; &lt;title&gt; в командной строке. Используйте vibeos sessions list` для просмотра прошлых сеансов.

Хранилище сеансов​

Сеансы CLI хранятся в базе данных состояний SQLite VibeOS в разделе ~/.vibeos/state.db. В базе данных хранятся:

  • метаданные сеанса (идентификатор, заголовок, временные метки, счетчики токенов)
  • история сообщений
  • происхождение по сжатым/возобновленным сеансам
  • индексы полнотекстового поиска, используемые session_search

Некоторые адаптеры обмена сообщениями также хранят файлы расшифровок для каждой платформы вместе с базой данных, но сам CLI возобновляет работу из хранилища сеансов SQLite.

Сжатие контекста​

Длинные разговоры автоматически суммируются при приближении к ограничениям контекста:

# In ~/.vibeos/config.yaml
compression:
enabled: true
threshold: 0.50 # Compress at 50% of context limit by default

# Summarization model configured under auxiliary:
auxiliary:
compression:
model: "" # Leave empty to use the main chat model (default). Or pin a cheap fast model, e.g. "google/gemini-3-flash-preview".

При срабатывании сжатия средние витки суммируются, а первые 3 и последние 20 витков всегда сохраняются.

Фоновые сеансы​

Запустите приглашение в отдельном фоновом сеансе, продолжая использовать CLI для другой работы:

/background Analyze the logs in /var/log and summarize any errors from today

VibeOS немедленно подтвердит задачу и выдаст вам подсказку:

🔄 Background task #1 started: "Analyze the logs in /var/log and summarize..."
Task ID: bg_143022_a1b2c3

Как это работает​

Каждое приглашение /background порождает совершенно отдельный сеанс агента в потоке демона:

  • Изолированный разговор — фоновый агент не имеет сведений об истории вашего текущего сеанса. Он получает только указанное вами приглашение.
  • Та же конфигурация — фоновый агент наследует вашу модель, поставщика, наборы инструментов, настройки рассуждений и резервную модель из текущего сеанса.
  • Неблокируемый — ваш сеанс на переднем плане остается полностью интерактивным. Вы можете общаться, запускать команды или даже запускать дополнительные фоновые задачи.
  • Несколько задач — вы можете запускать несколько фоновых задач одновременно. Каждый получает номерной идентификатор.

Результаты​

Когда фоновая задача завершается, результат отображается в виде панели вашего терминала:

╭─ ✦ VibeOS (background #1) ─╮
│ Found 3 errors in syslog from today: │
│ 1. OOM killer invoked at 03:22 — killed process nginx │
│ 2. Disk I/O error on /dev/sda1 at 07:15 │
│ 3. Failed SSH login attempts from 192.168.1.50 at 14:30 │
╰──────────────────────────────────────────────────────────────╯

Если задача не выполнена, вместо этого вы увидите уведомление об ошибке. Если в вашей конфигурации включен display.bell_on_complete, по завершении задачи раздастся звуковой сигнал терминала.

Варианты использования​

  • Длительные исследования — «/background исследовать последние разработки в области квантовой коррекции ошибок», пока вы работаете над кодом.
  • Обработка файлов — «/background проанализируйте все файлы Python в этом репозитории и перечислите все проблемы безопасности», пока вы продолжаете разговор.
  • Параллельные расследования — запускайте несколько фоновых задач, чтобы исследовать разные стороны одновременно.
к сведению

Фоновые сеансы не отображаются в основной истории разговоров. Это автономные сеансы со своим собственным идентификатором задачи (например, bg_143022_a1b2c3).

Тихий режим​

По умолчанию интерфейс командной строки работает в тихом режиме, который:

  • Подавляет подробное ведение журнала из инструментов.
  • Включает анимированную обратную связь в стиле каваи.
  • Сохраняет вывод чистым и удобным для пользователя

Для вывода отладки:

vibeos chat --verbose