Antworten

Häufig gestellte
Fragen.

Klare Antworten zu Installation, Anbietern, MCP-Servern, Sicherheitsgrenzen, Tools und den Dateien, die ash auf Ihrem Computer verwaltet.

Erste Schritte

Was brauche ich, bevor ich es verwenden kann?ash?

Du brauchst dasashausführbare Datei, einen KI-Endpunkt und einen Modellnamen. Läuftash installkonfiguriert diese automatisch: Es verwendet einen bereits festgelegten API-Schlüssel eines Cloud-Anbieters oder einen laufenden lokalen Inferenzserver, wenn es gefunden wird. Andernfalls wird ein nummeriertes Anbietermenü angezeigt und zur Eingabe eines API-Schlüssels aufgefordert. Anschließend können Sie ein Modell aus der Modellliste des Endpunkts auswählen. Sie können auch einstellenASH_AI_ENDPOINTUndASH_AI_MODELmanuell. Ein lokaler Endpunkt wie Ollama kann verwendet werdenhttp://localhost:11434, und ein LAN-Host wiehttp://brain.local:11434oder eine private IP wird ebenfalls als lokal behandelt (es sei dennASH_STRICT=1); Cloud-Endpunkte müssen HTTPS verwenden und erfordern normalerweiseASH_AI_AUTH_TOKEN. Die Shell-Integration ist optional: Sie können jederzeit ausführenash "your question"direkt.

Woher kommt dasashinstallieren, und wie überprüfe ich, ob meine Shell es finden kann?

Der verifizierte Installer platziertashIn~/.local/bin/ash. Fügen Sie dieses Verzeichnis zu Ihrem hinzuPATHVerwenden der normalen Konfiguration Ihrer Shell;ash installbearbeitet Shell-Startdateien nicht, es sei denn, Sie bestehen--shell-integration. Öffnen Sie ein neues Terminal und führen Sie es auscommand -v ashzu bestätigen. Der Selbstaktualisierer installiert seine Ersatzbinärdatei am selben lokalen Speicherort des Benutzers. Das Installationsprogramm erfordert Sigstorecosignum das signierte Prüfsummenmanifest zu überprüfen.

Wie verwende ichashohne meine Shell zu ändern?

Übergeben Sie eine zitierte Eingabeaufforderung direkt:ash "how do I find large files?". Ohne Argumente,ashAkzeptiert auch eine nicht interaktive Standardeingabeaufforderung, zgit diff | ash. Der direkte Einsatz ist beim Lernen die am wenigsten überraschende Optionashoder ein Drehbuch schreiben.

WarumashAngenommen, meine KI-Konfiguration ist unvollständig?

Überprüfen Sie dasASH_AI_ENDPOINTUndASH_AI_MODELsind in der Umgebung, in der sie nicht leer sindashläuft. Für einen Cloud-Hostnamen ebenfalls festlegenASH_AI_AUTH_TOKENwenn der Anbieter dies verlangt. Laufenprintf '%s\n' "$ASH_AI_ENDPOINT" "$ASH_AI_MODEL"um zu bestätigen, dass die ersten beiden Werte vorhanden sind, drucken Sie jedoch kein Authentifizierungstoken in eine Terminalaufzeichnung oder ein freigegebenes Protokoll.

Installieren und Aktualisieren

TutashArbeiten unter Windows 11?

Nicht nativ.ashunterstützt Bash, ZSH und Fish unter macOS, Linux und FreeBSD; Es gibt kein PowerShell-Installationsziel. Verwenden Sie WSL für das unterstützte Linux-Erlebnis.

Wie installiere ichashim Windows-Subsystem für Linux (WSL)?

Folgen Sie demAnleitung zur Linux-Installationin Ihrer WSL-Distribution, wobei Sie den Paketmanager bevorzugen. DannKonfigurieren Sie einen Anbieter und aktivieren Sie optional die Bash-Integration. Es gibt kein natives Windows-Installationsprogramm.

Wie aktualisiere ichashauf die neueste Release-Version?

Verwenden Sie den besitzenden Paketmanager für Homebrew/APT/DNF/Pacman-Installationen.ash updateist nur für stabile Release-Installationen unter~/.local/bin; Es überprüft das von Sigstore signierte Manifest und den Archiv-Digest und lehnt eine fehlgeschlagene Signatur ab. Für native .pkg- und benutzerdefinierte Verzeichnisinstallationen ist das ursprüngliche Installationsprogramm bzw. der manuelle Ersatz erforderlich. SehenUpdates und Kanalabonnementsfür Release, Beta und Nightly.

Ich bin geranntash install. Warum ändert sich an diesem Terminal nichts?

Die Shell-Integration ist standardmäßig deaktiviert. Um es zu aktivieren, führen Sie es ausash install --shell bash --shell-integration(oder auswählenzshoderfish); Der bereits laufende Shell-Prozess wird nicht neu geschrieben. Öffnen Sie ein neues Terminal oder laden Sie die ausgewählte Startdatei neu. Laufenash install --shell bash --disable-shell-integrationzu entfernenAsh's verwalteter Block unter Beibehaltung des umgebenden Inhalts.

Bei unbekannten Befehlen wird immer noch „nicht gefunden“ angezeigt. Wie behebe ich Probleme bei der Shell-Integration?

Bestätigen Sie zunächst, dass Sie die Shell-Integration mit aktiviert habenash install --shell bash --shell-integration(Ersetzen Sie Ihre Shell) und führen Sie dann auscommand -v ash; Der Hook kann keine Binärdatei aufrufen, die Ihre Shell nicht finden kann. Laden Sie die Shell neu oder starten Sie sie neu und überprüfen Sie, ob die Startdatei Folgendes enthält>>> ash install >>>verwalteter Block. Endlich laufenash snooze off, weil ein Snooze absichtlich unbekannte Befehle als normale „nicht gefunden“-Fehler belässt.

Welche Dateien tunash installändern, und kann ich eine Vorschau davon anzeigen?

Es verwaltet die Konfiguration unter$XDG_CONFIG_HOME/ash(Standard~/.config/ash), Daten unter$XDG_DATA_HOME/ash(Standard~/.local/share/ash), Zustand unter$XDG_STATE_HOME/ash(Standard~/.local/state/ash) und zwischenspeichern$XDG_CACHE_HOME/ash(Standard~/.cache/ash). Startdateien werden nur mit geändert--shell-integration. Verwendenash install --shell bash --shell-integration --dry-runzur Vorschau; dry-run schreibt keine Dateien. Eine erneute Installation ist idempotent; verwenden--overwriteNur wenn Sie verwaltete Bootstrap-Dateien aktualisieren möchten.

TutashFisch unterstützen?

Ja. Laufenash install --shell fish --shell-integrationsich anzumelden.ashFügt einen verwalteten Block hinzu$XDG_CONFIG_HOME/fish/config.fish, oder~/.config/fish/config.fishwenn XDG_CONFIG_HOME nicht gesetzt ist. Fisch verwendetfish_command_not_found, sodass ein ungelöster Befehl erreicht wirdashmit seinen ursprünglichen Argumenten.

Warum nicht Kleinbuchstaben?testUndtypeim Fisch?

Fish behält diese Kleinbuchstaben als wesentliche Builtins und lässt nicht zu, dass eine Funktion sie ersetzt. VerwendenTest ...oderType ...auszudrückenashAbsicht oder Berufungash "..."direkt. Andere kompatible Kollisionswrapper bleiben verfügbar.

Was ist mit ksh93?

ksh93 wird für die Shell-Integration nicht unterstützt. Es istFPATHVerhalten kann nur eine Datei laden, die nach einem unbekannten Befehl benannt ist; Es gibt keinen generischen Rückruf für nicht gefundene Befehle, der sicher implementiert werden kannashsofortiges Routing oder Broker-Lebenszyklus.

KI und Verbindungen

Tutashdie KI einbeziehen?

NEIN.ashist ein Client für einen KI-Endpunkt, den Sie konfigurieren. SatzASH_AI_ENDPOINTUndASH_AI_MODEL;ashunterstützt lokale Ollama- und andere lokale OpenAI-kompatible Server (LM Studio, llama.cpp, MLX, LocalAI, vLLM, text-generation-webui, Jan, GPT4All) und erkennt unterstützte Cloud-Provider-Adapter vom Endpunkt aus, optionalASH_AI_PROVIDERüberschreiben.

Was sind MCP-Server und wie füge ich einen hinzu?

MCP-Server (Model Context Protocol) stellen Tools bereit, die ein KI-Modell aufrufen kann, beispielsweise Suche, Analyse oder dienstspezifische Aktionen. Remote-Server sind standardmäßig nicht aktiviert. Um einen vertrauenswürdigen Streamable HTTP MCP-Server hinzuzufügen, verwenden Sieash mcp add <url>oder fügen Sie die URL in einer eigenen Zeile hinzu$XDG_CONFIG_HOME/ash/.ash_allow(Standard~/.config/ash/.ash_allow).Ashstellt über seinen Broker eine Verbindung her und bietet dem Modell die Tools des Servers an. Verwenden Sie nur Server, denen Sie vertrauen: Deren Tools können in Ihrem Namen Aktionen ausführen. HTTPS ist erforderlich, außer für Localhost-Entwicklungsserver. Wenn die MCP-Initialisierung fehlschlägt,ashWird ohne Remote-MCP-Tools fortgesetzt: Es warnt in interaktiven Sitzungen und bleibt in nicht interaktiven Sitzungen stumm.

Können geplante Jobs MCP-Server verwenden?

Nein. Geplante und andere nicht interaktive Jobs erben nicht den Broker einer interaktiven Shell, sodass Remote-MCP-Tools nicht verfügbar sind.AshFührt die Eingabeaufforderung weiterhin ohne MCP-Tools aus und unterdrückt diesen erwarteten Initialisierungsfehler. Eine Eingabeaufforderung, die auf MCP basiert, kann daher ohne die angeforderten Daten oder Aktionen beendet werden. Planen Sie keine Eingabeaufforderungen, die MCP erfordern.

Funktioniert MCP wann?ASH_STRICT=1?

Ja. Eine HTTP(S)-URL-Zeile registriert explizit einen MCP-Server und wird nicht als ausführbare Shell-Datei behandelt. Der strikte Modus deaktiviert konfigurierte MCP-Server nicht. Es gilt immer nochAshDer Schutz vor nicht vertrauenswürdiger Ausgabe für zurückgegebene Toolinhalte.

Wie funktioniert MCP OAuth und wo werden Anmeldeinformationen gespeichert?

Für einen OAuth-geschützten Server:Ashöffnet die Autorisierungsseite im Desktop-Browser, wenn eine GUI verfügbar ist; Wenn kein Browser geöffnet werden kann, wird eine URL zur manuellen Autorisierung in einem Browser auf demselben Host gedruckt. Verwendenash mcp add <url> --no-browserimmer den Terminalfluss zu verwenden. 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. Der Broker übernimmt den Rückruf, den Token-Austausch, die Aktualisierung und die dauerhafte MCP-Sitzung. Anmeldeinformationen werden im Anmeldeinformations-Manager des Betriebssystems gespeichert, sofern verfügbar. Wenn es nicht verfügbar ist, konfigurieren Sie den Fallback für verschlüsselte Dateien mit einem zufälligen 32-Byte-WertASH_MCP_CREDENTIAL_KEY;Ashspeichert niemals den Schlüssel selbst.

Wo finde ich den AUTH_KEY für die beliebtesten Cloud-KI-Anbieter?

ashverwendetASH_AI_AUTH_TOKENfür sein optionales Inhaber-Token; Es werden keine Anbieterschlüssel erstellt oder verteilt. Erstellen Sie einen Schlüssel in Ihrem Provider-Konto, zOpenAI,Anthropisch,Google AI Studio,Azure OpenAI,Mistral,Zusammenhängen,Groq,xAI,DeepSeek,Gemeinsam KI,OpenRouter,Umarmendes Gesicht, oderOllama, und exportieren Sie es dann als Umgebungsvariable (oder Set) des AnbietersASH_AI_AUTH_TOKENdirekt).ash installErkennt automatisch unterstützte anbieterspezifische Umgebungsvariablen. Cloud-Endpunkte müssen HTTPS verwenden und erfordern ein Token, außer AWS Bedrock; private/LAN-Adressen und.localHostnamen werden als lokal behandelt, sofern nichtASH_STRICT=1eingestellt ist.

Tutashjedes Mal eine neue Verbindung öffnen?

Nicht für den normalen interaktiven Unix-Shell-Gebrauch geeignet. Bash, zsh und Fish starten einen Broker pro Shell-Sitzung, kommunizieren mit ihm über einen privaten Unix-Socket und verwenden seinen begrenzten HTTP-Verbindungspool wieder. Der Broker wird nach Inaktivität beendet. Geplante Jobs verwenden direkte Anforderungen anstelle eines dauerhaften Shell-Brokers.

Nutzt Fish den Broker?

Ja. Der Fish-Wrapper startet und verwendet pro Sitzung denselben Broker wie bash und zsh und aktualisiert seine Lease unmittelbar vor einemashAnfrage und sorgt dafür, dass die Einrichtung des Brokers geräuschlos bleibt.

Was passiert, wenn eine Anfrage langsam oder nicht verfügbar ist oder ich meine Meinung ändere?

DrückenCtrl-Cum eine Anfrage während des Fluges zu stornieren. Das standardmäßige Zeitlimit für AI-Anfragen beträgt drei Minuten. SatzASH_AI_TIMEOUT, Zum BeispielASH_AI_TIMEOUT=90s, um es zu ändern.ashWiederholbare KI-Fehler werden standardmäßig bis zu dreimal mit einem kurzen, begrenzten Backoff wiederholt. stimmen Sie dieses Verhalten mit abASH_RETRY_MAX_ATTEMPTS,ASH_RETRY_BASE_DELAY, UndASH_RETRY_MAX_DELAY.

Sicherheit und Kontrolle

Wie sperre ich ab?ashum sicherer zu sein, und was sind die Auswirkungen?

Halten Sie die Liste der ausführbaren Dateien eng, bevorzugen Sie schreibgeschützte Tools und fügen Sie keine privilegierten oder destruktiven Befehle hinzu. SatzASH_STRICT=1um erkannte Prompt-Injection-Muster aus der Ausgabe nicht vertrauenswürdiger Tools, Dateien, Skripts, Pipelines und untergeordneter Agenten zu blockieren. Dadurch kann auch legitimer Text ausgeblendet werden, der einem Injektionsversuch ähnelt. Die Zulassungsliste ist eine Ausführungsgrenze, keine Sandbox:ashund erlaubte Tools laufen weiterhin wie Sie.

KannashFühren Sie destruktive Befehle aus wierm?

Nicht mit der installierten Standard-Zulassungsliste. Davon wird ausdrücklich abgeratenrm,mv,dd,chmod,chown,kill, Undsudo. Wenn Sie einen davon hinzufügen,ashkann es mit Ihrer Erlaubnis anfordern; Überprüfen Sie diese Entscheidung sorgfältig.

Wie ändere ich die Befehle?ashdarf ausgeführt werden?

Bearbeiten$XDG_CONFIG_HOME/ash/.ash_allow(Standard~/.config/ash/.ash_allow) und listen Sie die Namen der bloßen ausführbaren Dateien auf, einen pro Zeile oder durch Kommas getrennt. Es ist eigenständig$TOOLS_DIR_LISTUnd$PLUGINS_DIR_LISTDirektiven erlauben berechtigte verwaltete Skripte und native Plugins; Ersetzen Sie sie durch wörtliche Namen für eine restriktive Richtlinie. Geeignete Skripte und Plugins sind reguläre ausführbare Dateien unter$XDG_DATA_HOME/ash/toolsUnd$XDG_DATA_HOME/ash/plugins(Standardbasis~/.local/share/ash). Abgelehnte Befehle hinzufügen zu$XDG_CONFIG_HOME/ash/.ash_deny, oder einstellenASH_ALLOW/ASH_DENYin durch Kommas getrennte Listen. Änderungen werden auf der nächsten Seite gelesenashAnfrage.

Welcher Benutzer istashunterlaufen?

ashund jedes erlaubte Tool wird als der Benutzer ausgeführt, der es startetash. Dadurch werden die Privilegien nicht erhöht.Ash-Verwaltete XDG-Verzeichnisse und -Dateien verwenden restriktive Berechtigungen, ihre Inhalte bleiben jedoch für Ihren Benutzer und jeden Prozess, den Sie ausdrücklich zulassen, zugänglich.

TutashVertrauenstext, der über Pipe empfangen wird, ist derselbe wie Benutzertext? Welche Schutzmaßnahmen gibt es für bösartige Daten?

Ja. Wannashkeine Befehlszeilenargumente empfängt und die Standardeingabe weitergeleitet wird, behandelt es diese Eingabe als Benutzeraufforderung. Leiten Sie keine nicht vertrauenswürdigen Webseiten, Protokolle oder generierten Texte direkt weiterashes sei denn, Sie beabsichtigen, es als Eingabeaufforderung zu autorisieren. Dies unterscheidet sich vonash-verwaltete Tool-, Datei-, Skript-, Pipeline- und untergeordnete Agent-Ausgabe:ashbezeichnet diese Ergebnisse als nicht vertrauenswürdige Beweise und weist das Modell an, niemals den darin enthaltenen Anweisungen zu folgen. SatzASH_STRICT=1um zusätzlich bekannte Prompt-Injection-Phrasen in nicht vertrauenswürdigen Beweisen zu ersetzen. Die Ausführungsregeln „Zulassungsliste“ und „Direct-Argv“ gelten weiterhin für die Toolausführung.

Sind meineashDateien von anderen Benutzern auf diesem Computer privat halten?

Ash-Verwaltete XDG-Verzeichnisse und -Dateien verwenden restriktive Berechtigungen nur für Besitzer, sofern dies unterstützt wird. Dies schützt vor anderen lokalen Konten mit normalen Unix-Berechtigungen, jedoch nicht vor Ihrem eigenen Konto, Administratoren, Backups oder Software, die Sie mit Zugriff auf Ihr Home-Verzeichnis ausführen.

Tools und Workflow

TutashSupport-Pipes und andere Unix-Traditionen?

Ja. Sie können Text einfügenashals Aufforderung zum Beispielgit diff | ash. Für von der KI angeforderte Tool-Pipelines:ashunterstützt zwei bis sechzehn ausführbare Dateien auf der Zulassungsliste, die direkt ohne Shell verbunden sind, zls | grep pattern | pbcopy. Shell-Kontrollmuster in Tool-Argumenten werden blockiert und jede ausführbare Datei in einemashDie verwaltete Pipeline muss auf der Zulassungsliste stehen.

WilleashBefehle in meinen Shell-Skripten, SSH-Befehlen oder Cron-Jobs neu interpretieren?

Nein. Die Bash- und ZSH-Integrationswrapper kehren in nicht interaktiven Shells sofort zurück, sodass Skripte, CI-Jobs, SSH-Einzeiler und Cron-Befehle das normale Verhalten beibehalten, wenn ein Befehl nicht gefunden wird. Verwenden Sie einen expliziten Aufruf, zash "summarize this log"odersome-command | ashwann die Automatisierung anrufen sollash.

Wie höre ich aufashdavon abzuhalten, meine Befehle ein paar Minuten lang zu interpretieren?

Laufenash snoozefür die standardmäßigen fünf Minuten, oder geben Sie eine Dauer an, zash snooze 30soderash snooze 1h. Laufenash snooze offsofort fortfahren. Snooze unterbricht die automatische Weiterleitung bei nicht gefundenen Befehlen und das Wrapper-Routing. explizitash ...Befehle funktionieren immer noch.

Wie kann ich debuggenashund mehr Informationen darüber sehen, was es tut?

SatzASH_VERBOSE=1vor dem Laufenashum eine strukturierte Debug-Ausgabe und ein Terminal-Ausführungs-Dashboard zu ermöglichen. SatzASH_LOG_FILEum Debug-JSON in eine Datei zu schreiben;ASH_LOG_MAX_BYTESsteuert die Rotation und ist standardmäßig auf 1 MiB eingestellt, wenn eine Protokolldatei konfiguriert wird.

Welche Grenzwerte gelten wann?ashLäuft Werkzeuge?

Standardmäßig hat jeder Tool-Aufruf eine Zeitüberschreitung von 15 Sekunden und erfasst bis zu 8192 Byte Ausgabe. Eine KI-Anfrage kann bis zu 16 Tool-Loop-Iterationen durchführen und eineashDie verwaltete Pipeline besteht aus zwei bis sechzehn Stufen. Passen Sie das Tool-Timeout und die Ausgabegrenze mit anASH_TOOL_TIMEOUTUndASH_TOOL_OUTPUT_MAX; Halten Sie die Ausgabe mit Befehlen wie „fokussiert“.head,tail, odergrep.

Wo ist die Standard-Systemaufforderung?

Die kanonische Eingabeaufforderungsdatei ist$XDG_CONFIG_HOME/ash/.ash_system(Standard~/.config/ash/.ash_system), wird bei der Ausführung standardmäßig aus dem Paket installiertash install. Vorhandene Dateien unter den alten~/.ashArbeitsbereich werden nicht automatisch migriert oder gelesen. Normal$VARIABLEWerte werden aus der Umgebung erweitert, aber$TOOLS_DIR_LIST,$PLUGINS_DIR_LIST, Und$IF_PYTHON_AVAILABLEsind intern reserviertAshSubstitutionen und niemals von der Umgebung abgeleitet.

Wo stelle ich meine eigenen Skripte und nativen Plugins ein?ashals Werkzeuge bezeichnen?

Fügen Sie Benutzer-Python-Skripte ein$XDG_DATA_HOME/ash/tools/und native Binär-Plugins in$XDG_DATA_HOME/ash/plugins/(Standardbasis~/.local/share/ash). Stellen Sie sicher, dass sie ausführbar sind, und fügen Sie den bloßen Namen der ausführbaren Datei hinzu$XDG_CONFIG_HOME/ash/.ash_allow(oder sich darauf verlassen$TOOLS_DIR_LIST/$PLUGINS_DIR_LIST).Ashruft keine Shell für zulässige Unix-Befehle und Plugins auf.

Was sind Best Practices für ein Tool oder Plugin, damit die KI seinen Zweck und seine Verwendung versteht?

Folgen Sie demnativer Plugin-Vertrag: Vorhersehbare CLI-Optionen verfügbar machen, implementieren--help,--versionund versioniertes JSON--ai-docsMetadaten und beschreiben Ein-/Ausgabeschemata und Fehlerverhalten. Geben Sie kompakt strukturiertes JSON mit a ausstatusFeld- und umsetzbare Fehlerdetails anstelle von mit Daten vermischter Prosa. Halten Sie die Ausgabe begrenzt, validieren Sie Eingaben, legen Sie Netzwerk-Timeouts fest und sorgen Sie dafür, dass das Tool wiederholt aufgerufen werden kann. Fügen Sie den bloßen Dateinamen hinzu$XDG_CONFIG_HOME/ash/.ash_allow;ashkann es nur ausführen, wenn es auf der Zulassungsliste steht und nicht in aufgeführt ist$XDG_CONFIG_HOME/ash/.ash_deny.

Welche Tool-Skripte und nativen Plugins werden bereitgestellt?

Die installierten Bootstrap-Python-Skripte sindheadlines.py,wikipedia.py, Undyfinance.pyIn$XDG_DATA_HOME/ash/tools/. Die bereitgestellten nativen Plugins sindwhat_time_is_it(Gehen),flip_a_coin(Rost) undcalculator(TypeScript) in$XDG_DATA_HOME/ash/plugins/.

Rust-Plugins einschließlich flip_a_coin werden nur unter Linux und FreeBSD mitgeliefert. macOS-Builds enthalten what_time_is_it und calculator, aber keine Rust-Plugins.

Warum fehlt das Rust-Plugin unter macOS, und wie installiere ich es manuell?

macOS lässt Rust-Plugins wie flip_a_coin weg, damit beide Architekturen unter Linux ohne macOS-Runner gebaut werden können. Das senkt die CI-Kosten und ist keine Kompatibilitätseinschränkung. Homebrew behält Go- und TypeScript-Plugins; Linux und FreeBSD behalten Rust.

Installieren Sie auf Ihrem Mac die Xcode-Kommandozeilenwerkzeuge (bei Bedarf xcode-select --install) und Rust über rustup. Führen Sie diese Befehle dort aus, wo ein neuer Checkout entstehen soll. Das Makefile des Plugins baut für die native Architektur und installiert direkt ins Benutzerverzeichnis, ohne sudo.

git clone https://github.com/Jonconradt/ash.git
cd ash
rustup toolchain install 1.99.0 --profile minimal
plugin_dir="${XDG_DATA_HOME:-$HOME/.local/share}/ash/plugins"
make -C internal/app/ash_bootstrap/plugins_src/flip_a_coin build BUILD_DIR="$plugin_dir"
"$plugin_dir/flip_a_coin" --version
"$plugin_dir/flip_a_coin" --ai-docs

Verwenden Sie das Makefile des Plugins statt make plugins-build, das Rust unter macOS überspringt. Behalten Sie $PLUGINS_DIR_LIST in ${XDG_CONFIG_HOME:-$HOME/.config}/ash/.ash_allow oder ergänzen Sie flip_a_coin; der Name darf nicht in .ash_deny stehen. Starten Sie ash erneut. Mit "$plugin_dir/flip_a_coin" testen Sie ohne KI-Anbieter.

KannashSubagenten anrufen?

Ja. Ein übergeordneter Agent kann verwendenrun_sub_agentfür eine fokussierte, unabhängige Aufgabe. Ein untergeordnetes Element erbt das Arbeitsverzeichnis, die Konfiguration, die Tools und die Betriebssystemberechtigungen, gibt ein begrenztes Ergebnis zurück und kann kein weiteres untergeordnetes Element erstellen. Das Standardmaximum beträgt sechs Unteragenten pro übergeordnetem Lauf und kann mit geändert werdenASH_MAX_AGENTS.

KannashGenerieren Sie Speicherdateien, um komplexe Aufgaben und das, was Sie in der Sitzung gelernt haben, zu verfolgen?

Ja. Es können persistente Arbeitsbereichsdateien darunter geschrieben werden$XDG_CONFIG_HOME/ash(Standard~/.config/ash), die im Arbeitsbereichsinventar und in den sitzungsbezogenen Arbeitsdateien darunter nachverfolgt werden$XDG_STATE_HOME/ash/scratch/<session-id>/(Standardbasis~/.local/state/ash). Scratch ist optional: Verwenden Sie es für wiederverwendbare Skripte, Zwischendaten, gesammelte Erkenntnisse oder überarbeitbare Artefakte, wenn sie einen Mehrwert bieten. Seine Werkzeuge sindread_scratch_file,write_scratch_file,append_scratch_file,replace_scratch_file,edit_scratch_file, Undlist_scratch_files. AktivAshund Brokerprozesse schützen ihre Sitzung mit einer Betriebssystemsperre. Entsperrte Verzeichnisse werden bereinigtAshVerlassen Sie sie erst, wenn sie älter als 48 Stunden sind und innerhalb von 24 Stunden nicht darauf zugegriffen wurde. Durch den Absturz verbleibende Sperrdateien blockieren die spätere Bereinigung nicht. Verwenden Sie persistente Arbeitsbereichsdateien für Informationen, die Sie behalten möchten.

KannashArbeit für später planen?

Ja, durch seine KI-Tools. Unter macOS erfolgt die einmalige Planung pro BenutzerlaunchdLaunchAgent und erfordertlaunchctl. Unter Linux werden wiederkehrende Zeitpläne über Ihren Benutzer unterstütztcrontab;ashverwaltet nur die eigenen markierten Einträge. Das EinzelstücklaunchdDer Scheduler ist unter Linux nicht verfügbar. Verwenden Sie daher einen Cron-Eintrag oder einen anderen Linux-Scheduler für einen einmaligen Linux-Job. Geplante Ausführungen erhalten eine eingeschränkte Umgebung und verwenden direktes HTTPS anstelle eines interaktiven Shell-Brokers. Stellen Sie daher sicher, dass die erforderliche KI-Konfiguration für den geplanten Job verfügbar ist. Sie können keine Remote-MCP-Tools verwenden.Ashläuft ohne sie und warnt nicht in nicht interaktiven Sitzungen. Planen Sie keine Eingabeaufforderungen, die MCP erfordern.

Sitzungen und Speicherung

Wo sind die Verlaufs- oder Protokolldateien?ash?

Der Gesprächsverlauf wird als JSON unter gespeichert$XDG_STATE_HOME/ash/history/(Standard~/.local/state/ash/history/). Geplante Verlaufs- und Debugprotokolle werden im selben Statusverzeichnis gespeichert. Sie können mit einen anderen Debug-Log-Pfad auswählenASH_LOG_FILE.

Wie lange werden Verlaufsdateien aufbewahrt?

ashEntfernt Verlaufs-JSON-Dateien, die älter als 14 Tage sind, während der normalen Anwendungsbereinigung, mit einem Bereinigungsbudget von 300 ms, sodass der Abschluss nicht verzögert wird. Das Fenster „Letzte Nachrichten“ ist separat: Es speichert standardmäßig bis zu 40 Nachrichten pro Konversation und kann mit geändert werdenASH_HISTORY_MAX.

Wie kann ich ein Gespräch beenden oder neu beginnen?

Der Verlauf ist nach Sitzungs-ID und AI-Endpunkt-/Modellschlüssel getrennt. Starten Sie eine neue Terminalsitzung für eine neue Sitzungs-ID oder entfernen Sie die entsprechende JSON-Datei darunter$XDG_STATE_HOME/ash/history/(Standard~/.local/state/ash/history/), wenn Sie den lokalen Gesprächsverlauf absichtlich verwerfen möchten. Durch das Entfernen einer Verlaufsdatei wird weder ein Anbieterschlüssel widerrufen noch anbieterseitige Daten gelöscht. Verwalten Sie diese separat beim Anbieter.

Was istASH_SESSION_IDund wo wird es erzeugt?

Es ist dasAsh-eigene Kennung pro Sitzung, die zur Trennung von Verlauf, Arbeitsspeicher, Broker-Sockets und geplanten Protokollnamen verwendet wird. Die verwaltete Shell-Umgebung erstellt eine, wenn die Shell startet, und behält sie bei, wenn sie neu beschafft wird.Asherstellt einen für Aufrufe ohne einen von der Shell bereitgestellten Wert. Ein GenerikumSESSION_IDwird ignoriert.

Kann ich mein eigenes zur Verfügung stellen?ASH_SESSION_ID?

Ja.Ashvalidiert explizite IDs und weist ungültige Werte zurück, anstatt sie stillschweigend zu ersetzen. Gültige IDs sind maximal 128 Zeichen lang und bestehen aus Buchstaben, Ziffern, Unterstrichen und Bindestrichen sowie einem optionalen Punktsuffix für die untergeordnete Sitzung. Verwenden Sie keine nicht vertrauenswürdigen oder gemeinsam genutzten Werte: Kollisionen kombinieren Sitzungsverlauf und Laufzeitstatus.

Unterstützung und Gemeinschaft

Wie melde ich einen Fehler?

Öffnen Sie ein Problem untergithub.com/Jonconradt/ash/issuesmit demashVersion oder Commit, Ihr Betriebssystem und Ihre Shell, die für das Problem relevante Konfiguration mit entfernten Geheimnissen, reproduzierbare Schritte und das beobachtete Ergebnis. Öffnen Sie bei einer Sicherheitslücke kein öffentliches Problem. Melden Sie es privat per E-Mail oder GitHub-Sicherheitshinweis.

Gibt es ein Diskussionsforum imashProjekt?

Ja. VerwendenGitHub-Diskussionenfür Fragen und Ideen, undGitHub-Problemefür reproduzierbare Fehler und nachverfolgte Arbeit.