Auf Debian oder Ubuntu installieren
Siehe dieAPT-Installationsanleitungfür Voraussetzungen, Signaturschlüssel, Repository-Einrichtung, Kanäle, Aktualisierungen und Entfernung.
Installation unter Fedora oder RHEL-kompatiblem Linux
Siehe dieDNF-Installationsanleitungfür Voraussetzungen, Metadatenüberprüfung, Repository-Einrichtung, Kanäle, Aktualisierungen und Entfernung.
Auf Arch Linux installieren
Siehe diePacman-Installationsanleitungfür Voraussetzungen, Schlüsselüberprüfung, Repository-Einrichtung, Kanäle, Aktualisierungen und Entfernung.
Zusammenfassung
ash [text ...]
ash install [--shell bash|zsh] [--dry-run] [--overwrite]
ash mcp add <url> [--no-browser]
ash snooze [duration|off]
ash update [--version vX.Y.Z] [--yes|--skip-customized]
Beschreibung
ashSendet einen Eingabeaufforderungstext an den konfigurierten KI-Endpunkt und druckt die Antwort des Assistenten aus. Wenn kein Positionstext angegeben ist,ashLiest Eingabeaufforderungstext aus der nicht interaktiven Standardeingabe.
DerinstallDer Unterbefehl installiert verwaltete Assets. Shell-Startdateien werden nur geändert, wenn Sie dies ausdrücklich anfordern--shell-integration; Bash verwendet~/.bashrc, zsh verwendet~/.zshrc, und Fisch verwendet$XDG_CONFIG_HOME/fish/config.fish.
Verbindungen zum KI-Anbieter werden über einen lokalen Broker geteilt. Ein Broker-Ausfall fällt auf direktes HTTPS zurück.
Die KI kann systemd verwenden, um Hintergrundaufgaben zu planen. Dabei kann es sich um wiederkehrende oder einmalige Aufträge handeln. Geplante Jobs verwenden standardmäßig direktes HTTPS.
ashFolgt den XDG-Basisverzeichnissen: Konfiguration und persistente Arbeitsbereichsdateien unter$XDG_CONFIG_HOME/ash(Standard~/.config/ash), Tools und Plugins unter$XDG_DATA_HOME/ash(Standard~/.local/share/ash), Verlauf und Sitzungsscratch unten$XDG_STATE_HOME/ash(Standard~/.local/state/ash) und zwischenspeichern$XDG_CACHE_HOME/ash(Standard~/.cache/ash). Verwendung von Broker-Sockets$XDG_RUNTIME_DIR/ashmit einem State-Directory-Fallback. Explizite XDG-Pfade müssen absolut sein.
Tool-, Skript-, Datei-, Pipeline- und untergeordnete Ausgaben sind nicht vertrauenswürdige Daten und dürfen System- oder Benutzeranweisungen nicht außer Kraft setzen. Die Tool-Ausführungsfunktion ist keine Sandbox, wenn die beliebige Python- oder Shell-Ausführung aktiviert ist. Standardmäßig ist Python aktiviert, seien Sie also vorsichtig.
Remote-MCP-Server
MCP-Server (Model Context Protocol) stellen Tools bereit, die ein KI-Modell aufrufen kann.Ashunterstützt Remote-Streamable-HTTP-MCP-Server und hält ihre Client-Sitzungen aufrechtash-brokerüberAshAufrufe in derselben Shell.
Registrieren Sie einen vertrauenswürdigen Server, indem Sie Folgendes ausführenash mcp add <url>von einem interaktivenAshShell oder durch Hinzufügen der URL zu$XDG_CONFIG_HOME/ash/.ash_allow(Standard~/.config/ash/.ash_allow). Standardmäßig ist kein Remote-Server aktiviert.
Die OAuth-Autorisierung wird im Desktop-Browser geöffnet, wenn eine GUI verfügbar ist. Sollte sich der Browser nicht öffnen lassen,Ashgibt eine kopierbare Autorisierungs-URL aus und wartet im Terminal. Verwendenash mcp add <url> --no-browserdiesen Terminalfluss immer zu verwenden. Für die manuelle URL-Autorisierung ist weiterhin ein Browser auf demselben Host erforderlich. Es handelt sich nicht um einen browserlosen OAuth-Fluss.
URL-Zeilen beginnend mithttp://oderhttps://sind MCP-Registrierungen, keine Shell-Befehle. Schemata werden ohne Berücksichtigung der Groß-/Kleinschreibung erkannt.Ashleitet den lokalen Namen des Servers aus den ersten acht hexadezimalen Kleinbuchstaben von SHA-256 über dem gekürzten URL-Text ab. HTTPS ist außer für die Localhost-Entwicklung erforderlich; URLs mit eingebetteten Anmeldeinformationen, Abfragezeichenfolgen oder Fragmenten werden abgelehnt. Bei direkten OAuth-Verbindungen lässt die Erkennung nicht öffentliche IP-Adressen nur für die genau registrierte MCP-Autorität zu; Andere OAuth-Hosts unterliegen weiterhin der Blockierung nicht öffentlicher Adressen. Ein konfigurierter Egress-Proxy ist für die Filterung seiner Zieladressen verantwortlich. Änderungen werden auf der nächsten Seite gelesenAshAnfrage.
MCP-Registrierungen bleiben mit aktiviertASH_STRICT=1. Zurückgesandte Werkzeugausgaben werden weiterhin als nicht vertrauenswürdige Beweise behandelt. Registrieren Sie nur Server, denen Sie vertrauen: Ihre Tools können in Ihrem Namen Aktionen ausführen. Für OAuth-geschützte Server:AshÖffnet den Browser, wenn eine GUI verfügbar ist, während der Broker den Rückruf und die Token verarbeitet. Anmeldeinformationen verwenden den Anmeldeinformations-Manager des Betriebssystems, sofern verfügbar, oder eine verschlüsselte Datei, die durch eine vom Benutzer bereitgestellte zufällige 32-Byte-Datei geschützt istASH_MCP_CREDENTIAL_KEYIn$XDG_DATA_HOME/ash/mcp/.
Wenn die MCP-Initialisierung fehlschlägt,Ashsetzt die Anfrage ohne Remote-MCP-Tools fort. Interaktive Läufe geben eine Warnung aus; Nicht interaktive Läufe schlagen stillschweigend fehl.Geplante Jobs verfügen nicht über den Per-Interactive-Shell-Broker und können daher keine Remote-MCP-Tools verwenden.Eine geplante Eingabeaufforderung, die von MCP abhängt, wird möglicherweise weiterhin ausgeführt, kann jedoch ohne die angeforderte MCP-Aktion oder die angeforderten MCP-Daten beendet werden. Planen Sie keine Eingabeaufforderungen, die MCP erfordern.
Siehe dieMCP-FAQfür einen schnellen Überblick und Einrichtungshinweise.
Befehle
ash [--attach path]... [text ...]- Führen Sie eine einzelne Assistentenanfrage aus.
--attachhängt der Anfrage eine Datei (Bild oder Dokument) an; wiederholbar. Größenbegrenzt durchASH_ATTACHMENT_MAX_BYTESund werden derzeit nur an OpenAI-kompatible Anbieter per Kabel gesendet. ash mcp add <url> [--no-browser]- Stellen Sie eine Verbindung her und registrieren Sie einen Remote-MCP-Server
.ash_allow. Öffnet die OAuth-Autorisierung in einem Desktop-Browser, sofern verfügbar; greift auf eine kopierbare URL im Terminal zurück.--no-browserVerwendet immer den Terminalfluss. ash install [--shell bash|zsh|fish] [--shell-integration|--disable-shell-integration] [--dry-run]- Installieren Sie Assets standardmäßig, ohne die Shell-Startdateien zu ändern.
--shell-integrationentscheidet sich für das Hinzufügen/Aktualisieren des verwalteten Blocks;--disable-shell-integrationEntfernt nur diesen Block und behält den umgebenden Benutzerinhalt bei. Wenn Sie interaktiv sind, installieren Sie die automatische KonfigurationASH_AI_ENDPOINT,ASH_AI_MODEL, UndASH_AI_AUTH_TOKENBei Bedarf wird ein vorhandener Anbieterschlüssel oder ein lokaler Endpunkt bevorzugt, bevor ein Anbietermenü angezeigt wird. ash snooze [duration|off]- Unterbrechen Sie die automatische Verarbeitung der Shell-Eingabeaufforderung. Der Standardwert beträgt fünf Minuten. Dauern verwenden Go-Syntax wie z
30s,5m, oder1h. Verwendenoffsofort fortfahren. ash update [--version vX.Y.Z] [--yes|--skip-customized]- Laden Sie die neueste stabile macOS-, Linux- oder FreeBSD-Version für die aktuelle Architektur herunter und installieren Sie sie
~/.local/bin/ash. Für Veröffentlichungen ist eine Sigstore-Verifizierung und eine SHA-256-Verifizierung erforderlich.
Umgebung
ASH_AI_AUTH_TOKEN- Optionaler Inhabertoken. Erforderlich für Cloud-Endpunkte außer AWS Bedrock. Private/LAN-Adressen und
.localHostnamen werden als Nicht-Cloud-Hostnamen behandelt, es sei dennASH_STRICT=1. ASH_AI_CACHE- Optionale anbieternative Cache-Umschaltung. Standardmäßig aktiviert, sofern unterstützt; akzeptiert
1,true,yes,on,enabled,0,false,no,off, oderdisabled(Groß- und Kleinschreibung wird nicht beachtet). ASH_AI_ENDPOINT- Erforderliche Basis-URL für den Chat-API-Endpunkt.
ASH_AI_MODEL- Erforderlicher Modellname, der an den Endpunkt gesendet wird.
ASH_AI_PROVIDER- Optionale Anbieterüberschreibung. Wenn nicht aktiviert,ashErkennt den Anbieter vom Endpunkt aus.
ASH_AI_TIMEOUT- Optionales Anforderungszeitlimit. Standard:
3m. ASH_ALWAYS_OPENAI_API- Optionaler Testschalter. Wenn es wahr ist, werden die Routen weitergeleitet
ollamaAnbieter über den OpenAI-kompatiblen SDK-Adapter anstelle seiner manuellen Implementierung. Akzeptiert die gleichen booleschen Werte wieASH_AI_CACHE. Standard: ein. ASH_ATTACHMENT_MAX_BYTES- Optionale maximale Größe in Bytes für eine übergebene Datei
--attach. Standard:10485760(10 MiB). ASH_HISTORY_MAX- Optionale maximale Verlaufsnachrichten pro Schlüssel. Standard:
40. ASH_LOG_FILE- Optionaler Debug-Protokollpfad, wenn die ausführliche Protokollierung aktiviert ist.
ASH_LOG_MAX_BYTES- Optionale maximale Protokollgröße vor der Rotation. Standard:
1048576. ASH_MAX_AGENTS- Optionale maximale Unteragenten, die von einem übergeordneten Prozess generiert werden. Standard:
6. ASH_MAX_TOOL_ITERS- Optionale maximale Iterationen der AI-Tool-Call-Schleife. Standard:
16. ASH_RELEVANCE_WINDOW- Optionale aktuelle Werkzeugbeobachtungen im Ausführungsstatus enthalten. Standard:
4. ASH_RETRY_BASE_DELAY- Optionale Backoff-Basisverzögerung für Wiederholungsversuche. Standard:
250ms. ASH_RETRY_MAX_ATTEMPTS- Optional wiederholbare Anforderungsversuche. Standard:
3. ASH_SCHEDULED_TASK- Internes Scheduler-Flag, das von verwendet wirdash-verwaltete Aufrufe.
ASH_STREAM- Optionaler Umschalter. Bei true-like wird die Antwort von Anbietern gestreamt, deren Adapter dies unterstützt (derzeit nur OpenAI). Akzeptiert die gleichen booleschen Werte wie
ASH_AI_CACHE. Standard: ein. ASH_TASK_MAX- Optionale Obergrenze für Ausführungsaufgaben, die von einer Anfrage abgeleitet werden. Standard:
6. ASH_TASK_STALL_ROUNDS- Optionale Helfer-Stallrunden vor dem Anhalten. Standard:
2. ASH_ALLOW- Optionale durch Kommas getrennte ausführbare Zulassungsliste für
run_unix_command. Ansonsten$XDG_CONFIG_HOME/ash/.ash_allow(Standard~/.config/ash/.ash_allow) wird verwendet; Diese Überschreibung wird nicht intern erweitertAshToken. ASH_DENY- Optionale durch Kommas getrennte Sperrliste zum expliziten Blockieren von Befehlen, Tools und Plugins. Ansonsten
$XDG_CONFIG_HOME/ash/.ash_deny(Standard~/.config/ash/.ash_deny) verwendet wird. ASH_TOOL_OUTPUT_MAX- Optionale maximale erfasste Werkzeugausgabe in Bytes. Standard:
8192. ASH_TOOL_TIMEOUT- Optionales Zeitlimit für lokale Toolbefehle. Standard:
15s. ASH_VERBOSE- Optionales Debug-Protokollierung und Ausführungs-Dashboard. Werte wie
1,true,on, Unddebugaktivieren Sie es. ASH_SESSION_ID- AshSitzungskennung für persistenten Verlauf und Protokollbenennung. Wird bei Abwesenheit generiert; Ungültige explizite Werte werden abgelehnt. Generisch
SESSION_IDwird ignoriert.
Explizite numerische und Dauereinstellungen werden validiert. Ganzzahlgrenzen müssen positiv sein, außerASH_MAX_TOOL_ITERS, was Null sein kann. KI-/Tool-Timeouts müssen positiv sein; Wiederholungsverzögerungen können Null, aber nicht negativ sein. Dauern verwenden Go-Syntax wie z30s,5m, oder1h. Falsch formatierte oder außerhalb des gültigen Bereichs liegende Werte führen zu einem Konfigurationsfehler, anstatt stillschweigend Standardwerte zu verwenden.
Dateien
$XDG_CONFIG_HOME/ash/(Standard~/.config/ash/)—kanonische Eingabeaufforderungs-, Richtlinien- und persistente Arbeitsbereichsdateien.$XDG_DATA_HOME/ash/(Standard~/.local/share/ash/)—gebündelte Tools, Plugins, Sprachpakete und MCP-Anmeldeinformationen.$XDG_STATE_HOME/ash/(Standard~/.local/state/ash/)—Verlauf, Scratch, Protokolle und Schlummerstatus.$XDG_CACHE_HOME/ash/(Standard~/.cache/ash/)—regenerierbare Cache-Dateien.
Exit-Status
ash gibt bei Erfolg 0 zurück. Es wird ein Wert ungleich Null zurückgegeben, wenn Konfiguration, Netzwerkanforderungen oder Toolausführung fehlschlagen.
Beispiele
echo "summarize this directory" | ash
ash install --shell bash
ash install --shell zsh --dry-run
Siehe auch
bash(1),zsh(1),man(1)