[loc] Київ · UTC+2 [doc] v0.9.0-beta.1 · українська 00:00 PM
[ Документація · v0.9.0-beta.1 ]

Все, що варто знати
про SENU.

П’ятнадцять розділів — від першого підключення SSH до плагінів для перегляду логів. Усе, що показано в інтерфейсі, тут пояснено словами.

15 розділів · Останнє оновлення: 2026-05-08 · English version →
— 01 / 15

Загальний огляд

SENU — це нативний кросплатформний десктопний термінал для сисадмінів, DevOps і всіх, хто керує багатьма серверами. Він поєднує SSH, Telnet, Serial, Local та Docker-підключення в одному вікні — плюс SFTP-файловий браузер поверх SSH — з двома незвичними доповненнями:

  • Нотатки прив'язані до серверів — пін до конкретного сервера, директорії або файлу, тому контекст не губиться між сесіями.
  • Plugin-aware Log Viewer — пропускає access-логи через парсери, які виявляють патерни атак і структурують сирий текст у таблиці.

Уся програма — нативний бінарник ~13 МБ (Tauri 2 + Rust), не обгортка Electron на 200 МБ. Без телеметрії. Без хмарного акаунту. Без аналітики.

Платформи. Windows, macOS, Linux. Підписані інсталятори зараз доступні для Windows. macOS і Linux білдяться з джерел (інсталятори будуть зі стабільним v0.9.0).

Ліцензія. Apache 2.0.


— 02 / 15

Підключення SSH

SSH — основний протокол. Натисни + Сервер у бічній панелі, щоб додати новий.

Способи аутентифікації

  • Пароль — вводиться вручну або зберігається в системному keychain
  • Публічний ключ — посилання на приватний ключ на диску (RSA, Ed25519, ECDSA, DSA), з опціональним passphrase
  • SSH-агент — використовує запущений ssh-agent (Pageant у Windows, ssh-agent у macOS/Linux). Ключ-файл не потрібен — ідеально якщо в тебе вже завантажені ключі
  • ProxyJump — підключення через один або кілька bastion-хостів (-J user@bastion1,user@bastion2)

Перевірка ключа сервера (TOFU)

При першому підключенні до сервера SENU показує fingerprint ключа і просить підтвердити. Підтверджені ключі зберігаються в локальному known_hosts. Якщо ключ потім зміниться — SENU блокує підключення і виводить попередження. Можливий MITM.

Імпорт існуючого SSH-конфіга

Кнопка Імпорт SSH config парсить твій ~/.ssh/config і додає кожен хост як окремий запис, включно з HostName, User, Port, IdentityFile та ProxyJump.

Налаштування підключення

  • Keepalive — інтервал 30 с, максимум 3 пропуски (налаштовується)
  • Agent forwarding — переадресація локального агента на віддалений
  • Стиснення — вмикається/вимикається
  • Кастомний порт — будь-яке значення 1–65535
  • Кастомне середовище — передача env-змінних у віддалений shell

— 03 / 15

Термінал

Термінал побудований на xterm.js 6. Підтримує:

  • True 24-bit color
  • Усі стандартні ANSI-послідовності
  • UTF-8 (повний Unicode, включно з emoji)
  • Mouse reporting (для htop, tmux, vim)
  • OSC 52 — віддалений tmux/vim може покласти текст у твій локальний буфер обміну
  • Reflow при зміні розміру
  • Ligatures (якщо шрифт підтримує)
  • Плавне прокручування з налаштовним буфером (за замовчуванням 10 000 рядків)

Копіювання / вставка

  • Копіювати — виділити мишею (автоматично, якщо в Налаштуваннях увімкнено "copy on select"), або Ctrl+Shift+C
  • ВставитиCtrl+Shift+V або середня кнопка миші (Linux/macOS)
  • Bracketed paste — великі вставки не запускають команди випадково

Пошук

Ctrl+Shift+F відкриває пошук у терміналі з підтримкою regex та підсвіткою всіх збігів.

Перепідключення

Якщо сесія обірвалася (мережа, idle timeout, sleep), вкладка показує кнопку перепідключення. Натисни — підключиться знову без втрати scrollback.


— 04 / 15

Split-режим

Розділи одну вкладку на 2, 3 або 4 панелі. Корисно для моніторингу двох серверів поряд або щоб запустити top в одній панелі і редагувати в іншій.

  • Натисни іконку розділення на табі
  • Вибери розкладку: 2 (вертикально), 2 (горизонтально), 3 або 4 панелі
  • Кожна панель — окрема сесія (можна підключити до різних серверів)
  • Клік по панелі робить її активною; активна виділена брендовою зеленою
  • Перетягуй роздільник для зміни розміру

Щоб вийти зі split-режиму — закрий зайві панелі, остання стане повним табом.


— 05 / 15

Broadcast (синхронне введення)

Коли Broadcast увімкнено, кожне натискання передається в усі відкриті SSH-вкладки одночасно. Використовується для виконання однакової команди на кількох серверах — apt update, systemctl restart nginx тощо.

  • Перемикається з тулбару, або через Command Palette: Ctrl+K → введи "broadcast"
  • Поки активний — у топбарі видно чіткий індикатор (щоб не забути вимкнути)
  • Broadcast торкається тільки SSH-вкладок, які відкриті зараз — нові вкладки не додаються автоматично
  • Не зачіпає Local / Telnet / Serial / Docker

Безпека. Перед увімкненням май хоча б 2 SSH-вкладки відкритими. Перевір що на екрані — broadcast не питає "ти впевнений", кожне натискання остаточне на кожному хості.


— 06 / 15

SSH-тунелі

Прокидай порти між локальною машиною і віддаленою. Корисно для доступу до внутрішніх сервісів (БД, дашборди) без відкриття портів у файрволлі.

Три режими:

  • Local forward (-L) — локальний порт → віддалений порт. Наприклад, прокинути віддалений MySQL на localhost:3307
  • Remote forward (-R) — віддалений порт → локальний порт. Наприклад, дати віддаленій машині доступ до сервіса на твоєму ноуті
  • Dynamic forward (-D) — SOCKS5-проксі для довільного роутингу

Відкрий popover Тунелі з тулбару активної сесії:

  1. Натисни + Тунель
  2. Обери режим
  3. Введи source/destination порти і хост (за замовчуванням 127.0.0.1)
  4. Тунелі живуть весь час сесії SSH

Popover показує статус тунелю (активний / провалився) і дозволяє вмикати/вимикати окремі тунелі без розриву сесії.


— 07 / 15

Історія команд

Кожна команда введена в SSH чи local-вкладку логуються в локальну історію.

  • Відкрий через Ctrl+R (пошук) або з бічної панелі
  • Per-server — команди виконані на конкретному хості
  • Глобальна — все по всіх хостах
  • Пошук fuzzy — введи підрядок, збіги ранжуються за свіжістю
  • Клік на запис — копіювати / вставити / запустити знову

Історія зберігається тільки локально. Ніколи не синхронізується, ніколи не вивантажується. Очистити окремі записи або стерти все можна в Налаштування → Приватність.


— 08 / 15

Файли (SFTP)

Кожна SSH-сесія має приєднаний SFTP-браузер. Перемкнись з вкладки Термінал на Редактор того ж сервера.

Перегляд

  • Дерево зліва, список файлів справа
  • Подвійний клік по теці — увійти, по файлу — відкрити у вбудованому редакторі
  • Праворуч-клік для: завантажити, вивантажити, перейменувати, видалити, chmod, копіювати шлях, "Створити нотатку про цей файл"

Вбудований редактор конфігів

Файли відкриваються в редакторі CodeMirror 6 з підсвіткою синтаксису і визначенням мови для:

  • nginx.conf, sshd_config, *.service (systemd)
  • YAML, JSON, TOML, INI, Dockerfile, .env
  • Bash / Zsh / PowerShell скрипти
  • Markdown
  • Звичайний текст

Збереження відправляє файл назад через SFTP. Редактор попереджає про незбережені зміни при перемиканні файлів або закритті вкладки.

Завантаження / вивантаження

  • Drag-and-drop з файлового браузера ОС у SENU
  • Multi-select для пакетного передавання
  • Черга з прогрес-барами
  • Resume при розриві (якщо сервер підтримує)

— 09 / 15

Сніпети

Бібліотека для часто-використовуваних команд. Праворуч-клік на рядку в терміналі → Зберегти як сніпет для захоплення.

  • Категоризуй кастомними тегами або теками
  • Пошук за назвою, тегом або вмістом
  • Клік → копіювати в буфер, або клік → запустити в активному терміналі
  • Вбудований пакет містить стартові: Docker, Git, Nginx, systemd, tmux, типові one-liner-и

Сніпети синхронізуються з твоїм workspace — доступні в усіх сесіях на твоїй машині. На сервери не пушаться.


— 10 / 15

Нотатки

Статус: BETA. Працює стабільно для щоденного використання, є дрібні шорсткості в edge-кейсах.

Нотатки — кілер-фіча SENU. Прив'язуються до конкретного сервера, директорії або файлу, тому через два тижні ти знаєш що робив і чому.

Теки

Реальна ієрархія тек з drag-and-drop переупорядкуванням. Згортай / розгортай гілки. Нотатки можуть жити на корені або на будь-якій глибині.

Теги

Додавай теги типу #prod, #staging, #alert. Кольори тегів детерміновані#prod завжди має один і той самий відтінок із 24-кольорової HSL-палітри. Клік на тег циклить між альтернативними відтінками якщо хочеш ручний контроль.

Три поверхні редагування

Нотатки мають три режими редагування які ділять один state:

  1. Швидке редагування в сайдбарі — швидке inline-редагування без виходу з поточного контексту
  2. Popup-редактор — модальний, більший, без зайвих елементів
  3. Повноекранний редактор — для довгої документації

Перемикайся між ними коли захочеш — позиція курсора і контент синхронізуються. Auto-save працює з debounce 1 с, тому втратити роботу неможливо.

Прив'язка до файлу

Праворуч-клік на файлі в SFTP-браузері → Створити нотатку про цей файл. Нотатка зберігає:

  • Ім'я сервера
  • Повний віддалений шлях
  • Заголовок (ім'я файлу, можна редагувати)

Знайти потім можна:

  • За сервером (фільтр списку нотаток за хостом)
  • За тегом
  • За текою
  • Пошуком за шляхом прив'язки

Push-to-server (нотатки ↔ markdown)

Будь-яку нотатку можна запушити назад на прив'язаний сервер як Markdown-файл. За замовчуванням перезаписує прив'язаний шлях — тобто нотатка Є живою документацією на сервері. Корисний паттерн: прив'яжи нотатку до /etc/nginx/README.md, редагуй у SENU, пушай назад, ділись з командою.


— 11 / 15

Log Viewer

Статус: BETA. Tail і пошук працюють, плагінний пайплайн поставив три парсери.

Відкрий з бічної панелі → ЛогиВідкрити. Обери локальний файл або потягни через SFTP.

Плагінний пайплайн

Логи проходять через плагіни послідовно. Доступні зараз:

  • nginx-parser — перетворює Nginx access-логи в структуровану таблицю з колонками timestamp, IP, метод, шлях, статус, розмір, user-agent. Кольорові статус-бейджі (E/W/I/D = error / warn / info / debug).
  • json-pretty — форматує JSON-рядки логів inline з згортанням вкладених об'єктів.
  • alert-rules — позначає підозрілі патерни. Стандартні правила: recon-спроби на /.env, /admin, /.git/config, brute-force на логіні, шторми 4xx/5xx.
  • laravel-parser (beta) — парсить Laravel-логи зі згортанням стек-трейсів.
  • timeline-view (beta) — групує події по хвилинах / годинах для візуалізації сплесків.

В планах: docker-logs, k8s-parser, користувацькі плагіни.

Tail-режим

Live-слідкування за файлом. Нові рядки з'являються знизу; зупини автопрокрутку кнопкою Pause якщо треба читати спокійно.

Пошук і фільтр

Plain-text або regex. Фільтр за статус-кодом, IP, часовим діапазоном, вердиктом плагіна (тільки збіги alert-rules).


— 12 / 15

Чат

Статус: ALPHA. Криптографію не аудитували. Використовуй на свій ризик.

Зашифровані повідомлення між користувачами SENU, підключеними до одного SSH-сервера. Корисно коли ти і колега обидва адміни на одному хості і треба швидко обмінятися нотаткою чи credential-ом без того щоб він залишався на серверах Telegram назавжди.

Як працює

  • Транспорт — сам SSH-сервер, у /tmp/.senu/ (sticky bit 1777)
  • У кожного користувача є довгостроковий ключ-файл у ~/.config/SENU/chat_identity.key що містить X25519 keypair (для ECDH) і Ed25519 keypair (для підпису)
  • Публічні ключі обмінюються через невеликий "beacon"-файл у /tmp/.senu/
  • Повідомлення шифруються AES-256-GCM зі свіжим ефемерним ключем на кожне повідомлення, запечатаним X25519 ECDH проти отримувача
  • Кожне повідомлення підписується Ed25519 над канонічним signing-input (sender pubkey + recipient pubkey + ciphertext + nonce + ts). Отримувач відхиляє повідомлення без валідного підпису
  • Повідомлення самознищуються при відключенні (директорія /tmp/.senu/ чиститься користувачем)

Що це дає

  • Конфіденційність — розшифрувати може тільки призначений отримувач
  • Автентичність — отримувач перевіряє відправника
  • Forward secrecy на рівні повідомлення — свіжий ефемерний ключ на кожне повідомлення означає що минулі повідомлення залишаться непрочитаними навіть якщо майбутній ключ зкомпрометують
  • Ефемерність — нічого не зберігається після завершення SSH-сесії

Чого це НЕ дає

  • Незалежного аудиту. Криптографічна реалізація написана уважно на основі ed25519-dalek / x25519-dalek / aes-gcm — перевірених крейтів — але жодна третя сторона не переглянула протокол чи реалізацію
  • Довіри до сервера. SSH-сервер бачить шифротекст і метадані (хто з ким говорить, розмір повідомлень, тайминг). Контент не може прочитати
  • Out-of-band перевірки ідентичності. Як з "safety numbers" у Signal — підтверджуй fingerprint публічного ключа контакту через довірений канал якщо тобі важлива стійкість до MITM

Рекомендоване використання

Швидка координація між адмінами на одній машині. Не рекомендовано для чутливих переписок де компрометація має значення — для таких використовуй Signal / Wire / свій аудитований інструмент.


— 13 / 15

Клавіатурні скорочення

Скорочення Дія
Ctrl+K Command Palette (fuzzy launch серверів / панелей / налаштувань)
Ctrl+Q Quick Connect
Ctrl+T Нова вкладка
Ctrl+W Закрити вкладку
Ctrl+Tab Наступна вкладка
Ctrl+Shift+Tab Попередня вкладка
Ctrl+1Ctrl+9 Перейти на вкладку N
Ctrl+Shift+C Копіювати
Ctrl+Shift+V Вставити
Ctrl+Shift+F Пошук у терміналі
Ctrl+R Пошук історії команд
Ctrl+B Перемкнути broadcast
Ctrl+Shift+H Boss Key — миттєво сховати UI за decoy
Ctrl+, Налаштування
Ctrl+/ Документація (ця сторінка)
Esc Закрити модал / popover

Boss Key замінює вікно SENU нейтральним decoy-ом одним натисканням. Корисно коли екран дивляться через плече. Натисни знову щоб відновити.


— 14 / 15

Налаштування

Відкривається через Ctrl+, або шестерню в топбарі.

Теми

  • Стабільні теми (просунуті в quick-picker-і топбару):
    • SENU — за замовчуванням. Темна із зеленим акцентом. Тюнена для довгих сесій.
    • Nord — спокійна arctic-палітра у синіх тонах.
  • BETA-темиНалаштування → Теми, з бейджем BETA поки тривають правки контрасту і палітри):
    • Catppuccin · Dracula · Matrix · Neon · One Dark
    • Solarized Dark · High Contrast · Light
    • Forest · CRT · Jade

Кожна тема стилізує і UI-обрамлення, і палітру терміналу. Темні теми тюнені щоб уникати чистого чорного #000000 (тепліший #0c0c0c м'якший на довгих сесіях).

Мови

  • English — повне покриття
  • Українська — повне покриття

Перемикається іконкою мови в статус-барі.

Налаштування підключень

  • Порт за замовчуванням (22)
  • Інтервал keepalive за замовчуванням (30 с)
  • Файл known-hosts за замовчуванням
  • Кастомний шлях до SSH-конфіга
  • Шрифт і розмір шрифту терміналу

Приватність

  • Очистити історію команд (per-server або глобально)
  • Очистити known-hosts
  • Скинути всі дані SENU (factory reset)

Оновлення

  • Перевірити вручну
  • Інфраструктура автооновлення налагоджена (підписані релізи через GitHub), але user-prompt UI ще не доведений у цьому релізі — ручні оновлення поки безпечніший шлях

— 15 / 15

FAQ

Це Electron-програма? Ні. SENU зроблено на Tauri 2 — Rust-бекенд, системний webview, ~13 МБ. Порівняй з ~200 МБ типового Electron-аналога.

Чому кастомні віконні контроли (точки зліва) на Windows? Свідомий UX-вибір. У DevOps-роботі часто багато розгорнутих вікон; кнопка закриття зліва запобігає випадковому закриттю сесії коли ти звично "змахуєш" Х-кнопки справа.

Чи дзвонить SENU додому? Ні. Без телеметрії, без аналітики, без хмарного акаунту. Єдиний вихідний трафік — підключення які ти явно робиш (SSH / Telnet / тощо) і — якщо ти увімкнув — перевірка оновлень з GitHub.

Чому в цьому релізі немає Vault? Раніші збірки мали credential vault. Його прибрали в очікуванні повного перепису — попередня реалізація мала проблеми з надійністю, неприйнятні для зберігання credential-ів. Повернеться у майбутньому релізі.

Чи Чат безпечний? Криптографія використовує стандартні примітиви (X25519 ECDH + AES-256-GCM + Ed25519 підписи) реалізовані через перевірені Rust-крейти. Однак загальну реалізацію не аудитували незалежно. Не використовуй для нічого, чого не толерував би прочитаним.

Чому деякі теми позначені BETA? Тільки SENU і Nord пройшли повний прохід контрасту і терміналь-палітри. Інші 11 працюють і доступні в Налаштуваннях → Теми, але дрібні деталі (читабельність бейджів, контраст скролбарів, підсвітка синтаксису в редакторі) ще можуть потребувати полірування.

Де зберігаються мої дані? У теці app-data твоєї ОС:

  • Windows: %APPDATA%\SENU\
  • macOS: ~/Library/Application Support/SENU/
  • Linux: ~/.config/SENU/

Нотатки, сніпети, історія команд, workspace-и і chat-identity ключ живуть там. Нічого не покидає твою машину якщо ти явно не пушнеш (наприклад, нотатка → сервер).

Чи SENU підтримує Windows / macOS / Linux однаково? Так — однаковий feature-set на всіх трьох. Єдина різниця: підписані інсталятори зараз доступні для Windows у v0.9.0-beta.1. macOS і Linux отримають інсталятори зі стабільним v0.9.0 (літо 2026).

Як повідомити про баг? GitHub Issues: github.com/St3llArS33R/SENU/issues

Ліцензія? Apache 2.0. Користуй, форкай, модифікуй, поширюй. Дивись файл LICENSE в репозиторії.


SENU розробляється Борисом Зайцевим. Issues і pull request-и вітаються.

Не знайшов відповіді? Відкрий issue на GitHub →