Zespół agentów AI,
który pracuje na Twoim komputerze.

Zatrudniasz agentów, dajesz im zadania, a oni naprawdę je wykonują. Każdy krok to osobne wywołanie claude -p w ramach Twojej subskrypcji Claude, bez klucza API. Wyniki lądują jako pliki w katalogu zadania.

git clone https://github.com/GracjanFilipek/noctume.gitcd noctumenpm installnpm run dev→ http://localhost:5173  (tryb Mock: zero wywołań modelu)

Stacja NOCTUME: Vega, Kwarc i Orion pracują w swoich modułach, a Lira utknęła w Kuźni Słów. Po prawej lista zespołu z ich zadaniami.
Prawdziwy zrzut aplikacji w trybie Mock. Czerwony znak ▲ oznacza agenta, który utknął.

01 · przepływ

Jak to działa

  1. Zatrudnij

    Imię, rola, poziom i jedno zdanie opisu. Z opisu powstaje master prompt, który możesz poprawić.

    Junior haiku · Mid sonnet · Senior opus

  2. Daj zadanie zespołowi

    Tytuł, brief, format wyniku i zespół w kolejności pracy. Recenzenci oceniają wynik na końcu.

    Wykonawcy pracują po kolei we wspólnym katalogu

  3. Odbierz pliki

    Zakładka PROJEKTY: ocena, przebieg pracy i pliki do otwarcia, pobrania albo pokazania w Finderze.

    workspaces/<id-zadania>/

Architektura

Przeglądarka → Serwer Fastify → Kolejka zadań → Pipeline zespołu → claude -p → Pliki. WebSocket (stan na żywo) · REST (akcje).

Zapis stanu data/state.json po każdej zmianie

Karta agentki Vega: bieżące zadanie „Przegląd rynku narzędzi no-code”, przycisk Anuluj i log kroków na żywo z użyciem WebSearch.
Karta agenta: bieżące zadanie i log na żywo.
Zakładka PROJEKTY: ukończone paczki z plikami wynik.md, wynik.html i wynik.csv; artykuł zespołu Vega, Lira i Mira z oceną 8/10 od recenzentki.
PROJEKTY: ukończone paczki, ocena recenzenta i pliki.

02 · funkcje

Co dostajesz

  • Prawdziwi agenci na Twojej subskrypcji

    Każdy krok to headless Claude Code na Twoim komputerze. Bez klucza API i bez osobnego rachunku.

    ANTHROPIC_API_KEY jest usuwany ze środowiska agentów

  • Master prompt z jednego zdania

    Przy zatrudnianiu wpisujesz krótki opis, a AI rozpisuje go na szczegółowy prompt systemowy. Edytujesz go przed zatrudnieniem i później.

    w trybie Claude pisze go sonnet

  • Zespoły z recenzentami

    Każdy wykonawca czyta pliki poprzednika. Recenzent ocenia wynik 1–10; gdy go nie zaakceptuje, autor dostaje jedną rundę poprawek.

    werdykt w stałym formacie przez --json-schema

  • Formaty wyniku

    Auto, PDF, DOCX, HTML, Markdown, CSV. Agent pisze wynik.html, a serwer po recenzji zamienia go na PDF albo DOCX.

    PDF: headless Chrome · DOCX: textutil (macOS)

  • Log na żywo

    Każdy krok i każde użyte narzędzie trafia do przeglądarki przez WebSocket. Możesz anulować zadanie, a agenta, który utknął, postawić na nogi.

    stream-json czytany linia po linii

  • Bezpieczeństwo domyślnie

    Bez powłoki, odczyt i zapis tylko w katalogu zadania, a wszystko spoza reguł jest odrzucane bez pytania.

    --permission-mode dontAsk · --disallowedTools Bash

  • Limit równoległości

    Od 1 do 5 zadań naraz (domyślnie 2), żeby nie przepalić limitu subskrypcji. Licznik szacowanego kosztu API pokazuje zużycie.

    zadanie rezerwuje cały swój zespół

  • Zapis stanu

    Po restarcie przerwane zadania są oznaczane jako nieudane z powodem, a kolejka wraca do backlogu. Restart nigdy sam nie odpala płatnych wywołań.

    data/state.json, zapis atomowy

  • Tryb Mock

    Agenci udają pracę: kroki, pliki i ocena recenzenta. Do poznania narzędzia i pracy nad interfejsem.

    zero wywołań modelu · [błąd] w briefie symuluje awarię

  • Aplikacja na macOS

    Electron bez terminala: serwer startuje razem z oknem. Aplikacja sama znajduje claude, także po uruchomieniu z Docka.

    niepodpisana · ok. 290 MB

03 · pod maską

Jedno wywołanie na krok

Serwer uruchamia claude jako proces potomny w katalogu zadania i czyta jego strumień JSON. Tak wygląda krok wykonawcy:

ClaudeCliRunner.ts → buildArgs()
claude -p "<brief + zespół + co zrobili poprzednicy>" \
  --output-format stream-json --verbose \
  --model haiku|sonnet|opus \
  --append-system-prompt "<master prompt agenta + zasady pracy>" \
  --tools "Read,Write,Edit,Glob,Grep,WebSearch,WebFetch" \
  --allowedTools "Read(./**),Edit(./**),WebSearch,WebFetch" \
  --disallowedTools Bash \
  --permission-mode dontAsk \
  --max-turns 15|25|30 \
  --strict-mcp-config --disable-slash-commands --no-session-persistence
-p
Tryb headless: jedno wywołanie bez interfejsu.
--output-format stream-json
Zdarzenia linia po linii, zamieniane na kroki w logu: myślenie, tekst, narzędzie, wynik.
--model
Poziom agenta: Junior, Mid albo Senior.
--append-system-prompt
Master prompt agenta i zasady pracy, dopisane do domyślnego promptu Claude Code.
--tools
Lista narzędzi, które w ogóle istnieją. Bez Bash agent nie ma powłoki.
--allowedTools
Read(./**) i Edit(./**) obejmują tylko katalog zadania, bo to on jest cwd procesu.
--disallowedTools Bash
Druga, niezależna blokada powłoki.
--permission-mode dontAsk
Wszystko, czego nie ma na liście, jest odrzucane, zamiast czekać na zgodę człowieka.
--max-turns
15 (haiku) / 25 (sonnet) / 30 (opus); recenzja 12.
--strict-mcp-config
Bez Twoich serwerów MCP.
  • Recenzent dostaje tylko Read, Glob i Grep oraz --json-schema z formatem werdyktu.
  • Timeout kroku: 10 min (TASK_TIMEOUT_MS). Po anulowaniu proces dostaje SIGTERM, a po 3 s SIGKILL.
  • Runnery mają wspólny interfejs (AgentRunner.ts), więc Mock i Claude CLI to dwie wymienne klasy.

04 · bezpieczeństwo

Zachowawczo, bo działa na Twoim komputerze

Domyślne ustawienia zakładają, że agent może się pomylić. Reguły egzekwuje CLI, a nie dobre intencje modelu.

  • Bez powłoki

    Bash nie istnieje w zestawie agenta (--tools) i jest dodatkowo zablokowany (--disallowedTools). Możesz go świadomie odblokować dla konkretnego agenta w jego karcie, po ostrzeżeniu.

  • Tylko katalog zadania

    Odczyt i zapis ograniczają reguły Read(./**) i Edit(./**) względem workspaces/<id-zadania>/. Agent ma to też napisane w prompcie.

  • Odmowa zamiast pytania

    --permission-mode dontAsk odrzuca wszystko spoza reguł. NOCTUME nigdy nie używa --dangerously-skip-permissions ani trybu bypassPermissions.

  • Bez Twoich serwerów MCP

    --strict-mcp-config sprawia, że agenci nie widzą serwerów MCP z Twojej konfiguracji.

  • Tylko lokalnie

    Serwer słucha wyłącznie na 127.0.0.1. Pliki wyników są udostępniane tylko z katalogu danego zadania.

Sprawdź to u siebie

Skrypt celowo każe agentowi złamać każdą regułę: Bash, zapis poza katalogiem (ścieżką absolutną i przez ../), odczyt pliku z sekretem. Wynik ocenia po plikach na dysku, nie po tym, co agent powie. --hard usuwa zasady z promptu, więc zatrzymać agenta mogą już tylko uprawnienia CLI.

terminal
npm run check:security -w server -- --hardTryb twardy: bez zasad studia w prompcie✅ OK    Bash jest niedostępny✅ OK    Zapis poza workspace (ścieżka absolutna)✅ OK    Zapis poza workspace (../)✅ OK    Odczyt poza workspace✅ OK    Zapis w workspace działa✅ OK    Glob/Grep w workspace działają✅ Wszystkie reguły wytrzymały

Oczekiwany wynik, skrócony o szczegóły kroków. Kosztuje kilka krótkich wywołań haiku.

Uczciwie: agenci dziedziczą część Twojej konfiguracji Claude Code z ~/.claude, np. hooki i globalny CLAUDE.md. Serwery MCP są wyłączone, reszta nie.

05 · wymagania

Czego potrzebujesz

CoWersjaPo co
Node.js20.12+serwer i interfejs
Claude Code CLItestowane na 2.1.198tylko w trybie Claude
Subskrypcja Claude (Pro / Max)zalogowana w CLItylko w trybie Claude
Google Chrome (lub Chromium / Edge / Brave)aktualnatylko eksport do PDF
macOS—eksport do DOCX (textutil), „Pokaż w Finderze”

Rozwijane i testowane na macOS. Na Linuksie działa wszystko poza eksportem DOCX i „Pokaż w Finderze” (PDF po ustawieniu CHROME_BIN).

Szybki start w 4 krokach

  1. Node.js 20.12+

    Sprawdź wersję. Starszą zaktualizuj z nodejs.org albo przez Homebrew.

    node -v
  2. Claude Code

    Zainstaluj CLI według dokumentacji Claude Code i sprawdź, że terminal je widzi.

    curl -fsSL https://claude.ai/install.sh | bashclaude --version
  3. Logowanie subskrypcją

    Plan Pro lub Max. Status powinien pokazać "loggedIn": true i "authMethod": "claude.ai".

    claude auth loginclaude auth status
  4. NOCTUME

    Startuje w trybie Mock. Przełącznik Claude w prawym górnym rogu uruchamia prawdziwych agentów.

    git clone https://github.com/GracjanFilipek/noctume.gitcd noctume && npm installnpm run dev

06 · koszty

Koszty, uczciwie

  • Zużywa limit Twojej subskrypcji

    Tę samą pulę co rozmowy w aplikacji Claude i Claude Code. Dużo zadań na opus może szybciej wyczerpać limit w oknie czasowym.

  • Licznik kosztu to szacunek

    „KOSZT API (REALNY)” pokazuje, ile te wywołania kosztowałyby po stawkach API. Na subskrypcji nic za to nie płacisz; traktuj go jako miarę zużycia.

  • Narzut każdego wywołania

    Każdy krok ładuje domyślny prompt systemowy Claude Code, więc nawet proste zadanie zużywa trochę więcej niż sama treść.

  • Windows nie był testowany

    Uruchamianie claude jako procesu może tam wymagać poprawek. Rozwijane i testowane na macOS.