Alle Anleitungen
Erste Schritte
nxs ist die Klammer der nexus-flow-Suite. Es ist eine Binary, die drei Bausteine trägt —
flow (nxf: Projekte, Aufgaben, Abhängigkeiten), memory (nxm: durables Projektwissen) und
chat (nxc: Koordination zwischen Agenten) — über einem gemeinsamen Speicher. Installiert wird
einmal; welche der drei aktiv sind, entscheidest du pro Arbeitsbereich.
Diese Anleitung führt von „nichts installiert" zu einem Arbeitsbereich, dessen Agent sich zu Beginn jeder Sitzung seinen eigenen Kontext zurückholt. Sie ist der eine Ort, an dem die Ersteinrichtung steht; die Anleitungen der einzelnen Bausteine setzen hier auf.
Installieren
curl -fsSL https://nxsflow.com/nxs/install.sh | shDas Skript erkennt die Plattform, prüft den Download — eine sha256 und eine Signatur — und
installiert ein Programm: nxs. Die übrigen Namen sind Symlinks darauf: nxf, nxm und nxc
sind dieselbe Binary, die aus dem getippten Namen entscheidet, welche Persona sie ist. Genau deshalb
können die vier in der Version nie auseinanderlaufen — es gibt nur ein Programm zu aktualisieren.
Die Signaturprüfung braucht entweder minisign oder ein OpenSSL, das Ed25519 beherrscht. Ein
unverändertes macOS hat weder noch (sein openssl ist LibreSSL): also entweder minisign
installieren — brew install minisign — oder mit NXF_INSECURE=1 starten, was allein die sha256
prüft und damit Integrität belegt, aber nicht Herkunft. nxs self-update prüft Signaturen danach
bedingungslos.
nxs --versionEinen Arbeitsbereich einrichten
Ein Arbeitsbereich ist ein .nxs/-Verzeichnis in deinem Projekt: ein Speicher, in den jeder
aktivierte Baustein schreibt. Angelegt wird er so:
nxs initAuf einem echten Terminal fragt das mit den Pfeiltasten, welche Bausteine du willst. Die eigene Unterkonfiguration eines Bausteins läuft sichtbar in diesem Rahmen — flow fragt nach dem Plugin, denn diese Wahl entscheidet über das Vokabular, das du für die Lebensdauer des Arbeitsbereichs liest und schreibst.
Auf einem Agenten oder im Skript benennst du die Bausteine, statt gefragt zu werden:
nxs init --module flow --module memory --jsonBeide Wege landen im selben Arbeitsbereich. Einen weiteren Baustein aktivierst du später mit einem
erneuten nxs init — der Befehl ist idempotent und ergänzt, statt zu ersetzen.
Was nxs init hinterlässt
Vier Dinge, und alle vier sind es wert, gekannt zu werden:
.nxs/— der Arbeitsbereich selbst: ein SQLite-Speicher, über den jeder aktive Baustein seine eigenen Sichten faltet. Er ist git-ignoriert und liegt lokal auf dieser Maschine.- Die geteilte Agenten-Datei — der
AGENTS.md-Abschnitt, den jeder aktive Baustein beisteuert, zu einem Dokument zusammengesetzt statt zu dreien, die sich widersprechen. - Ein SessionStart-Hook je aktivem Baustein —
nxf prime,nxm prime,nxc prime. - Ein Eintrag beim Hintergrunddienst — der Arbeitsbereich kommt auf die Liste, die dieser Dienst
betreut, damit ein hier aufgeschobenes Datum oder ein deklariertes Fenster überhaupt jemanden hat,
der hinsieht. Es ist ein lokaler Verzeichniseintrag und nichts weiter: er synchronisiert nichts,
und es verlässt nichts diese Maschine.
nxs sync unregisternimmt ihn wieder von der Liste.
Der Arbeitsbereich geht jedes davon im Einzelnen durch.
Der Hintergrunddienst, und die Frage, die init dazu stellt
Ein Prozess je Maschine hält die Fristen jedes Arbeitsbereichs, den er betreut, und synchronisiert
die, die an einen Strom gebunden sind. Ohne ihn feuert ein hier fällig werdendes Aufschubdatum
schlicht nie — deshalb bietet nxs init auf einem echten Terminal an, ihn einzurichten:
Set up the nexus-flow background service on this machine?Sagst du nein, wird die Antwort in diesem Arbeitsbereich festgehalten, und kein späteres nxs init
fragt erneut; der Rahmen sagt weiterhin, wie der Dienst steht, und nxs sync daemon install richtet
ihn ein, sobald du es anders willst. Im Skript oder unter --json wird die Frage nie gestellt und
nichts installiert: benenne es ausdrücklich mit nxs init --service, oder erledige die Frage mit
nxs init --no-service.
Der Installer ist macOS-only (es ist ein launchd-Agent). Überall sonst startest du nxs sync daemon
im Vordergrund unter deinem eigenen Supervisor — systemd, runit, was immer du schon hast — und er
hält dort genau dieselben Fristen.
Was den Kontext zu Sitzungsbeginn zurückholt
Die Hooks sind einer je aktivem Baustein, nicht einer für die Klammer — und das ist eine bewusste Umkehr der früheren Form. Der Wirt kürzt jede Hook-Ausgabe für sich, bei 10.240 Byte; drei Hooks tragen also drei Budgets statt eines. Das ist gemessen, nicht angenommen: die Hooks dreier Bausteine von je rund 8 KB kamen vollständig an, zusammen 24 KB, wo ein einzelner kombinierter Hook bei 10 KB abgeschnitten worden wäre.
nxs prime gibt es weiterhin, und es ist weiterhin der Fächer:
nxs primeEs führt das prime-Verb jedes aktiven Bausteins aus und gibt eine Antwort zurück — flows
Brett, memorys Index, chats Kanal — in fester Reihenfolge und mit einem gemeinsamen now, damit ein
Aufschubdatum in einem Lauf für jeden Baustein dasselbe bedeutet. Das ist der Befehl für das ganze
Bild an einer Stelle. Die Sitzungs-Hooks gehen nur nicht mehr darüber.
So oder so gilt die Wirkung, auf die es ankommt: Ein Agent beginnt eine Sitzung und weiß bereits, was dieses Projekt gerade tut, was es gelernt hat und wer sonst daran arbeitet. Ein reiner flow-Bereich liefert genau flows prime; memory erscheint an dem Tag, an dem du memory aktivierst. Konfiguriert wird dafür nichts — die Hook-Menge folgt aus den aktiven Bausteinen.
Welcher Baustein wofür?
Kurz: flow für das, was zu tun ist, memory für das, was das Projekt weiß, chat für Agenten, die miteinander reden. Module ist die längere Antwort und lohnt sich vor den drei Detailanleitungen.
Wie es weitergeht
- Module — wofür jeder Baustein da ist
- Der Arbeitsbereich — was auf der Platte liegt und wie du es gesund hältst
- Dann der Baustein, den du wirklich brauchst: flow, memory, chat
flow — was zu tun ist
Der Issue-Tracker der Suite: Items, die Abhängigkeiten zwischen ihnen, Fälligkeits- und Aufschubdaten, ein append-only Notizstrom und der Grund, aus dem ein Item geschlossen wurde. Das ist die Aufzeichnung dessen, was ein Projekt tut — und warum.
Eine Eigenschaft unterscheidet ihn von einer Ticket-Liste, und sie gehört vor alles andere: die
Arbeitsliste wird abgeleitet, nicht gespeichert. nxf next und nxf blocked werden in dem
Moment, in dem du fragst, aus dem Abhängigkeitsgraphen berechnet; sie können deshalb weder veralten
noch ihm widersprechen. Niemand setzt ein Item auf machbar — das Schließen seiner letzten
Vorbedingung macht es dazu.
Das prägt den ersten Schritt. Er lautet nicht „schreib eine Aufgabe", sondern halte fest, was es gibt und worauf es wartet:
nxf create --type feature --title "Release 1.0 ausliefern" --priority P1
nxf dep add <item> <vorbedingung>
nxf nextWas ein Item ist, kommt aus einem Plugin: die Typen, die du anlegen darfst, das Vokabular, das
du liest und schreibst, und die Rangfolge hinter next. Die Wahl fällt einmal je Arbeitsbereich,
weil sie alles prägt, was du danach tippst — mitgeliefert werden ein Issue-Tracker für
Code-Projekte und eine persönliche To-do-Liste, beide über derselben Engine.
Jeder Befehl antwortet auf --json mit byte-stabiler Ausgabe, und das ist die Fläche, auf der
Agenten bauen: ein Agent kann das ganze Brett bedienen, ohne dass vorher ein Mensch eine Tabelle
liest.
Wohin von hier
- Erste Schritte — vom leeren Verzeichnis zu einem geplanten, verfolgten Stück Arbeit.
- Kernkonzepte — Items, Abhängigkeiten, und wie die beiden Spuren abgeleitet statt gespeichert werden.
- Aufschieben und warten — die eine Unterscheidung, die leicht schiefgeht: ein echtes Kalenderdatum gegenüber dem Warten auf etwas, das erst geliefert werden muss.
memory — was das Projekt weiß
Durable Tatsachen, die die Sitzung überleben, in der sie gelernt wurden: eine Konvention, eine
Falle, der Grund, aus dem eine Entscheidung so ausging. nxm remember schreibt eine,
nxm recall <key> liest sie vollständig zurück, und ein stabiler Schlüssel lässt eine Tatsache an
Ort und Stelle korrigieren, statt widersprüchliche Kopien von ihr anzuhäufen.
Der Zweck ist nicht Ablage, sondern Wiedervorlage. Erinnerungen werden zu Beginn jeder Sitzung zurückgegeben, damit der nächste Agent schon weiß, was der letzte gelernt hat. Nichts daran ist ein Suchproblem: kein Modell auf dem Schreibpfad, keine Embeddings, kein Ähnlichkeitsranking — derselbe Speicher antwortet heute wie in sechs Monaten gleich.
Der erste Schritt ist eine Zeile, und die Disziplin, die damit beginnt, ist eine harte Regel, die
das Sitzungsbanner wiederholt: durables Projektwissen geht in nxm remember und nirgendwo sonst.
Ein MEMORY.md oder eine andere zu diesem Zweck erfundene Datei wird nie zurückgelesen — das Wissen
darin ist still verloren.
nxm remember "Die vier cargo-Tore laufen in CI, nicht lokal" --key gates
nxm memories # das Verzeichnis — eine Zeile je Erinnerung
nxm recall gates # eine Erinnerung, vollständigWas dabei ankommt, ist dieses Verzeichnis, nicht die Erinnerungen selbst: je eine Zeile, die sagt, was die Erinnerung sagt. Deshalb lohnt es sich, sie sorgfältig zu schreiben — niemand schlägt eine Regel nach, bevor er sie bricht, also muss die Verzeichniszeile sie aussprechen.
Wohin von hier
- Erste Schritte — was memory braucht, bevor es laufen kann, und deine erste gemerkte Tatsache.
- Kernkonzepte — Schlüssel und Auto-Schlüssel, die drei Register, die Abrufregel und der Grabstein.
- Agenten und MCP — die
memory_*-Werkzeuge, die ein MCP-Host bekommt, und wohin ein Agent schreibt.
chat — wie Agenten sich abstimmen
Der Kanal zwischen den Agenten eines Arbeitsbereichs. nxc send --to <handle>
beginnt etwas, nxc reply --thread <id> antwortet darauf, und --escalate ist die Art, wie ein
Agent ich kann nicht sagt, statt zu raten.
chat ist ein Substrat, keine Chat-App, und dieser Unterschied ist der ganze Grund, warum es existiert. Eine Nachricht ist nicht unterwegs: sie ist eine Zeile in demselben Speicher des Arbeitsbereichs, in den auch flow und memory schreiben — also durable, mit allem anderen synchronisiert und wiedervorgelegt statt erinnert. Kein Daemon, den man laufen lassen muss, kein Server, auf den man zeigt. Das ist auch die Regel, die Agenten zum Sitzungsstart bekommen: stimmt euch niemals über Kritzeldateien oder Ad-hoc-Notizen ab — die werden nicht zugestellt, nicht synchronisiert und nie wiedervorgelegt.
Wer angesprochen werden darf und wie eine Gruppe von Agenten vorgeht, wird deklariert, nicht
konfiguriert. Eine Persona-Datei je Agent unter .nxs-personas/ gibt ihm eine Identität, seine
Prompt-Schichten, ein Modellband, seine Werkzeuge und die Liste derer, die ihn ansprechen dürfen;
ein Kanal deklariert eine Gruppe — und ein geordneter (flow: sequential) ist der Arbeitsablauf,
nicht seine Beschreibung.
nxc send --to <handle> "<was zu tun ist>" # eine Thread-Id kommt zurück
nxc reply --thread <id> "<die Antwort>"Weil Agenten unbeaufsichtigt laufen, gehören die Grenzen zum Entwurf und sind kein Nachgedanke: eine Hop-Obergrenze, damit ein Gespräch nicht ewig kreist, ein menschliches Tor vor dem, was ein Agent nicht entscheidet, und eine Reservierung auf der Arbeitskopie, damit nicht zwei Agenten gleichzeitig in einem Checkout arbeiten.
Wohin von hier
- Erste Schritte — eine Persona deklarieren und die erste Antwort bekommen.
- Personas und Kanäle — die beiden Deklarationen und der geordnete Kanal, der einen Ablauf trägt.
- Grenzen und Sicherheit — die Hop-Obergrenze, das menschliche Tor und was ein Agent nicht entscheidet.
Darauf bauen, oder mitbauen
Alles bis hierher beantwortet wie benutze ich das. Dieser Teil beantwortet wie ist es gebaut, und worauf darf ich bauen — und dafür stehen zwei Türen offen.
Darauf bauen. nexus-flow ist zuerst eine Bibliothek. Eine Anwendung bindet nexus-flow-facade
ein, hält eine Engine und liest genau die Spuren, die auch die CLI liest — im selben Prozess, ohne
Unterprozess und ohne Daemon dazwischen. Das überlässt das Repository nicht der Prosa:
examples/tauri-board/ ist eine kleine, echte Desktop-Anwendung, die genau das tut, in etwa 120
Zeilen Rust und einer HTML-Datei. Ihr Fenster listet die Arbeit und zeichnet sich von selbst neu,
sobald irgendetwas anderes in denselben Arbeitsbereich schreibt — weil sie den Änderungsstrom der
Engine abonniert, statt ihn abzufragen. Wer hier ist, um eine eigene Oberfläche daraufzusetzen, nimmt
dieses Beispiel als kürzesten Weg hinein.
Mitbauen. Das Projekt nimmt Beiträge an. Die Engine, die CLIs, die Anleitungen, die du gerade liest, und die Tests, die sie ehrlich halten, liegen in einem Cargo-Workspace, und die ganze Qualitätslatte sind vier Befehle, die du auf deiner eigenen Maschine fahren kannst — die nächste Seite zählt sie auf und sagt, welchen davon CI wann fährt. Die Nähte sind beschrieben statt geraten — dafür sind die Seiten unten da.
Beide Türen teilen sich den ersten Schritt: die Quellen holen, bauen, und etwas laufen lassen. Erste Schritte ist dieser Schritt, für beide Fälle.
Wohin von hier
- Erste Schritte — die Quellen auf deiner Maschine, die Tore und die Beispiel-Anwendung.
- Architektur — die Landkarte: fünf Schichten, wohin die Pfeile zeigen, und welche Nähte Verträge sind.
- Die Reise einer Operation — ein
nxf close, verfolgt vom Verb bis zu einer abgeleiteten Antwort, die niemand geschrieben hat — und danach dieselbe Fahrt über zwei Maschinen.