nodeterm превращает кучу терминальных вкладок в бесконечный холст

20 авг 2026
1,869
205
7
2 недели

У любого разработчика, который пробует запускать автономных ИИ-агентов вроде Claude Code или Codex параллельно с обычными сервисами, быстро возникает одна и та же беда. Десяток вкладок в iTerm или Warp превращаются в кашу. Непонятно, где упали тесты, какая ветка сейчас правится в фоне и какой терминал ждет подтверждения на выполнение команды.

Интерфейс nodeterm

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

Что внутри холста

Основная идея приложения проста: дать пространственную ориентацию рабочим процессам. Вы можете сгруппировать бэкенд, фронтенд и фонового агента в один кластер, а рядом наклеить стикер с заметками по задаче.

Холст с нодами

Реклама

Нода здесь бывает не только терминалом. На полотно можно вынести:

  • Полноценные сессии терминала на базе xterm и tmux
  • Карточки ИИ-агентов (Claude Code, Copilot, Gemini, Grok)
  • Редактор кода Monaco с поддержкой быстрого сохранения
  • Вьювер git diff и окна предварительного просмотра веб-страниц
  • Текстовые стикеры, которые можно линковать к агентам для передачи контекста

Сессии не теряются при закрытии окна или перезагрузке системы. Под капотом приложение держит реальный tmux. На macOS клиент поставляется со встроенным бинарником tmux, поэтому ставить его отдельно не обязательно.

Контроль за агентами без парсинга вывода

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

Статусы агентов

Если процессу требуется подтверждение пользователя, на карточке загорается бейдж NEEDS YOU и всплывает нативное уведомление. На макбуках статус активных агентов даже выводится в область notch.

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

Канбан из живых сессий

По нажатию Cmd+Shift+B холст переключается в режим канбан-доски. Каждая карточка на доске остается работающей терминальной сессией.

Канбан-доска

Вы перетаскиваете карточку из колонки «In Progress» в «Review», открываете ее модальным окном и прямо там отвечаете агенту на вопрос по коду. Также поддерживается двусторонняя синхронизация с GitHub Issues: задачи подтягиваются на доску и меняют статусы при переносе.

Доступ с телефона и серверный режим

Приложение не ограничивается десктопным клиентом на Electron. Архитектура разделена на независимое ядро и транспорты, благодаря чему nodeterm работает в трех форматах.

Подключение с мобильного

  1. Десктопное приложение под macOS и Linux.
  2. Server Edition. Тот же холст запускается на удаленном сервере без графической оболочки и открывается в обычном браузере через веб-сокеты.
  3. Мобильный клиент на iOS. Сканируете QR-код на экране монитора, и сессия пробрасывается на телефон со сквозным шифрованием. Можно отойти за кофе и отвечать на промпты агента прямо на ходу.

Голосовой ввод прямо в шелл

В nodeterm встроена локальная модель Whisper. Если зажать сочетание Cmd+Alt (Ctrl+Alt на Linux) и надиктовать длинную инструкцию, звук обработается прямо на вашем процессоре.

Диктовка голосом

Текст не отправляется в терминал автоматически. Сначала вы видите распознанный результат, при необходимости редактируете его руками и только потом нажимаете отправку. Аудиоданные никуда не уходят по сети.

Архитектура и стек

Клиент написан на TypeScript с использованием Electron и библиотеки React Flow в роли движка холста.

Разработчики вынесли работу с PTY, git и агентами в интерфейс CorePlatform. Электронный процесс и серверный Node-процесс реализуют один и тот же интерфейс. Благодаря этому веб-версия не является урезанным портом, она использует буквально тот же интерфейс рендерера.

Проект распространяется по лицензии Business Source License 1.1 (BUSL-1.1). Исходный код открыт для личного и производственного использования, но запрещает создание конкурирующего платного сервиса на базе nodeterm. Через четыре года после релиза каждой версии код автоматически переходит под чистый MIT.

Как попробовать

На macOS приложение проще всего поставить через Homebrew:

brew tap nodeterm/tap
brew trust nodeterm/tap
brew install --cask nodeterm

Для Linux доступны готовые сборки AppImage и .deb на странице релизов репозитория.

Если вы хотите запустить headless-сервер на удаленной машине, достаточно Node.js 22 и tmux:

git clone https://github.com/eneskirca/nodeterm.git
cd nodeterm
npm install
npm run server:dev

После старта веб-интерфейс будет ждать вас на http://127.0.0.1:8443.

Кому пригодится nodeterm

Инструмент в первую очередь ориентирован на разработчиков, которые держат открытыми десятки параллельных задач, работают с git worktrees или активно делегируют куски кода консольным ИИ-агентам. Если вам привычнее классический минималистичный терминал на пол-экрана, пространственный холст может показаться избыточным. Но если вы устали теряться в бесконечных вкладках и tmux-окнах, визуальный подход nodeterm может навести порядок в голове.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.