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)
Aplikacja Electron: serwer startuje razem z oknem. Ok. 290 MB, niepodpisana.
Do tego czasu zbudujesz ją sam: npm run desktop:pack.
01 · przepływ
Jak to działa
-
Zatrudnij
Imię, rola, poziom i jedno zdanie opisu. Z opisu powstaje master prompt, który możesz poprawić.
Junior
haiku· Midsonnet· Senioropus -
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
-
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


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_KEYjest 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-jsonczytany 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:
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
Bashagent nie ma powłoki. --allowedToolsRead(./**)iEdit(./**)obejmują tylko katalog zadania, bo to on jestcwdprocesu.--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,GlobiGreporaz--json-schemaz formatem werdyktu. - Timeout kroku: 10 min (
TASK_TIMEOUT_MS). Po anulowaniu proces dostajeSIGTERM, a po 3 sSIGKILL. - 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
Bashnie 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(./**)iEdit(./**)względemworkspaces/<id-zadania>/. Agent ma to też napisane w prompcie.Odmowa zamiast pytania
--permission-mode dontAskodrzuca wszystko spoza reguł. NOCTUME nigdy nie używa--dangerously-skip-permissionsani trybubypassPermissions.Bez Twoich serwerów MCP
--strict-mcp-configsprawia, ż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.
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łyOczekiwany 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
| Co | Wersja | Po co |
|---|---|---|
| Node.js | 20.12+ | serwer i interfejs |
| Claude Code CLI | testowane na 2.1.198 | tylko w trybie Claude |
| Subskrypcja Claude (Pro / Max) | zalogowana w CLI | tylko w trybie Claude |
| Google Chrome (lub Chromium / Edge / Brave) | aktualna | tylko 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
-
Node.js 20.12+
Sprawdź wersję. Starszą zaktualizuj z nodejs.org albo przez Homebrew.
node -v -
Claude Code
Zainstaluj CLI według dokumentacji Claude Code i sprawdź, że terminal je widzi.
curl -fsSL https://claude.ai/install.sh | bashclaude --version -
Logowanie subskrypcją
Plan Pro lub Max. Status powinien pokazać
"loggedIn": truei"authMethod": "claude.ai".claude auth loginclaude auth status -
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
opusmoż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
claudejako procesu może tam wymagać poprawek. Rozwijane i testowane na macOS.