nocx
Терминал, который помнит рабочий контекст
Вкладки, напечатанный ими вывод, заметки и ссылки на секреты — всё на месте после перезапуска.
macOS universal · Linux x86_64 AppImage, glibc 2.35+
MIT · v0.3.0, выпущен
2026-08-28 · ранний релиз, без
формальной поддержки
Сборка для macOS подписана ad-hoc и не нотаризована — Apple Developer ID у проекта нет, — поэтому первый запуск требует одной команды в терминале. Она целиком в разделе Установка, до того как вы что-либо скачаете.
nocx main ❯ git log --oneline -3 8422d6f8 Merge pull request #115 from shady2k/fix/resize-vertical-oscillation 165b2f51 chore(beads): close nocx-uus3o b6f066f4 Merge remote-tracking branch 'origin/main' into pr-115 ❯ go test ./internal/session/ ./internal/settings/ ok github.com/shady2k/nocx/internal/session 0.155s ok github.com/shady2k/nocx/internal/settings 0.006s ❯
Настоящий вывод, снятый из этого репозитория, — текст на странице, а не скриншот приложения. Он на английском, потому что таков настоящий вывод: перевести его значило бы его подделать. Запустите обе команды сами и получите то же самое.
01 — Восстановление
Закрыл. Открыл. Работаешь дальше.
Раньше перезапуск стоил всего, что было на экране. Вот что именно его переживает — и единственное, что нет.
Последняя строка — самая честная: возвращается то, что программа напечатала, а не сама программа. Хотите начинать с чистого листа? Один переключатель в настройках выключает всё это.
02 — Рабочее пространство
Пять панелей — о машине, на которой ваша вкладка
Вкладки группируются в именованные цветные воркспейсы. Сайдбар следует за активной вкладкой, так что контекст слева — это тот же контекст, в который вы печатаете.
- FILES
-
каталог, в котором вкладка, и он следует за ней — сделайте
cd, и дерево переедет само, без клика и без переключения вкладок - GIT
- изменённые файлы со счётчиками строк · stage · unstage · коммит · лог — и отказывает там же, где отказывает git, не молча
- PORTS
- что во вкладке слушает порт, и какие туннели вы пробросили
- OPERATIONS
- файлы, идущие на машину этой вкладки и обратно — бросьте файл на терминал или возьмите пункт меню в дереве Files · каждую передачу можно отменить отдельно · суммарный прогресс остаётся на панели активности со свёрнутым сайдбаром
- NOTES
- открывается вкладкой · сохраняется, пока вы думаете · находится потом по любому слову внутри, а не только по заголовку
- HISTORY
- зашифрована на диске · переживает перезапуск · ограничена сроком хранения, потолком по диску и лимитом вывода на команду
03 — Секреты
Ссылка там, где был ключ
Запустите команду с ключом внутри, и блок предложит его сохранить. Меняется при этом собственная запись nocx об этой команде:
- вы набрали
- TOKEN=<значение> ./deploy.sh
- запись nocx
- TOKEN=[ссылка на vault] ./deploy.sh
- vault
- зашифрованное значение
- при запуске
- ссылка разрешена
Это утверждение о записи nocx об этой команде и ни о чём шире. Пароли подключений и парольные фразы ключей живут в том же хранилище.
04 — Вопрос
Он действует в скроллбэке, и каждый шаг — строка, которую видно
Переключатель рядом с промптом отправляет строку ассистенту вместо оболочки. Ход приходит одной записью, внутри которой всё в том порядке, в каком происходило: написанный текст, вызванные инструменты, запущенные команды. Прокрутите его потом — вы читаете то, что произошло, а не пересказ. После перезапуска он поднимается с диска таким же.
Вы отмечаете
Ничего не прикладывается само. Выделение предлагает отметить блок; то же делает один пункт в меню блока. Отмеченное — это счётчик на одном чипе: его можно открыть, снять отметку построчно и перейти к любому блоку. Вопрос называет эти блоки и не вставляет их текст.
Вы разрешаете
Предложение что-то запустить читается предложением: команда дословно, машина, на которую она пойдёт, и вкладка, в которой это случится. У ответа есть ширина — один раз, эта сессия или всегда, — и каждая кнопка сама говорит, что покрывает.
Вы останавливаете
Stop стоит на живом ходе, там же, где Stop у команды. Пришедший текст остаётся, ход помечается остановленным вами, следующий вопрос работает.
Пока команда выполняется, ⌘/Ctrl+Enter открывает окно вопроса поверх неё — в том числе поверх полноэкранной программы, занявшей весь грид. Экран держит один кадр, пока окно открыто, и программе об этом не сообщают: ни ресайза, ни сигнала, — а ассистент читает тот самый кадр, который видите вы. Escape возвращает программе все клавиши.
nocx поставляет интеграцию, а не модель: endpoint настраиваете вы, и политика хранения — вашего провайдера. Постоянное «да» сохраняется над той самой командой, которую вам показали, а не над их классом, и правило не может оказаться шире окна, которое его предложило. В настройках видно инструкции, которые nocx даёт ассистенту, без подстановок, а завершённый ход умеет показать дословно, что было отправлено и что пришло в ответ. По обычному http nocx ходит исключительно на loopback и приватные адреса, проверяя тот адрес, который реально разрешил и с которым соединился, на каждом запросе и каждом редиректе; учётные данные не переживают смену схемы, хоста или порта.
05 — API
API-клиент, у которого коллекция — файлы в вашей же папке
Откройте экспорт из Postman — .json или целиком .zip — и он
станет обычными JSON-файлами, по одному на запрос. Правьте в форме, нажмите Send, читайте
ответ. Двое, правящих два запроса, конфликтуют в двух файлах. Без аккаунта, без облака,
без входа куда бы то ни было.
Куда он идёт
Запрос уходит с этой машины — или изнутри SSH-соединения, которое у вас уже открыто. Окружение несёт и адрес, и маршрут к нему, так что боевой запрос не обойдёт свой бастион из-за того, что эти двое разъехались.
Что он подставляет
Переменные на трёх уровнях — запрос, папка, окружение, — и правятся там, где вы стоите. Вкладка Variables показывает всю область, под которой запрос уйдёт, и говорит, какой уровень ответил за каждое имя.
Что лежит в файле
Секрет кладётся в любое поле — заголовок, URL, тело, Auth — через замок на самом поле. В файле остаётся непрозрачный идентификатор: ни значения, ни имени, которое вы придумали.
Поэтому коллекция, принятая из чужого пул-реквеста, не дотянется до пароля за SSH-профилем, а импорт чужого экспорта не заводит секрет из того, что в нём случайно оказалось. Ответ читается до 2 MiB; байты, совпавшие с хранимым секретом, удаляются до того, как ответ доедет до окна, а бейдж говорит, что там было.
06 — Строка ввода
Командная строка — это редактор
Построена на CodeMirror 6: подсветка синтаксиса оболочки по мере набора, дополнение команд и путей по Tab, лучший кандидат — призрачным текстом.
Дополнение
- Tab дополняет команды и пути
- каталоги дополняются со слэшем на конце
- ещё один Tab заходит внутрь
- Right принимает призрачный текст
- ничего не подошло → панель так и говорит
Сниппеты
- сохраните фразу один раз, отправляйте куда угодно
- долетает до программы, читающей stdin прямо сейчас
- многострочное тело отвергается, если программа не включила bracketed paste, — вместо построчной вставки в то, что этого не переживёт
07 — Границы
Что он принимает — и чего никогда не строит вокруг вас
Импортирует ваши хосты
- ~/.ssh/config
- экспорт из Tabby
- пароли и парольные фразы ключей → в vault
Подключение ссылается на секрет, а не несёт его в себе.
Не является частью nocx
- аккаунт — регистрироваться негде
- собственный облачный сервис
- продуктовая телеметрия
- облачная синхронизация
Сеть, которой он касается, — это сеть, на которую вы его направили: ваши хосты, настроенный вами endpoint ассистента и проверка собственных обновлений. Аналитики на этой странице тоже нет — GitHub ведёт для неё и для загрузок обычные серверные логи, и они его.
Установка — ранний релиз
Что произойдёт, когда вы его откроете
macOS · universal .dmg
Откройте .dmg, перетащите nocx в Applications. Apple Developer ID у
проекта нет, поэтому сборка подписана ad-hoc, а не удостоверенной Apple личностью, и
не нотаризована — macOS ставит её в карантин при скачивании. Снимите его один раз:
xattr -dr com.apple.quarantine /Applications/nocx.app
Дальше открывайте как обычно; последующие обновления из приложения карантин не возвращают. Обоснование — в ADR-0003.
Linux · x86_64 AppImage
chmod +x nocx-*-linux-amd64.AppImage
./nocx-*-linux-amd64.AppImage
Он несёт в себе GTK 3 и WebKitGTK и линкуется с glibc 2.35 — порог задан сборкой на
Ubuntu 22.04. Это покрывает Ubuntu 22.04+, Debian 12+, Fedora 39+, RHEL 9+ и Arch.
Это не «работает везде»: если он не стартует, а ldd --version
показывает glibc ниже 2.35, ваш дистрибутив под порогом.
Обновления: nocx проверяет манифест обновления встроенным публичным ключом Ed25519. Это защищает целостность собственного канала обновлений — но это не удостоверение Apple, и сборка не подписана Developer ID и не нотаризована. Команды восстановления — в README.
Из чего собран
- Бэкенд
- Go — PTY, SSH, сессии, транспорт, настройки
- Терминал
- xterm.js на WebGL
- Строка ввода
- CodeMirror 6
- Интерфейс
- SolidJS
- Оболочка
- Wails v3
- Транспорт
- один WebSocket — бинарный канал данных, управляющий JSON-RPC 2.0