nodeterm zamienia chaos zakładek terminala w nieskończone płótno
Każdy programista, który próbuje uruchomić autonomiczne agenty AI takie jak Claude Code czy Codex równolegle z zwykłymi usługami, szybko napotyka ten sam problem. Tuzin zakładek w iTerm czy Warp zamienia się w chaos. Nie wiadomo, gdzie testy się nie powiodły, która gałąź jest edytowana w tle i który terminal czeka na potwierdzenie polecenia.
Projekt nodeterm oferuje inne podejście do przestrzeni roboczej. Zamiast liniowych zakładek czy podziałów, wykorzystuje nieskończone płótno, gdzie każdy terminal istnieje jako oddzielny, ruchomy węzeł.
Co znajduje się wewnątrz płótna
Główna idea jest prosta: nadaj przestrzenną orientację swoim workflow. Możesz grupować backend, frontend i agenta działającego w tle w jedną grupę i umieścić notatkę z przypomnieniami o zadaniach tuż obok nich.
Węzeł tutaj to nie tylko terminal. Na płótnie możesz umieścić:
- Pełne sesje terminalowe oparte na xterm i tmux
- Karty agentów AI (Claude Code, Copilot, Gemini, Grok)
- Edytor kodu Monaco z obsługą szybkiego zapisu
- Przeglądarka diffów Git i okna podglądu stron internetowych
- Tekstowe notatki samoprzylepne, które można łączyć z agentami w celu udostępniania kontekstu
Sesje nie giną, gdy zamykasz okno lub restartujesz system. Pod maską aplikacja utrzymuje prawdziwą sesję tmux. Na macOS klient jest dostarczany z wbudowanym binarnym plikiem tmux, więc nie musisz instalować go osobno.
Monitorowanie agentów bez parsowania wyjścia
Gdy agent spędza dużo czasu na pisaniu kodu czy uruchamianiu testów, łatwo zapomnieć o sprawdzeniu jego statusu. nodeterm śledzi stan przez hooki systemowe, a nie przez parsowanie wyjścia tekstowego.
Jeśli proces wymaga potwierdzenia użytkownika, karta podświetla się badge'em POTRZEBUJĘ CIĘ i pojawia się natywne powiadomienie. Na MacBookach status aktywnych agentów pojawia się nawet w obszarze notcha.
Ciekawe szczegóły: agenci wewnątrz aplikacji mogą wchodzić w interakcję z płótnem przez wbudowane CLI. Na przykład jeden agent może utworzyć sąsiedni węzeł, aby uruchomić testy lub sprawdzić artefakty kompilacji innego agenta.
Tablica Kanban z aktywnych sesji
Naciśnięcie Cmd+Shift+B przełącza płótno w tryb tablicy Kanban. Każda karta na tablicy pozostaje działającą sesją terminalową.
Przeciągasz kartę z kolumny "W trakcie" do "Przeglądu", otwierasz ją w oknie modalnym i bezpośrednio odpowiadasz na pytanie agenta o kod. Dwukierunkowa synchronizacja z GitHub Issues jest również obsługiwana: zadania są pobierane na tablicę i zmieniają status po przeniesieniu.
Dostęp z telefonu i tryb serwera
Aplikacja nie ogranicza się do desktopowego klienta Electron. Architektura jest podzielona na niezależny rdzeń i transporty, dlatego nodeterm działa w trzech formatach.
- Aplikacja desktopowa dla macOS i Linux.
- Server Edition. To samo płótno działa na zdalnym serwerze bez powłoki graficznej i otwiera się w zwykłej przeglądarce przez WebSockety.
- Klient mobilny na iOS. Skanujesz kod QR na ekranie monitora, a sesja jest przekazywana do telefonu z szyfrowaniem end-to-end. Możesz odejść na kawę i odpowiadać na prompty agentów w podróży.
Wprowadzanie głosowe bezpośrednio do shella
nodeterm ma wbudowany lokalny model Whisper. Jeśli przytrzymasz Cmd+Alt (Ctrl+Alt na Linuxie) i podyktujesz długą instrukcję, audio jest przetwarzane bezpośrednio na Twoim CPU.
Tekst nie jest wysyłany do terminala automatycznie. Najpierw widzisz rozpoznany wynik, edytujesz go ręcznie w razie potrzeby i dopiero wtedy naciskasz wyślij. Dane audio nie są nigdzie wysyłane przez sieć.
Architektura i stos technologiczny
Klient jest napisany w TypeScript z użyciem Electron i biblioteki React Flow jako silnika płótna.
Deweloperzy wyekstrahowali operacje PTY, git i agentów do interfejsu CorePlatform. Proces Electron i proces serwera Node implementują ten sam interfejs. Dzięki temu wersja webowa nie jest okrojoną portacją — używa dosłownie tego samego interfejsu renderera.
Projekt jest dystrybuowany na licencji Business Source License 1.1 (BUSL-1.1). Kod źródłowy jest otwarty do użytku osobistego i produkcyjnego, ale zabrania tworzenia konkurencyjnej płatnej usługi opartej na nodeterm. Cztery lata po wydaniu każdej wersji kod automatycznie przechodzi na czystą licencję MIT.
Jak wypróbować
Na macOS najłatwiejszym sposobem instalacji aplikacji jest przez Homebrew:
brew tap nodeterm/tap
brew trust nodeterm/tap
brew install --cask nodeterm
Dla Linuxa pre-budowane pakiety AppImage i .deb są dostępne na stronie wydań repozytorium.
Jeśli chcesz uruchomić headless server na zdalnej maszynie, potrzebujesz tylko Node.js 22 i tmux:
git clone https://github.com/eneskirca/nodeterm.git
cd nodeterm
npm install
npm run server:dev
Po uruchomieniu interfejs webowy będzie na Ciebie czekał pod adresem http://127.0.0.1:8443.
Kto znajdzie nodeterm przydatne
Narzędzie jest przede wszystkim skierowane do programistów, którzy mają otwartych dziesiątki równoległych zadań, pracują z git worktrees lub aktywnie delegują fragmenty kodu do agentów AI z linii poleceń. Jeśli wolisz klasyczny minimalistyczny terminal zajmujący połowę ekranu, przestrzenne płótno może wydawać się przesadą. Ale jeśli masz dość gubienia się w nieskończonych zakładkach i oknach tmux, wizualne podejście nodeterm może wprowadzić ład do Twojego umysłu.
Powiązane projekty