Commencer
De quoi ai-je besoin avant de pouvoir utiliserash?
Vous avez besoin duashexécutable, un point de terminaison IA et un nom de modèle. En cours d'exécutionash installles configure automatiquement : il utilise une clé API de fournisseur de cloud déjà définie ou un serveur d'inférence local en cours d'exécution lorsqu'il est trouvé, sinon il affiche un menu de fournisseur numéroté et demande une clé API, puis vous permet de choisir un modèle dans la liste des modèles du point de terminaison. Vous pouvez également définirASH_AI_ENDPOINTetASH_AI_MODELmanuellement. Un point de terminaison local tel qu'Ollama peut utiliserhttp://localhost:11434, et un hôte LAN commehttp://brain.local:11434ou une adresse IP privée est également traitée comme locale (sauf siASH_STRICT=1); les points de terminaison du cloud doivent utiliser HTTPS et nécessitent généralementASH_AI_AUTH_TOKEN. L'intégration Shell est facultative : vous pouvez toujours exécuterash "your question"directement.
Où est-ce queashinstaller, et comment vérifier que mon shell peut le trouver ?
L'installateur vérifié placeashdans~/.local/bin/ash. Ajoutez ce répertoire à votrePATHen utilisant la configuration normale de votre shell ;ash installne modifie pas les fichiers de démarrage du shell à moins que vous ne passiez--shell-integration. Ouvrez un nouveau terminal, puis exécutezcommand -v ashà confirmer. Le programme de mise à jour automatique installe son binaire de remplacement au même emplacement utilisateur local. Le programme d'installation nécessite Sigstorecosignpour vérifier le manifeste de somme de contrôle signé.
Comment puis-je utiliserashsans changer ma coque ?
Passez directement une invite citée :ash "how do I find large files?". Sans arguments,ashaccepte également une invite de saisie standard non interactive, telle quegit diff | ash. L’utilisation directe est l’option la moins surprenante lors de l’apprentissageashou écrire un scénario.
Pourquoiashdire que ma configuration IA est incomplète ?
Vérifiez queASH_AI_ENDPOINTetASH_AI_MODELne sont pas vides dans l'environnement oùashcourt. Pour un nom d'hôte cloud, définissez égalementASH_AI_AUTH_TOKENlorsque cela est requis par le fournisseur. Courirprintf '%s\n' "$ASH_AI_ENDPOINT" "$ASH_AI_MODEL"pour confirmer que les deux premières valeurs sont présentes, mais n'imprimez pas de jeton d'authentification dans un enregistrement de terminal ou un journal partagé.
Installation et mise à jour
Faitashfonctionne sous Windows 11 ?
Pas nativement.ashprend en charge bash, zsh et Fish sur macOS, Linux et FreeBSD ; il n’y a pas de cible d’installation PowerShell. Utilisez WSL pour l’expérience Linux prise en charge.
Comment puis-je installerashdans le sous-système Windows pour Linux (WSL) ?
Suivez leInstructions d'installation de Linuxdans votre distribution WSL, en préférant son gestionnaire de packages. Alorsconfigurer un fournisseur et éventuellement activer l'intégration Bash. Il n’existe pas d’installateur Windows natif.
Comment mettre à jourashvers la dernière version ?
Utilisez le gestionnaire de packages propriétaire pour les installations Homebrew/APT/DNF/Pacman.ash updateest uniquement destiné aux installations de version stable sous~/.local/bin; il vérifie le manifeste et le résumé d'archive signés par Sigstore, et refuse une signature échouée. Les installations natives .pkg et dans des répertoires personnalisés nécessitent leur remplacement manuel/installateur d'origine. Voirmises à jour et abonnements aux chaînespour la version, la version bêta et la nuit.
L'Iranash install. Pourquoi rien ne change dans ce terminal ?
L'intégration du shell est désactivée par défaut. Pour l'activer, exécutezash install --shell bash --shell-integration(ou sélectionnezzshoufish); il ne réécrit pas le processus shell déjà en cours d'exécution. Ouvrez un nouveau terminal ou rechargez le fichier de démarrage sélectionné. Courirash install --shell bash --disable-shell-integrationsupprimerAshLe bloc géré de tout en préservant le contenu environnant.
Les commandes inconnues indiquent toujours « introuvable ». Comment dépanner l’intégration du shell ?
Confirmez d'abord que vous avez activé l'intégration du shell avecash install --shell bash --shell-integration(remplacez votre shell), puis exécutezcommand -v ash; le hook ne peut pas invoquer un binaire que votre shell ne peut pas trouver. Rechargez ou redémarrez le shell et vérifiez que son fichier de démarrage contient le>>> ash install >>>bloc géré. Courez enfinash snooze off, car une répétition laisse intentionnellement les commandes inconnues comme des échecs normaux « non trouvés ».
Quels fichiers fontash installchanger, et puis-je le prévisualiser ?
Il gère la configuration sous$XDG_CONFIG_HOME/ash(défaut~/.config/ash), les données sous$XDG_DATA_HOME/ash(défaut~/.local/share/ash), indiquer sous$XDG_STATE_HOME/ash(défaut~/.local/state/ash), et cache sous$XDG_CACHE_HOME/ash(défaut~/.cache/ash). Les fichiers de démarrage sont modifiés uniquement avec--shell-integration. Utiliserash install --shell bash --shell-integration --dry-runpour prévisualiser ; l'exécution à sec n'écrit pas de fichiers. La réexécution de l'installation est idempotente ; utiliser--overwriteuniquement lorsque vous souhaitez actualiser les fichiers d'amorçage gérés.
Faitashsoutenir le poisson ?
Oui. Courirash install --shell fish --shell-integrationpour adhérer.ashajoute un bloc géré à$XDG_CONFIG_HOME/fish/config.fish, ou~/.config/fish/config.fishlorsque XDG_CONFIG_HOME n'est pas défini. Utilisations du poissonfish_command_not_found, donc une commande non résolue atteintashavec ses arguments originaux.
Pourquoi pas en minusculetestettypedans le poisson ?
Fish réserve ces noms minuscules comme éléments intégrés essentiels et ne permet pas à une fonction de les remplacer. UtiliserTest ...ouType ...exprimerashintention, ou invoquerash "..."directement. D’autres wrappers de collision compatibles restent disponibles.
Et ksh93 ?
ksh93 n'est pas pris en charge pour l'intégration du shell. C'estFPATHle comportement ne peut charger qu'un fichier nommé d'après une commande inconnue ; il n'a pas de rappel de commande générique introuvable qui puisse implémenter en toute sécuritéashroutage rapide ou cycle de vie du courtier.
IA et connexions
Faitashinclure l'IA ?
Non.ashest un client pour un point de terminaison AI que vous configurez. EnsembleASH_AI_ENDPOINTetASH_AI_MODEL;ashprend en charge Ollama local et d'autres serveurs locaux compatibles OpenAI (LM Studio, llama.cpp, MLX, LocalAI, vLLM, text-generation-webui, Jan, GPT4All) et détecte les adaptateurs de fournisseur de cloud pris en charge à partir du point de terminaison, avec un facultatifASH_AI_PROVIDERoutrepasser.
Que sont les serveurs MCP et comment en ajouter un ?
Les serveurs MCP (Model Context Protocol) exposent des outils qu'un modèle d'IA peut appeler, tels que la recherche, l'analyse ou des actions spécifiques à un service. Les serveurs distants ne sont pas activés par défaut. Pour ajouter un serveur HTTP MCP Streamable fiable, utilisezash mcp add <url>ou ajoutez son URL sur sa propre ligne dans$XDG_CONFIG_HOME/ash/.ash_allow(défaut~/.config/ash/.ash_allow).Ashse connecte via son courtier et propose les outils du serveur au modèle. Utilisez uniquement des serveurs en qui vous avez confiance : leurs outils peuvent effectuer des actions en votre nom. HTTPS est requis sauf pour les serveurs de développement localhost. Si l'initialisation MCP échoue,ashcontinue sans outils MCP distants : il avertit lors des sessions interactives et reste silencieux lors des sessions non interactives.
Les tâches planifiées peuvent-elles utiliser des serveurs MCP ?
Non. Les tâches planifiées et autres tâches non interactives n'héritent pas du courtier d'un shell interactif, les outils MCP distants ne sont donc pas disponibles.Ashexécute toujours l'invite sans outils MCP et supprime cet échec d'initialisation attendu. Une invite qui s'appuie sur MCP peut donc se terminer sans les données ou l'action demandée. Ne planifiez pas d'invites nécessitant MCP.
MCP fonctionne-t-il lorsqueASH_STRICT=1?
Oui. Une ligne URL HTTP(S) enregistre explicitement un serveur MCP et n'est pas traitée comme un exécutable shell. Le mode strict ne désactive pas les serveurs MCP configurés. Cela s'applique toujoursAshLes protections de sortie non fiables du contenu de l'outil renvoyé.
Comment fonctionne MCP OAuth et où sont stockées les informations d'identification ?
Pour un serveur protégé par OAuth,Ashouvre la page d'autorisation dans le navigateur de bureau lorsqu'une interface graphique est disponible ; s'il ne peut pas ouvrir un navigateur, il imprime une URL à autoriser manuellement dans un navigateur sur le même hôte. Utiliserash mcp add <url> --no-browserde toujours utiliser le flux du terminal. Pour les connexions OAuth directes, la découverte autorise les adresses IP non publiques uniquement pour l'autorité MCP enregistrée exacte ; les autres hôtes OAuth restent soumis au blocage des adresses non publiques. Un proxy de sortie configuré est chargé de filtrer ses adresses de destination. Le courtier gère le rappel, l'échange de jetons, l'actualisation et la session MCP persistante. Les informations d'identification sont stockées dans le gestionnaire d'informations d'identification du système d'exploitation lorsqu'elles sont disponibles. S'il n'est pas disponible, configurez le fichier de secours chiffré à l'aide d'un code aléatoire de 32 octets.ASH_MCP_CREDENTIAL_KEY;Ashne stocke jamais la clé elle-même.
Où puis-je trouver l'AUTH_KEY des fournisseurs d'IA cloud les plus populaires ?
ashutiliseASH_AI_AUTH_TOKENpour son jeton de porteur facultatif ; il ne crée ni ne distribue de clés de fournisseur. Créez une clé dans votre compte fournisseur, telle queOpenAI,Anthropique,Google IA Studio,Azure OpenAI,Mistral,Adhérer,Groq,xAI,Recherche profonde,Ensemble IA,OuvrirRouter,ÉtreindreVisage, ouOllama, puis exportez-le en tant que variable d'environnement du fournisseur (ou définissezASH_AI_AUTH_TOKENdirectement).ash installdétecte automatiquement les variables d'environnement spécifiques au fournisseur prises en charge. Les points de terminaison du cloud doivent utiliser HTTPS et nécessitent un jeton, à l'exception d'AWS Bedrock ; adresses privées/LAN et.localles noms d'hôtes sont traités comme locaux, sauf siASH_STRICT=1est réglé.
Faitashouvrir une nouvelle connexion à chaque fois ?
Pas pour une utilisation interactive normale du shell Unix. Bash, zsh et Fish démarrent un courtier par session shell, communiquent avec lui via un socket Unix privé et réutilisent son pool de connexions HTTP limité. Le courtier se ferme après inactivité ; les tâches planifiées utilisent des requêtes directes plutôt qu'un courtier shell persistant.
Fish utilise-t-il le courtier ?
Oui. Le wrapper Fish démarre et réutilise le même courtier par session que bash et zsh, actualise son bail immédiatement avant unashdemande et maintient la configuration du courtier silencieuse.
Que se passe-t-il si une demande est lente, indisponible ou si je change d'avis ?
PresseCtrl-Cpour annuler une demande en vol. Le délai d'expiration par défaut de la demande AI est de trois minutes ; ensembleASH_AI_TIMEOUT, Par exempleASH_AI_TIMEOUT=90s, pour le changer.ashréessaye les échecs d'IA réessayables jusqu'à trois fois par défaut avec un court délai d'attente limité ; ajuster ce comportement avecASH_RETRY_MAX_ATTEMPTS,ASH_RETRY_BASE_DELAY, etASH_RETRY_MAX_DELAY.
Sécurité et contrôle
Comment puis-je verrouillerashpour être plus en sécurité, et quelles en sont les implications ?
Gardez la liste autorisée des exécutables étroite, privilégiez les outils en lecture seule et n'ajoutez pas de commandes privilégiées ou destructrices. EnsembleASH_STRICT=1pour bloquer les modèles d'injection d'invite reconnus à partir de sorties d'outils, de fichiers, de scripts, de pipelines et d'agents enfants non fiables. Cela peut également masquer un texte légitime qui ressemble à une tentative d'injection. La liste verte est une limite d'exécution, pas un bac à sable :ashet les outils autorisés fonctionnent toujours comme vous.
Peutashexécuter des commandes destructrices commerm?
Pas avec la liste blanche par défaut installée. Il déconseille explicitementrm,mv,dd,chmod,chown,kill, etsudo. Si vous en ajoutez un,ashpeut le demander avec vos autorisations ; examinez attentivement cette décision.
Comment puis-je modifier les commandesashest-il autorisé à exécuter ?
Modifier$XDG_CONFIG_HOME/ash/.ash_allow(défaut~/.config/ash/.ash_allow) et répertoriez les noms d'exécutables nus, un par ligne ou séparés par des virgules. C'est autonome$TOOLS_DIR_LISTet$PLUGINS_DIR_LISTles directives autorisent les scripts gérés et les plugins natifs éligibles ; remplacez-les par des noms littéraux pour une politique restrictive. Les scripts et plugins éligibles sont des fichiers exécutables normaux sous$XDG_DATA_HOME/ash/toolset$XDG_DATA_HOME/ash/plugins(base par défaut~/.local/share/ash). Ajouter des commandes refusées à$XDG_CONFIG_HOME/ash/.ash_deny, ou définirASH_ALLOW/ASH_DENYaux listes séparées par des virgules. Les modifications sont lues au suivantashdemande.
Quel utilisateur estashcourir en dessous ?
ashet chaque outil autorisé s'exécute en tant qu'utilisateur qui démarreash. Cela n’élève pas les privilèges.AshLes répertoires et fichiers XDG gérés utilisent des autorisations restrictives, mais leur contenu reste accessible à votre utilisateur et à tout processus que vous autorisez explicitement.
Faitashle texte de confiance reçu via le canal est le même que le texte de l'utilisateur ? Quelles protections existent contre les données malveillantes ?
Oui. Quandashne reçoit aucun argument de ligne de commande et que l'entrée standard est redirigée, il traite cette entrée comme une invite utilisateur. Ne redirigez pas de pages Web, de journaux ou de texte généré non fiables directement versashsauf si vous avez l'intention de l'autoriser comme invite. Cela diffère deash-sortie de l'outil géré, du fichier, du script, du pipeline et de l'agent enfant :ashqualifie ces résultats de preuves non fiables et demande au modèle de ne jamais suivre leurs instructions. EnsembleASH_STRICT=1pour remplacer en outre les expressions reconnues d'injection rapide dans les preuves non fiables. Les règles d'exécution de liste blanche et d'argv direct s'appliquent toujours à l'exécution de l'outil.
Est-ce que monashfichiers privés des autres utilisateurs sur cet ordinateur ?
AshLes répertoires et fichiers XDG gérés utilisent des autorisations restrictives réservées au propriétaire uniquement lorsqu'elles sont prises en charge. Cela protège contre d'autres comptes locaux sous autorisations Unix normales, mais pas contre votre propre compte, vos administrateurs, vos sauvegardes ou les logiciels que vous choisissez d'exécuter avec accès à votre répertoire personnel.
Outils et flux de travail
Faitashtuyaux de support et autres traditions Unix ?
Oui. Vous pouvez rediriger du texte versashcomme invite, par exemplegit diff | ash. Pour les pipelines d'outils demandés par l'IA,ashprend en charge deux à seize exécutables sur liste blanche connectés directement sans shell, tels quels | grep pattern | pbcopy. Les modèles de contrôle Shell dans les arguments de l'outil sont bloqués et chaque exécutable d'unash-le pipeline géré doit être inscrit sur la liste verte.
Volontéashréinterpréter les commandes dans mes scripts shell, mes commandes SSH ou mes tâches cron ?
Non. Les wrappers d'intégration Bash et zsh reviennent immédiatement dans des shells non interactifs, de sorte que les scripts, les tâches CI, les one-liners SSH et les commandes cron conservent un comportement normal de commande introuvable. Utilisez une invocation explicite telle queash "summarize this log"ousome-command | ashquand l'automatisation devrait appelerash.
Comment puis-je arrêterashd'interpréter mes commandes pendant quelques minutes ?
Courirash snoozepour les cinq minutes par défaut, ou spécifiez une durée telle queash snooze 30souash snooze 1h. Courirash snooze offreprendre immédiatement. Snooze interrompt le routage automatique des commandes introuvables et du wrapper ; expliciteash ...les commandes fonctionnent toujours.
Comment puis-je déboguerashet voir plus d'informations sur ce qu'il fait ?
EnsembleASH_VERBOSE=1avant de courirashpour activer une sortie de débogage structurée et un tableau de bord d'exécution de terminal. EnsembleASH_LOG_FILEpour écrire du JSON de débogage dans un fichier ;ASH_LOG_MAX_BYTEScontrôle la rotation et est par défaut de 1 Mio lorsqu'un fichier journal est configuré.
Quelles limites s'appliquent lorsqueashexécute des outils ?
Par défaut, chaque appel d'outil a un délai d'attente de 15 secondes et capture jusqu'à 8 192 octets de sortie. Une requête AI peut effectuer jusqu'à 16 itérations de boucle d'outil, et uneashLe pipeline géré comporte de deux à seize étapes. Ajustez le délai d'expiration de l'outil et la limite de sortie avecASH_TOOL_TIMEOUTetASH_TOOL_OUTPUT_MAX; gardez la sortie concentrée avec des commandes telles quehead,tail, ougrep.
Où se trouve l’invite système par défaut ?
Le fichier d'invite canonique est$XDG_CONFIG_HOME/ash/.ash_system(défaut~/.config/ash/.ash_system), installé à partir du package par défaut lorsque vous exécutezash install. Fichiers existants sous l'ancien~/.ashles espaces de travail ne sont pas automatiquement migrés ou lus. Ordinaire$VARIABLEles valeurs sont développées à partir de l'environnement, mais$TOOLS_DIR_LIST,$PLUGINS_DIR_LIST, et$IF_PYTHON_AVAILABLEsont réservés internesAshsubstitutions et jamais dérivées de l’environnement.
Où puis-je mettre mes propres scripts et plugins natifs pourashappeler comme outils?
Mettez les scripts Python utilisateur dans$XDG_DATA_HOME/ash/tools/et des plugins binaires natifs dans$XDG_DATA_HOME/ash/plugins/(base par défaut~/.local/share/ash). Assurez-vous qu'ils sont exécutables et ajoutez le nom de l'exécutable à$XDG_CONFIG_HOME/ash/.ash_allow(ou comptez sur$TOOLS_DIR_LIST/$PLUGINS_DIR_LIST).Ashn'appelle pas de shell pour les commandes et plugins Unix autorisés.
Quelles sont les meilleures pratiques pour un outil ou un plugin afin que l’IA comprenne son objectif et son utilisation ?
Suivez lecontrat de plugin natif : exposer les options CLI prévisibles, implémenter--help,--versionet JSON versionné--ai-docsmétadonnées et décrire les schémas d'entrée/sortie et le comportement en cas de défaillance. Émettez du JSON structuré compact avec unstatuschamp et détails d'erreur exploitables au lieu de prose mélangée à des données. Limitez la sortie, validez les entrées, définissez les délais d'attente du réseau et sécurisez les appels répétés de l'outil. Ajoutez son nom de fichier nu à$XDG_CONFIG_HOME/ash/.ash_allow;ashne peut l'exécuter que lorsqu'il est sur la liste autorisée et non répertorié dans$XDG_CONFIG_HOME/ash/.ash_deny.
Quels sont les scripts d’outils et les plugins natifs fournis ?
Les scripts Python d'amorçage installés sontheadlines.py,wikipedia.py, etyfinance.pydans$XDG_DATA_HOME/ash/tools/. Les plugins natifs fournis sontwhat_time_is_it(Aller),flip_a_coin(Rouille), etcalculator(TypeScript) dans$XDG_DATA_HOME/ash/plugins/.
Les plugins Rust, dont flip_a_coin, sont inclus uniquement sous Linux et FreeBSD. Les builds macOS incluent what_time_is_it et calculator, mais excluent Rust.
Pourquoi le plugin Rust manque-t-il sur macOS et comment l'installer manuellement ?
macOS exclut les plugins Rust, dont flip_a_coin, pour compiler les deux architectures sous Linux sans exécuteurs macOS et réduire les coûts de CI. Ce n'est pas une incompatibilité. Homebrew conserve les plugins Go et TypeScript ; Linux et FreeBSD conservent Rust.
Sur votre Mac, installez les outils en ligne de commande Xcode (xcode-select --install si nécessaire) et Rust avec rustup. Exécutez ceci là où vous souhaitez créer une nouvelle copie du dépôt. Le Makefile du plugin compile pour l'architecture native de votre Mac et installe dans le répertoire utilisateur, sans 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
Utilisez le Makefile du plugin, pas make plugins-build, qui ignore Rust sur macOS. Gardez $PLUGINS_DIR_LIST dans ${XDG_CONFIG_HOME:-$HOME/.config}/ash/.ash_allow ou ajoutez flip_a_coin ; il ne doit pas figurer dans .ash_deny. Lancez une nouvelle invocation d'ash. Exécutez "$plugin_dir/flip_a_coin" pour le tester sans fournisseur d'IA.
Peutashappeler des sous-agents ?
Oui. Un agent parent peut utiliserrun_sub_agentpour une tâche ciblée et indépendante. Un enfant hérite du répertoire de travail, de la configuration, des outils et des autorisations du système d'exploitation, renvoie un résultat limité et ne peut pas créer un autre enfant. Le maximum par défaut est de six sous-agents par exécution parent et peut être modifié avecASH_MAX_AGENTS.
Peutashgénérer des fichiers mémoire pour suivre des tâches complexes et ce qu'il a appris au cours de la session ?
Oui. Il peut écrire des fichiers d'espace de travail persistants sous$XDG_CONFIG_HOME/ash(défaut~/.config/ash), qui sont suivis dans son inventaire d'espace de travail, et les fichiers de travail à l'échelle de la session sous$XDG_STATE_HOME/ash/scratch/<session-id>/(base par défaut~/.local/state/ash). Scratch est facultatif : utilisez-le pour les scripts réutilisables, les données intermédiaires, les résultats accumulés ou les artefacts révisables lorsqu'ils ajoutent de la valeur. Ses outils sontread_scratch_file,write_scratch_file,append_scratch_file,replace_scratch_file,edit_scratch_file, etlist_scratch_files. ActifAshet les processus de courtier protègent leur session avec un verrou du système d'exploitation. Les répertoires déverrouillés sont nettoyés surAshne sortez qu'après qu'ils ont plus de 48 heures et n'ont pas été consultés depuis 24 heures ; les fichiers de verrouillage restants en cas de crash ne bloquent pas le nettoyage ultérieur. Utilisez des fichiers d'espace de travail persistants pour les informations que vous souhaitez conserver.
Peutashplanifier le travail pour plus tard ?
Oui, grâce à ses outils d’IA. Sur macOS, la planification ponctuelle utilise un calcul par utilisateurlaunchdLaunchAgent et nécessitelaunchctl. Sous Linux, les planifications récurrentes sont prises en charge via votre utilisateurcrontab;ashgère uniquement ses propres entrées marquées. L'uniquelaunchdLe planificateur n'est pas disponible sous Linux, utilisez donc une entrée cron ou un autre planificateur Linux pour une tâche Linux unique. Les exécutions planifiées bénéficient d'un environnement limité et utilisent HTTPS direct plutôt qu'un courtier shell interactif. Assurez-vous donc que la configuration IA requise est disponible pour la tâche planifiée. Ils ne peuvent pas utiliser les outils MCP distants ;Ashs'exécute sans eux et n'avertit pas lors des sessions non interactives. Ne planifiez pas d'invites nécessitant MCP.
Sessions et stockage
Où se trouvent l'historique ou les fichiers journaux pourash?
L'historique des conversations est stocké au format JSON sous$XDG_STATE_HOME/ash/history/(défaut~/.local/state/ash/history/). L'historique planifié et les journaux de débogage sont stockés dans ce même répertoire d'état. Vous pouvez choisir un autre chemin du journal de débogage avecASH_LOG_FILE.
Combien de temps les fichiers historiques sont-ils conservés ?
ashsupprime les fichiers JSON d'historique datant de plus de 14 jours lors du nettoyage normal de l'application, avec un budget de nettoyage de 300 ms afin que la sortie ne soit pas retardée. La fenêtre des messages récents est séparée : elle conserve par défaut jusqu'à 40 messages par conversation et peut être modifiée avecASH_HISTORY_MAX.
Comment puis-je effacer une conversation ou recommencer à zéro ?
L’historique est séparé par l’ID de session et la clé de point de terminaison/modèle AI. Démarrez une nouvelle session de terminal pour un nouvel ID de session ou supprimez le fichier JSON correspondant sous$XDG_STATE_HOME/ash/history/(défaut~/.local/state/ash/history/) lorsque vous souhaitez intentionnellement supprimer cet historique de conversation locale. La suppression d'un fichier historique ne révoque pas une clé de fournisseur ni ne supprime les données côté fournisseur ; gérez-les séparément avec le fournisseur.
Qu'est-ce queASH_SESSION_IDet où est-il généré ?
C'est leAshIdentifiant par session appartenant à l'utilisateur utilisé pour séparer l'historique, l'espace de travail, les sockets de courtier et les noms de journaux planifiés. L'environnement shell géré en crée un au démarrage du shell et le conserve lors de la recharge ;Ashen crée un pour les invocations sans valeur fournie par le shell. Un génériqueSESSION_IDest ignoré.
Puis-je fournir le mienASH_SESSION_ID?
Oui.Ashvalide les identifiants explicites et rejette les valeurs non valides plutôt que de les remplacer silencieusement. Les identifiants valides comportent au maximum 128 caractères et utilisent des lettres, des chiffres, des traits de soulignement, des traits d'union, avec un suffixe de point facultatif pour la session enfant. N'utilisez pas de valeurs non fiables ou partagées : les collisions combinent l'historique de session et l'état d'exécution.
Soutien et communauté
Comment puis-je signaler un bug ?
Ouvrir un problème àgithub.com/Jonconradt/ash/issuesavec leashversion ou commit, votre système d'exploitation et votre shell, la configuration pertinente au problème avec les secrets supprimés, les étapes reproductibles et le résultat observé. Pour une faille de sécurité, n'ouvrez pas de problème public ; signalez-le en privé par e-mail ou par avis de sécurité GitHub.
Y a-t-il un forum de discussion dans leashprojet?
Oui. UtiliserDiscussions sur GitHubpour des questions et des idées, etProblèmes GitHubpour les bugs reproductibles et le travail suivi.