Installer sur Debian ou Ubuntu
Voir leGuide d'installation d'APTpour les conditions préalables, les clés de signature, la configuration du référentiel, les canaux, les mises à jour et la suppression.
Installer sur Fedora ou Linux compatible RHEL
Voir leGuide d'installation du DNFpour les conditions préalables, la vérification des métadonnées, la configuration du référentiel, les canaux, les mises à jour et la suppression.
Installer sur Arch Linux
Voir leGuide d'installation de Pacmanpour les conditions préalables, la vérification des clés, la configuration du référentiel, les canaux, les mises à jour et la suppression.
Résumé
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]
Description
ashenvoie un texte d'invite au point de terminaison AI configuré et imprime la réponse de l'assistant. Lorsqu'aucun texte de position n'est fourni,ashlit le texte d'invite à partir d'une entrée standard non interactive.
LeinstallLa sous-commande installe les actifs gérés. Les fichiers de démarrage du Shell ne sont modifiés que lorsque vous le demandez explicitement--shell-integration; Bash utilise~/.bashrc, zsh utilise~/.zshrc, et le poisson utilise$XDG_CONFIG_HOME/fish/config.fish.
Les connexions au fournisseur d'IA sont partagées via un courtier local. L’échec du courtier revient au HTTPS direct.
L'IA peut utiliser systemd pour planifier des tâches en arrière-plan. Il peut s’agir de tâches récurrentes ou ponctuelles. Les tâches planifiées utilisent HTTPS direct par défaut.
ashsuit les répertoires de base XDG : fichiers de configuration et d'espace de travail persistant sous$XDG_CONFIG_HOME/ash(défaut~/.config/ash), outils et plugins sous$XDG_DATA_HOME/ash(défaut~/.local/share/ash), historique et session scratch sous$XDG_STATE_HOME/ash(défaut~/.local/state/ash), et cache sous$XDG_CACHE_HOME/ash(défaut~/.cache/ash). Utilisation des sockets de courtier$XDG_RUNTIME_DIR/ashavec une solution de repli de répertoire d'état. Les chemins XDG explicites doivent être absolus.
Les sorties d’outils, de scripts, de fichiers, redirigés et enfants sont des données non fiables et ne doivent pas remplacer les instructions du système ou de l’utilisateur. La fonctionnalité d'exécution d'outil n'est pas un bac à sable lorsque l'exécution arbitraire de Python ou de shell est activée. Par défaut, Python est activé, alors méfiez-vous.
Serveurs MCP distants
Les serveurs MCP (Model Context Protocol) fournissent des outils qu'un modèle d'IA peut appeler.Ashprend en charge les serveurs HTTP MCP Streamable distants et conserve leurs sessions client dansash-brokerà traversAshinvocations dans le même shell.
Enregistrez un serveur de confiance en exécutantash mcp add <url>d'un interactifAshshell, ou en ajoutant son URL à$XDG_CONFIG_HOME/ash/.ash_allow(défaut~/.config/ash/.ash_allow). Aucun serveur distant n'est activé par défaut.
L'autorisation OAuth s'ouvre dans le navigateur de bureau lorsqu'une interface graphique est disponible. Si le navigateur ne peut pas être ouvert,Ashimprime une URL d'autorisation copiable et attend dans le terminal. Utiliserash mcp add <url> --no-browserde toujours utiliser ce flux terminal. L'autorisation manuelle d'URL nécessite toujours un navigateur sur le même hôte ; ce n'est pas un flux OAuth sans navigateur.
Lignes d'URL commençant parhttp://ouhttps://sont des enregistrements MCP, pas des commandes shell. Les schémas sont reconnus sans tenir compte de la casse.Ashdérive le nom local du serveur à partir des 8 premiers caractères hexadécimaux minuscules de SHA-256 sur le texte de l'URL découpé. HTTPS est requis sauf pour le développement localhost ; Les URL contenant des informations d'identification intégrées, des chaînes de requête ou des fragments sont rejetées. 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. Les modifications sont lues au suivantAshdemande.
Les inscriptions MCP restent activées avecASH_STRICT=1. Les résultats de l'outil renvoyés sont toujours traités comme des preuves non fiables. Enregistrez uniquement les serveurs en qui vous avez confiance : leurs outils peuvent effectuer des actions en votre nom. Pour les serveurs protégés par OAuth,Ashouvre le navigateur lorsqu'une interface graphique est disponible pendant que le courtier gère le rappel et les jetons. Les informations d'identification utilisent le gestionnaire d'informations d'identification du système d'exploitation lorsqu'il est disponible, ou un fichier crypté protégé par un fichier aléatoire de 32 octets fourni par l'utilisateur.ASH_MCP_CREDENTIAL_KEYdans$XDG_DATA_HOME/ash/mcp/.
Si l'initialisation MCP échoue,Ashcontinue la demande sans outils MCP distants. Les exécutions interactives impriment un avertissement ; les exécutions non interactives échouent silencieusement.Les tâches planifiées ne disposent pas du courtier per-interactive-shell et ne peuvent donc pas utiliser les outils MCP distants.Une invite planifiée qui dépend de MCP peut toujours s'exécuter mais peut se terminer sans l'action ou les données MCP demandées. Ne planifiez pas d'invites nécessitant MCP.
Voir leFAQ MCPpour un aperçu rapide et des notes de configuration.
Commandes
ash [--attach path]... [text ...]- Exécutez une seule demande d’assistant.
--attachjoint un fichier (image ou document) à la demande ; reproductible. Taille limitée parASH_ATTACHMENT_MAX_BYTESet actuellement envoyé sur le fil uniquement aux fournisseurs compatibles OpenAI. ash mcp add <url> [--no-browser]- Connectez-vous et enregistrez un serveur MCP distant dans le
.ash_allow. Ouvre l'autorisation OAuth dans un navigateur de bureau lorsqu'elle est disponible ; revient à une URL copiable dans le terminal.--no-browserutilise toujours le flux du terminal. ash install [--shell bash|zsh|fish] [--shell-integration|--disable-shell-integration] [--dry-run]- Installez les ressources sans modifier les fichiers de démarrage du shell par défaut.
--shell-integrationaccepte d'ajouter/mettre à jour le bloc géré ;--disable-shell-integrationsupprime uniquement ce bloc et préserve le contenu utilisateur environnant. Lorsqu'il est interactif, installez les configurations automatiquesASH_AI_ENDPOINT,ASH_AI_MODEL, etASH_AI_AUTH_TOKENsi nécessaire, en préférant une clé de fournisseur existante ou un point de terminaison local avant d'afficher un menu de fournisseur. ash snooze [duration|off]- Suspendre le traitement automatique des invites du shell. La valeur par défaut est de cinq minutes. Les durées utilisent la syntaxe Go telle que
30s,5m, ou1h. Utiliseroffreprendre immédiatement. ash update [--version vX.Y.Z] [--yes|--skip-customized]- Téléchargez et installez la dernière version stable de macOS, Linux ou FreeBSD pour l'architecture actuelle dans
~/.local/bin/ash. Les versions nécessitent une vérification Sigstore et une vérification SHA-256.
Environnement
ASH_AI_AUTH_TOKEN- Jeton au porteur facultatif. Obligatoire pour les points de terminaison cloud, à l'exception d'AWS Bedrock. Adresses privées/LAN et
.localles noms d'hôtes sont traités comme non cloud, sauf siASH_STRICT=1. ASH_AI_CACHE- Bascule facultative du cache natif du fournisseur. Activé par défaut lorsqu'il est pris en charge ; accepte
1,true,yes,on,enabled,0,false,no,off, oudisabled(insensible à la casse). ASH_AI_ENDPOINT- URL de base requise pour le point de terminaison de l’API de chat.
ASH_AI_MODEL- Nom du modèle requis envoyé au point de terminaison.
ASH_AI_PROVIDER- Remplacement facultatif du fournisseur. Lorsqu'il n'est pas réglé,ashdétecte le fournisseur à partir du point de terminaison.
ASH_AI_TIMEOUT- Délai d’expiration de la demande facultatif. Défaut:
3m. ASH_ALWAYS_OPENAI_API- Bascule de test facultative. Lorsqu'il est vrai, achemine le
ollamafournisseur via l’adaptateur SDK compatible OpenAI au lieu de son implémentation manuelle. Accepte les mêmes valeurs booléennes queASH_AI_CACHE. Par défaut : activé. ASH_ATTACHMENT_MAX_BYTES- Taille maximale facultative en octets pour un fichier transmis via
--attach. Défaut:10485760(10 Mo). ASH_HISTORY_MAX- Messages d'historique maximum facultatifs par clé. Défaut:
40. ASH_LOG_FILE- Chemin du journal de débogage facultatif lorsque la journalisation détaillée est activée.
ASH_LOG_MAX_BYTES- Taille maximale facultative du journal avant la rotation. Défaut:
1048576. ASH_MAX_AGENTS- Nombre maximum de sous-agents facultatifs générés par un processus parent. Défaut:
6. ASH_MAX_TOOL_ITERS- Itérations maximales facultatives de boucle d’appel d’outil d’IA. Défaut:
16. ASH_RELEVANCE_WINDOW- Observations récentes facultatives de l'outil incluses dans l'état d'exécution. Défaut:
4. ASH_RETRY_BASE_DELAY- Délai de base d’attente de nouvelle tentative facultatif. Défaut:
250ms. ASH_RETRY_MAX_ATTEMPTS- Tentatives de demande réessayables facultatives. Défaut:
3. ASH_SCHEDULED_TASK- Indicateur du planificateur interne utilisé parash-invocations gérées.
ASH_STREAM- Bascule facultative. Lorsqu'il est vrai, diffuse la réponse des fournisseurs dont l'adaptateur la prend en charge (actuellement OpenAI uniquement). Accepte les mêmes valeurs booléennes que
ASH_AI_CACHE. Par défaut : activé. ASH_TASK_MAX- Plafond facultatif sur les tâches d’exécution dérivées d’une demande. Défaut:
6. ASH_TASK_STALL_ROUNDS- L'assistant facultatif décroche des rondes avant de s'arrêter. Défaut:
2. ASH_ALLOW- Liste autorisée facultative d'exécutables séparés par des virgules pour
run_unix_command. Sinon$XDG_CONFIG_HOME/ash/.ash_allow(défaut~/.config/ash/.ash_allow) est utilisé ; ce remplacement ne se développe pas en interneAshjetons. ASH_DENY- Liste de refus facultative séparée par des virgules pour bloquer explicitement les commandes, les outils et les plugins. Sinon
$XDG_CONFIG_HOME/ash/.ash_deny(défaut~/.config/ash/.ash_deny) est utilisé. ASH_TOOL_OUTPUT_MAX- Sortie maximale facultative de l’outil capturé en octets. Défaut:
8192. ASH_TOOL_TIMEOUT- Délai d’expiration de la commande d’outil local facultatif. Défaut:
15s. ASH_VERBOSE- Tableau de bord facultatif de journalisation et d’exécution du débogage. Des valeurs telles que
1,true,on, etdebugactivez-le. ASH_SESSION_ID- Ashidentifiant de session pour l’historique persistant et la dénomination des journaux. Généré en cas d'absence ; les valeurs explicites invalides sont rejetées. Générique
SESSION_IDest ignoré.
Les paramètres numériques et de durée explicites sont validés. Les limites entières doivent être positives saufASH_MAX_TOOL_ITERS, qui peut être nul. Les délais d'attente de l'IA/des outils doivent être positifs ; les délais de nouvelle tentative peuvent être nuls mais pas négatifs. Les durées utilisent la syntaxe Go telle que30s,5m, ou1h. Les valeurs mal formées ou hors plage produisent une erreur de configuration au lieu d'utiliser silencieusement les valeurs par défaut.
Fichiers
$XDG_CONFIG_HOME/ash/(défaut~/.config/ash/)—Fichiers d'invite canonique, de stratégie et d'espace de travail persistant.$XDG_DATA_HOME/ash/(défaut~/.local/share/ash/)—outils groupés, plugins, packs de langue et informations d'identification MCP.$XDG_STATE_HOME/ash/(défaut~/.local/state/ash/)—historique, scratch, journaux et état de répétition.$XDG_CACHE_HOME/ash/(défaut~/.cache/ash/)—fichiers de cache régénérables.
Statut de sortie
ash renvoie 0 en cas de succès. Il renvoie une valeur différente de zéro lorsque la configuration, les requêtes réseau ou l'exécution de l'outil échouent.
Exemples
echo "summarize this directory" | ash
ash install --shell bash
ash install --shell zsh --dry-run
Voir aussi
bash(1),zsh(1),man(1)