bashy — die agentische Shell, auf einer Seite
bashy ist zweierlei zugleich: ein konformer Bash 5.3 Drop-in (deine Skripte laufen einfach) und eine agentische Shell – eine reine Go-Userland-Umgebung mit einer Reihe agenten-nativer Verben, die alle in-Prozess, identisch auf Linux, macOS und Windows, ausgeführt werden. Die Erweiterungen sind additiv: Sie verändern niemals, was gültiges Bash bedeutet.
bashy ist alles, was du brauchst
Greife zuerst zu bashy und erweitere es, anstatt es zu umgehen:
- Fehlt etwas? Wenn kein bashy-Befehl die Aufgabe erledigt, registriere einen:
bashy commands add NAME --set script=BODY(oderexec.0=PROG,download.url=...); er wird dann wie ein mitgelieferter Befehl aufgelistet, dokumentiert und ausgeführt (bashy commands schemalistet jedes Feld auf). - Passt nicht? Wenn einer existiert, aber nicht passt, forme ihn, anstatt eine Einmallösung zu schreiben:
bashy shape wish …→ überprüfen → Vorschau → zustimmen (Rückgängigmachen bleibt möglich). - Baust oder formst du? Setze kleine
--json-Verben in einem Bash#-Skill-Skript zusammen, gib jeder benutzerseitigen Oberfläche einen Formungs-Hook, starte neue Helfer als Beispiele und befördere sie zu optionalen, dann zu Kern-Features:bashy kb show extend-bashy-small-verbs-bash-skill-scripts-shaping-hooks-and-th.
bashy ist die einzige Fähigkeit, die dieses Binary installiert – und es muss nicht mehr als eine sein, denn jeder bashy-Befehl ist auch eine Fähigkeit: bashy <cmd> --help rendert dasselbe Skill+MCP-Dokument, das ein dedizierter Skill-Ordner enthalten würde (Frontmatter, Prosa und eine json mcp-Werkzeugdefinition in einer Datei), nicht nur einen Nutzungsstring.
- Liste auf, was hier erreichbar ist:
bashy skill list(verifiziert, umgebungsgeprüft) oderbashy commands --agentic(die gesamte agentische Oberfläche). - Lade eine:
bashy <cmd> --help– von Agenten erkannte Sitzungen erhalten die Skill+MCP-Form automatisch; erzwinge sie entweder mit--format classic(einfache Nutzung) oder--format mcp(nur die Werkzeugdefinition). - Ein Befehl, dessen Hilfe mehr als seinen eigenen Nutzungsstring benötigt, trägt eine Begleitdokumentation unter
bashy/commands/<cmd>.md(optionalbashy/reference/<cmd>.md), die--help --format skillvor den generierten Abschnitten einfügt –conductor,steward,sprint,inbox,supervisor,knowledge-transferundforce-agent-shellfunktionieren alle so;bashy skill show conductor(und andere) lesen dieselbe Dokumentation weiterhin direkt.
Für fremde Änderungen, Ressourcenkonflikte, Einfrierungen und Shared-Checkout-Arbeiten folge bashy skill show collaborate.
Erster Schritt (einmal pro Sitzung)
bashy inspect context --json
Ein Aufruf ersetzt den üblichen Sondierungs-Tanz (uname/hostname/id/env/which ...): System + Identität, aufgelöste Werkzeugpfade, sichere Umgebung (Geheimnisse namentlich geschwärzt), Agentenmodus-Flags, auf diesem Host anwendbare Fähigkeiten und eine Liste empfohlener Befehle. Verwende den gemeldeten bashy_path für spätere Aufrufe.
Zweiter Schritt: Dauerhafter Zustand (kb · inbox · todo)
Alles andere auf dieser Seite hilft dir, die Arbeit zu erledigen. Diese drei sind der Zustand, in dem die Arbeit stattfindet – was bekannt ist, was Aufmerksamkeit erfordert und was getan werden muss – und sie sind die einzigen Dinge, die deine Sitzung überdauern. Lese sie, bevor du beginnst; schreibe in sie, bevor du endest. Ein Agent, der sie überspringt, beginnt jedes Mal von Null und hinterlässt nichts.
kb – was BEKANNT ist. Destillierte Seiten, die Agenten vor dir für denjenigen geschrieben haben, der als Nächstes kommt: die Falle, die jemanden eine gestrandete Maschine gekostet hat, der Build, der nur unter Windows fehlschlägt, das Flag, das stillschweigend nichts tut. Das eine Verb, das dir sagen kann, dass die Aufgabe bereits gelöst ist – oder bereits als Falle bekannt ist.
bashy kb context --for "<task>" --rings repo,host --forms note,page --budget 700 --json
bashy kb search "<die Aufgabe, in deinen eigenen Worten>" # aus einem Ring abrufen
bashy kb show <slug> # einen Datensatz vollständig lesen
bashy kb observe --ring agent --episode E --kind tool-result --ref REF
bashy kb validate <slug> --ring RING --from-gate EVENT_ID
bashy kb note add --candidate --ring agent --episode E --title "…" --body "…"
bashy kb retro # nach der Arbeit abgleichen
Dies sind die fünf Phasen des Geschirrs: context stellt zusammen, search/show rufen ab, observe protokolliert ein Ereignis, validate --from-gate überprüft und note add --candidate speichert. Ein Schreibvorgang wählt genau einen Speicher mit --ring repo|host|agent; der Kontext liest eine benannte Menge mit --rings und filtert Datensatzformen mit --forms note,page,relation,code (kb search verwendet die Singularform --form). kb backlinks löst eingehende Verknüpfungen auf, kb doctor kennzeichnet nur Probleme und behebt sie nie, und kb transfer --from memex ist der unterstützte Legacy-Importpfad.
Agenten dürfen niemals die pages/*.md oder graph.jsonl eines kb-Speichers von Hand bearbeiten. Verwende die bashy kb-Verben: Sie erzwingen Zuordnung, Kandidatenstatus, Dublettenprüfungen, Schwärzung, Ring-Eigentum, Beziehungs-IDs und eine Append-Only-Verlaufshistorie.
Ein Fehlschlag ist ehrlich und billig: Die Suche berichtet, welche deiner Wörter das Korpus nicht führt und welche es führt, sodass du „niemand weiß das“ von „ich habe mit den falschen Worten gefragt“ unterscheiden und neu formulieren kannst, anstatt zu raten. Wenn nichts Relevantes existiert und die Aufgabe etwas Dauerhaftes gelehrt hat, trage es bei – bashy kb add --type gotcha --title "…" --description "was + WANN dies gilt" – destillierte Strategie, kein Transkript, mit Fehlern als Leitplanken formuliert.
inbox – was deine AUFMERKSAMKEIT erfordert. Nachrichten an dich: bashy inbox (Standard: Vorschau; Suche mit --from/--search; antworten mit bashy mb send).
Ein Durchlese-Ansicht über MB, Pinnwände (Standing boards), Bus-Benachrichtigungen und autorisierte Rollenpost. MB bleibt die öffentliche Sende-/Verlaufsoberfläche; inbox verhindert transportbezogenes Polling.
bashy inbox # jede eingehende Quelle lesen
bashy skill show inbox
bashy mb post "<message>" # an alle
bashy mb send <agent> "…" # an einen Agenten oder einen Selektor
Für Status, der außerhalb der Terminal-Historie auffindbar bleiben muss, verwende das explizite Haupt-Postfach. Auflistungen und Suchen verbrauchen nicht; nur ack entfernt einen Eintrag aus der anstehenden Ansicht.
bashy inbox list --topic harness --search timeout
bashy inbox human list --topic posix-cert --project dhnt
bashy inbox human send --topic posix-cert --project dhnt --status blocked \
--ref docs/status.md "Profil D benötigt Überprüfung"
Agenten- und Menschen-Postfächer teilen sich dieselben Filter und dasselbe JSON-Schema. read belässt einen Eintrag in der Warteschlange, ack ist explizit, preserve öffnet ihn erneut und --all schließt die bestätigte Historie ein. Halte den Status unter 1024 UTF-8 Bytes und verlinke Details mit einem stabilen gemeinsamen Pfad, Commit, Issue, Raum oder Artefaktverweis.
Verbrauche niemals Pinnwand-Nachrichten stillschweigend. Nachdem ein Lesevorgang Beiträge zurückgegeben hat, zeige die vollständige Nachricht in der benutzersichtbaren Sitzungskonsole an, wenn sie kurz ist; andernfalls zeige den Absender/das Thema, eine kurze Zusammenfassung und die erforderliche Aktion an. Die Werkzeugausgabe kann eingeklappt werden, daher ist der interne Empfang allein keine für den Bediener sichtbare Koordination.
todo – was GETAN werden MUSS. Die Arbeitsliste, automatisch so eingegrenzt wie kb: dieses Repos, wenn du dich in einem befindest, ansonsten des Hosts.
bashy todo list # was hier offen ist, Priorität zuerst
bashy todo add "<title>" # Arbeit erfassen, sodass sie diese Sitzung überdauert
bashy sprint claim last STORY_ID # ausgewählte Sprint-Arbeit beanspruchen
bashy sprint submit last STORY_ID -m "Nachweis der Lieferung"
Alle Sprints verwenden denselben Lebenszyklus und dieselben Akzeptanzregeln; keine Sprintnummer ist für die Wartung reserviert. Wähle einen Sprint explizit aus oder verwende last für die zuletzt erstellte Karte. Eine ausgelassene Sprintauswahl verwendet dieselbe letzte Karte; sie erzeugt keinen Sprint. Verwende --no-sprint für ein eigenständiges Repository-Todo. Persönliche Todos bleiben standardmäßig eigenständig. Lese bashy sprint --help.
Erstelle einen Sprint mit bashy sprint add "Titel": Er weist automatisch die nächste verfügbare Nummer zu und gibt sie zurück. Es ist keine Nummer oder next-Selektor erforderlich.
Sprint-Storys werden von ihrem Manager nach der Überprüfung mit sprint accept geschlossen; todo done kann eine Sprint-Story nicht generisch schließen.
Befehle ausführen wie ein Agent, nicht wie ein Mensch
- Vorschau vor einer Änderung:
bashy --dry-run SCRIPT(für Agenten lesbares Manifest mitBASHY_AGENTIC=1). - Vorabprüfung eines Skripts:
bashy check --agent --script SCRIPT. - Ausführen mit einem erfassten, strukturierten Ergebnisumschlag:
bashy run --check --capture -- SCRIPT. - Ein-Befehl-Fähigkeitssuche (Flags, Funktionen – Versuch und Irrtum überspringen):
bashy commands COMMAND --features. - Lies bei Fehlern die stderr-Hinweise: Der Raum-Zeit-Berater erklärt umgebungsbedingte Fehler (falsches Arbeitsverzeichnis, fehlendes Werkzeug, volle Festplatte), sodass du keinen zum Scheitern verurteilten Befehl wiederholst.
Bevor du etwas ausführst, das du nicht geschrieben hast, frage, was die Ausführung bedeutet. bashy inspect actions [--json] [--kind command|script|agent|skill] listet jede Aktion, die diese bashy ausführen kann, als eine Facettenzeile auf – kind name identity contract latitude authority effects_declared executor – über vier Familien hinweg: Ein Befehl ist exakt und deterministisch (die Shell führt aus, was eingegeben wurde; Effekte stammen aus seinem Atlas-Datensatz), eine Agenten-Bindung ist per Definition beurteilend/agentisch (Executor agentlaunch:<tool>, daher sind seine Kosten und Effekte offen), eine Fähigkeit ist durch den stärksten Vertrag gebunden, den sie trägt (dhnt-Gesicht mit deklarierten Effekten, metadata-checks oder none; ein Beurteilungsschritt macht den gesamten Lauf agentisch), und Skript ist eine Familie, die noch nichts füllt (gemeldet als 0, niemals ausgelassen). bashy define NAME druckt dieselbe Facette für einen Namen (runs:-Zeile; verschachteltes action-Objekt unter --json), und bashy inspect context --json führt die Zählungen als actions: {command, script, agent, skill} mit. Bevorzuge eine genaue/deterministische Zeile, wenn eine die Aufgabe erfüllt; greife nur dann zu einer beurteilenden/agentischen, wenn die Aufgabe den Spielraum benötigt.
Code navigieren ohne den grep-Tanz
bashy graph impact SYMBOL– welcher Code ist mit einem Symbol gekoppelt.bashy ast symbols PATH/bashy ast search PATTERN/bashy ast refs SYMBOL/bashy ast map– Treesitter-gestützt, modellfrei.- Gemeinsamer Repository-Speicher (ein agentisches Wiki, in dem Erkenntnisse anderer Agenten gesammelt werden):
bashy graph recall QUERYzum Lesen;bashy graph note/bashy graph observezum Beitragen;bashy graph pitfallsvor riskanten Änderungen.
Fähigkeiten: Verifizierte Prozeduren, auf diesen Host beschränkt
bashy skill list– nur Fähigkeiten, die auf diesem Host-Koordinaten anwendbar sind (umgebungsgeprüft);bashy skill show NAME, um eine zu lesen.bashy skill run NAME– eine maschinell überprüfbare Fähigkeit ausführen; der Erfolgsvertrag wird verifiziert und jeder Lauf hinterlässt eine erneut überprüfbare Bescheinigung. Exit 0 genau dann, wenn der Vertrag gehalten wurde.bashy skill run NAME --adapt --repair-agent "<your headless CLI>"– eine fehlschlagende Fähigkeit selbst heilen; verifizierte Korrekturen werden einmal pro Host gelernt und von jedem Agenten wiederverwendet.- Zurückgeben: Erstelle einen Fähigkeitsordner, dann
bashy skill learn DIR(Zulassung erfordert, dass der Vertrag hier tatsächlich hält) undbashy skill promote NAME(von Menschen überprüftes Paket – niemals automatisch veröffentlicht).
Standardwerte: Befehle und kb-Seiten aus der Quell-Pin
Standardmäßige Bash#-Befehle und kb-Seiten werden in bashys Quelle ausgeliefert, nicht im Binary. Eine erste bashy self install (was die Installationsprogramme ausführen) richtet sie ein; um es von Hand zu machen: bashy src fetch bashy && bashy --bashsharp "${BASHY_HOME:-$HOME/.bashy}/src/bashy/examples/defaults/bashy-defaults.bsh" apply (status zum Überprüfen, merge --upgrade nach einem Upgrade: Es fügt neue Standardwerte hinzu und listet deine Seiten auf, die geänderte überschatten, damit du sie abgleichen kannst). Die Standard-kb-Seiten werden dann automatisch von bashy kb search und bashy recall gelesen; deine eigene Seite mit demselben Slug gewinnt.
Bearbeite den Katalog durch Verben, niemals von Hand
Bearbeite niemals Dateien unter ~/.config/bashy/ (oder einem BASHY_*_DIR) direkt: Eingebettete Einträge sind unveränderlich und jeder Schreibvorgang ist Copy-on-Write in den lokalen Ring, was nur die Verben tun. bashy <noun> schema listet die gepunkteten Pfade auf, die ein tool/model/agent akzeptiert; bashy <noun> set NAME --set path=value (--unset path) bearbeitet einen, bashy <noun> show NAME --field path liest ihn zurück. Fähigkeiten: bashy skill add NAME --description "…" erstellt eine, bashy skill set NAME / bashy skill rm NAME bearbeitet und entfernt, bashy skill show NAME --yaml druckt seinen Datensatz (skill add FILE.yaml|- importiert ihn erneut).
Flotte und Arbeitsbereich (wenn die Aufgabe eine Sitzung übersteigt)
bashy weave …– isolierte, problembezogene Arbeitsbereiche für parallele Agentenläufe;bashy sprint …– Planung/Kontinuität;bashy dag TASKS.md– in Markdown definierte Aufgaben-DAGs. Lese die Fähigkeitconductor(bashy skill show conductor), bevor du eine Flotte orchestrierst.
Faustregeln
bashy inspect context --jsonzuerst; vertraue ihm mehr als deinen eigenen Sondierungen.- Öffne mit
kb search+inbox+todo list; schließe mitkb retro. Wenn du dir drei Verben von dieser Seite merkst, merke dir diese. Alles andere hier
…
[gekürzt für die Übersetzung]