Respostas

Perguntas
frequentes.

Respostas claras sobre instalação, provedores, servidores MCP, limites de segurança, ferramentas e os arquivos que ash gerencia em sua máquina.

Começando

O que eu preciso antes de poder usarash?

Você precisa doashexecutável, um endpoint de IA e um nome de modelo. Correndoash installconfigura-os automaticamente: ele usa uma chave de API do provedor de nuvem já definida ou um servidor de inferência local em execução quando encontrado; caso contrário, mostra um menu de provedor numerado e solicita uma chave de API e permite escolher um modelo na lista de modelos do endpoint. Você também pode definirASH_AI_ENDPOINTeASH_AI_MODELmanualmente. Um endpoint local como o Ollama pode usarhttp://localhost:11434e um host LAN comohttp://brain.local:11434ou um IP privado também é tratado como local (a menos queASH_STRICT=1); endpoints em nuvem devem usar HTTPS e geralmente exigemASH_AI_AUTH_TOKEN. A integração do Shell é opcional: você sempre pode executarash "your question"diretamente.

Onde é queashinstalar e como posso verificar se meu shell pode encontrá-lo?

O instalador verificado colocaashem~/.local/bin/ash. Adicione esse diretório ao seuPATHusando a configuração normal do seu shell;ash installnão edita arquivos de inicialização do shell, a menos que você passe--shell-integration. Abra um novo terminal e executecommand -v ashpara confirmar. O atualizador automático instala seu binário substituto no mesmo local do usuário. O instalador requer Sigstorecosignpara verificar o manifesto de soma de verificação assinado.

Como eu usoashsem mudar minha concha?

Passe um prompt citado diretamente:ash "how do I find large files?". Sem argumentos,ashtambém aceita um prompt de entrada padrão não interativo, comogit diff | ash. O uso direto é a opção menos surpreendente quando você está aprendendoashou escrevendo um roteiro.

Por queashdizer que minha configuração de IA está incompleta?

Verifique issoASH_AI_ENDPOINTeASH_AI_MODELnão estão vazios no ambiente ondeashcorre. Para um nome de host na nuvem, defina tambémASH_AI_AUTH_TOKENquando solicitado pelo fornecedor. Correrprintf '%s\n' "$ASH_AI_ENDPOINT" "$ASH_AI_MODEL"para confirmar se os dois primeiros valores estão presentes, mas não imprima um token de autenticação em uma gravação de terminal ou log compartilhado.

Instalando e atualizando

Fazashfunciona no Windows 11?

Não nativamente.ashsuporta bash, zsh e Fish no macOS, Linux e FreeBSD; não há destino de instalação do PowerShell. Use WSL para a experiência Linux compatível.

Como faço para instalarashno subsistema Windows para Linux (WSL)?

Siga oInstruções de instalação do Linuxdentro da sua distribuição WSL, preferindo seu gerenciador de pacotes. Entãoconfigurar um provedor e, opcionalmente, habilitar a integração Bash. Não há instalador nativo do Windows.

Como faço para atualizarashpara a versão de lançamento mais recente?

Use o gerenciador de pacotes proprietário para instalações Homebrew/APT/DNF/Pacman.ash updateé apenas para instalações de versão estável em~/.local/bin; ele verifica o manifesto assinado pelo Sigstore e o resumo do arquivo e recusa uma assinatura com falha. As instalações nativas .pkg e de diretório personalizado precisam de seu instalador original/substituição manual. Veratualizações e assinaturas de canaispara lançamento, beta e noturno.

eu corriash install. Por que nada muda neste terminal?

A integração do shell está desabilitada por padrão. Para habilitá-lo, executeash install --shell bash --shell-integration(ou selecionezshoufish); ele não reescreve o processo shell já em execução. Abra um novo terminal ou recarregue o arquivo de inicialização selecionado. Correrash install --shell bash --disable-shell-integrationremoverAshbloco gerenciado enquanto preserva o conteúdo circundante.

Comandos desconhecidos ainda dizem “não encontrado”. Como soluciono problemas de integração do shell?

Primeiro confirme se você ativou a integração do shell comash install --shell bash --shell-integration(substitua seu shell) e executecommand -v ash; o gancho não pode invocar um binário que seu shell não consegue encontrar. Recarregue ou reinicie o shell e verifique se seu arquivo de inicialização contém o>>> ash install >>>bloco gerenciado. Finalmente corraash snooze off, porque uma soneca deixa intencionalmente comandos desconhecidos como falhas normais “não encontradas”.

O que os arquivos fazemash installmudar, e posso visualizá-lo?

Ele gerencia a configuração em$XDG_CONFIG_HOME/ash(padrão~/.config/ash), dados em$XDG_DATA_HOME/ash(padrão~/.local/share/ash), estado sob$XDG_STATE_HOME/ash(padrão~/.local/state/ash) e cache em$XDG_CACHE_HOME/ash(padrão~/.cache/ash). Os arquivos de inicialização são alterados apenas com--shell-integration. Usarash install --shell bash --shell-integration --dry-runpara visualizar; a simulação não grava arquivos. A nova execução da instalação é idempotente; usar--overwritesomente quando você deseja que os arquivos de inicialização gerenciados sejam atualizados.

Fazashapoiar Peixe?

Sim. Correrash install --shell fish --shell-integrationpara ativar.ashadiciona um bloco gerenciado ao$XDG_CONFIG_HOME/fish/config.fish, ou~/.config/fish/config.fishquando XDG_CONFIG_HOME não está definido. Usos de peixefish_command_not_found, então um comando não resolvido atingeashcom seus argumentos originais.

Por que não letras minúsculastestetypeem Peixe?

O Fish reserva esses nomes em minúsculas como componentes essenciais e não permite que uma função os substitua. UsarTest ...ouType ...expressarashintenção ou invocarash "..."diretamente. Outros wrappers de colisão compatíveis permanecem disponíveis.

E quanto ao ksh93?

ksh93 não é compatível com integração de shell. Isso éFPATHo comportamento só pode carregar um arquivo com o nome de um comando desconhecido; não possui retorno de chamada genérico de comando não encontrado que possa implementar com segurançaashroteamento imediato ou ciclo de vida do corretor.

IA e conexões

Fazashincluir a IA?

Não.ashé um cliente para um endpoint de IA que você configura. DefinirASH_AI_ENDPOINTeASH_AI_MODEL;ashsuporta Ollama local e outros servidores locais compatíveis com OpenAI (LM Studio, llama.cpp, MLX, LocalAI, vLLM, text-generation-webui, Jan, GPT4All) e detecta adaptadores de provedor de nuvem suportados a partir do endpoint, com um opcionalASH_AI_PROVIDERsubstituir.

O que são servidores MCP e como adiciono um?

Os servidores MCP (Model Context Protocol) expõem ferramentas que um modelo de IA pode chamar, como pesquisa, análise ou ações específicas de serviço. Os servidores remotos não estão habilitados por padrão. Para adicionar um servidor Streamable HTTP MCP confiável, useash mcp add <url>ou adicione seu URL em sua própria linha em$XDG_CONFIG_HOME/ash/.ash_allow(padrão~/.config/ash/.ash_allow).Ashse conecta através de seu corretor e oferece as ferramentas do servidor ao modelo. Use apenas servidores em que você confia: suas ferramentas podem realizar ações em seu nome. HTTPS é necessário, exceto para servidores de desenvolvimento localhost. Se a inicialização do MCP falhar,ashcontinua sem ferramentas MCP remotas: avisa em sessões interativas e permanece silencioso em sessões não interativas.

Os trabalhos agendados podem usar servidores MCP?

Não. Os trabalhos agendados e outros trabalhos não interativos não herdam um agente de shell interativo, portanto, as ferramentas MCP remotas não estão disponíveis.Ashainda executa o prompt sem ferramentas MCP e suprime essa falha de inicialização esperada. Um prompt que depende do MCP pode, portanto, terminar sem os dados ou ações solicitadas. Não agende prompts que exijam MCP.

O MCP funciona quandoASH_STRICT=1?

Sim. Uma linha de URL HTTP(S) registra explicitamente um servidor MCP e não é tratada como um executável de shell. O modo estrito não desativa os servidores MCP configurados. Ainda se aplicaAshproteções de saída não confiáveis ​​para o conteúdo da ferramenta retornado.

Como funciona o MCP OAuth e onde as credenciais são armazenadas?

Para um servidor protegido por OAuth,Ashabre a página de autorização no navegador do desktop quando uma GUI está disponível; se não conseguir abrir um navegador, ele imprime uma URL para autorizar manualmente em um navegador no mesmo host. Usarash mcp add <url> --no-browserpara sempre usar o fluxo terminal. Para conexões OAuth diretas, a descoberta permite endereços IP não públicos apenas para a autoridade MCP registrada exata; outros hosts OAuth permanecem sujeitos ao bloqueio de endereços não públicos. Um proxy de saída configurado é responsável por filtrar seus endereços de destino. O corretor lida com o retorno de chamada, troca de token, atualização e sessão MCP persistente. As credenciais são armazenadas no gerenciador de credenciais do sistema operacional, quando disponíveis. Se não estiver disponível, configure o substituto do arquivo criptografado usando um arquivo aleatório de 32 bytesASH_MCP_CREDENTIAL_KEY;Ashnunca armazena a chave em si.

Onde posso encontrar o AUTH_KEY para os provedores de IA em nuvem mais populares?

ashusaASH_AI_AUTH_TOKENpara seu token ao portador opcional; ele não cria nem distribui chaves de provedor. Crie uma chave na conta do seu provedor, comoOpenAI,Antrópico,Estúdio de IA do Google,Azure Open AI,Mistral,Coerente,Groq,xAI,DeepSeek,Juntos IA,OpenRouter,Abraçando o rosto, ouOllamae exporte-o como a variável de ambiente do provedor (ou definaASH_AI_AUTH_TOKENdiretamente).ash installdetecta automaticamente variáveis ​​de ambiente específicas do provedor com suporte. Os endpoints de nuvem devem usar HTTPS e exigir um token, exceto AWS Bedrock; endereços privados/LAN e.localnomes de host são tratados como locais, a menos queASH_STRICT=1está definido.

Fazashabrir uma nova conexão a cada vez?

Não é para uso normal do shell interativo do Unix. Bash, zsh e Fish iniciam um broker por sessão de shell, comunicam-se com ele por meio de um soquete Unix privado e reutilizam seu pool de conexões HTTP limitado. O corretor sai após inatividade; trabalhos agendados usam solicitações diretas em vez de um intermediário de shell persistente.

Fish usa o corretor?

Sim. O wrapper Fish inicia e reutiliza o mesmo corretor por sessão que bash e zsh, atualiza seu arrendamento imediatamente antes de umashsolicitação e mantém a configuração do corretor silenciosa.

O que acontece se uma solicitação for lenta, indisponível ou eu mudar de ideia?

ImprensaCtrl-Cpara cancelar uma solicitação em voo. O tempo limite padrão da solicitação de IA é de três minutos; definirASH_AI_TIMEOUT, por exemploASH_AI_TIMEOUT=90s, para alterá-lo.ashtenta novamente falhas de IA repetíveis até três vezes por padrão com uma espera curta e limitada; sintonize esse comportamento comASH_RETRY_MAX_ATTEMPTS,ASH_RETRY_BASE_DELAY, eASH_RETRY_MAX_DELAY.

Segurança e Controle

Como faço para bloquearashser mais seguro e quais são as implicações?

Mantenha a lista de permissões executáveis ​​restrita, dê preferência a ferramentas somente leitura e não adicione comandos privilegiados ou destrutivos. DefinirASH_STRICT=1para bloquear padrões de injeção de prompt reconhecidos de ferramentas, arquivos, scripts, pipelines e saídas de agentes filhos não confiáveis. Isso também pode ocultar texto legítimo que se assemelha a uma tentativa de injeção. A lista de permissões é um limite de execução, não um sandbox:ashe as ferramentas permitidas ainda funcionam como você.

Podeashexecute comandos destrutivos comorm?

Não com a lista de permissões padrão instalada. Aconselha explicitamente contrarm,mv,dd,chmod,chown,kill, esudo. Se você adicionar um deles,ashpode solicitá-lo com suas permissões; revise essa decisão cuidadosamente.

Como altero os comandosashtem permissão para executar?

Editar$XDG_CONFIG_HOME/ash/.ash_allow(padrão~/.config/ash/.ash_allow) e liste os nomes dos executáveis, um por linha ou separados por vírgula. É independente$TOOLS_DIR_LISTe$PLUGINS_DIR_LISTas diretivas permitem scripts gerenciados e plug-ins nativos elegíveis; substitua-os por nomes literais para uma política restritiva. Scripts e plug-ins elegíveis são arquivos executáveis ​​regulares sob$XDG_DATA_HOME/ash/toolse$XDG_DATA_HOME/ash/plugins(base padrão~/.local/share/ash). Adicione comandos negados a$XDG_CONFIG_HOME/ash/.ash_deny, ou definirASH_ALLOW/ASH_DENYpara listas separadas por vírgula. As alterações serão lidas no próximoashsolicitar.

Qual usuário éashcorrendo por baixo?

ashe todas as ferramentas permitidas são executadas como o usuário que iniciaash. Não eleva privilégios.AshDiretórios e arquivos XDG gerenciados usam permissões restritivas, mas seu conteúdo permanece acessível ao usuário e a qualquer processo que você permitir explicitamente.

Fazashconfiar no texto recebido via pipe igual ao texto do usuário? Quais proteções existem para dados maliciosos?

Sim. Quandoashnão recebe argumentos de linha de comando e a entrada padrão é canalizada, ele trata essa entrada como o prompt do usuário. Não direcione páginas da web, registros ou texto gerado não confiáveis ​​diretamente paraasha menos que você pretenda autorizá-lo como um prompt. Isto difere deashferramenta gerenciada, arquivo, script, pipeline e saída do agente filho:ashrotula esses resultados como evidências não confiáveis ​​e instrui o modelo a nunca seguir as instruções deles. DefinirASH_STRICT=1para atualizar também termos conhecidos de injeção imediata em evidências não confiáveis. As regras de execução da lista de permissões e do argumento direto ainda se aplicam à execução da ferramenta.

São meusasharquivos privados de outros usuários neste computador?

AshOs diretórios e arquivos XDG gerenciados usam permissões restritivas somente do proprietário quando há suporte. Isso protege contra outras contas locais com permissões normais do Unix, mas não contra sua própria conta, administradores, backups ou software que você escolhe executar com acesso ao seu diretório inicial.

Ferramentas e fluxo de trabalho

Fazashsuporta pipes e outras tradições Unix?

Sim. Você pode canalizar texto paraashcomo um prompt, por exemplogit diff | ash. Para pipelines de ferramentas solicitados por IA,ashsuporta de dois a dezesseis executáveis ​​permitidos conectados diretamente sem um shell, comols | grep pattern | pbcopy. Os padrões de controle do shell nos argumentos da ferramenta são bloqueados e todos os executáveis ​​em umashO pipeline gerenciado deve estar na lista de permissões.

Vaiashreinterpretar comandos dentro de meus scripts de shell, comandos SSH ou tarefas cron?

Os wrappers de integração Bash e zsh retornam imediatamente em shells não interativos, portanto, scripts, trabalhos de CI, linhas únicas SSH e comandos cron mantêm o comportamento normal de comando não encontrado. Use uma invocação explícita comoash "summarize this log"ousome-command | ashquando a automação deve ligarash.

Como faço para pararashde interpretar meus comandos por alguns minutos?

Correrash snoozepara os cinco minutos padrão ou especifique uma duração comoash snooze 30souash snooze 1h. Correrash snooze offpara retomar imediatamente. A soneca pausa o roteamento automático de comandos não encontrados e de wrapper; explícitoash ...comandos ainda funcionam.

Como posso depurarashe ver mais informações sobre o que está fazendo?

DefinirASH_VERBOSE=1antes de correrashpara habilitar saída de depuração estruturada e um painel de execução de terminal. DefinirASH_LOG_FILEgravar JSON de depuração em um arquivo;ASH_LOG_MAX_BYTEScontrola a rotação e o padrão é 1 MiB quando um arquivo de log é configurado.

Que limites se aplicam quandoashexecuta ferramentas?

Por padrão, cada chamada de ferramenta tem um tempo limite de 15 segundos e captura até 8.192 bytes de saída. Uma solicitação de IA pode fazer até 16 iterações de loop de ferramentas e umaashO pipeline gerenciado tem de dois a dezesseis estágios. Ajuste o tempo limite da ferramenta e o limite de saída comASH_TOOL_TIMEOUTeASH_TOOL_OUTPUT_MAX; mantenha a saída focada com comandos comohead,tail, ougrep.

Onde está o prompt padrão do sistema?

O arquivo de prompt canônico é$XDG_CONFIG_HOME/ash/.ash_system(padrão~/.config/ash/.ash_system), instalado a partir do pacote padrão quando você executaash install. Arquivos existentes no antigo~/.ashworkspace não são migrados ou lidos automaticamente. Ordinário$VARIABLEvalores são expandidos do meio ambiente, mas$TOOLS_DIR_LIST,$PLUGINS_DIR_LIST, e$IF_PYTHON_AVAILABLEsão reservados internosAshsubstituições e nunca derivadas do ambiente.

Onde coloco meus próprios scripts e plugins nativos paraashchamar como ferramentas?

Coloque scripts Python do usuário em$XDG_DATA_HOME/ash/tools/e plug-ins binários nativos em$XDG_DATA_HOME/ash/plugins/(base padrão~/.local/share/ash). Certifique-se de que eles sejam executáveis ​​e adicione o nome do executável simples ao$XDG_CONFIG_HOME/ash/.ash_allow(ou confiar em$TOOLS_DIR_LIST/$PLUGINS_DIR_LIST).Ashnão invoca um shell para comandos e plugins Unix permitidos.

Quais são as práticas recomendadas para uma ferramenta ou plugin para que a IA entenda sua finalidade e uso?

Siga ocontrato de plugin nativo: expor opções CLI previsíveis, implementar--help,--versione JSON versionado--ai-docsmetadados e descrevem esquemas de entrada/saída e comportamento de falha. Emita JSON estruturado compacto com umstatusdetalhes de campo e erros acionáveis ​​em vez de prosa misturada com dados. Mantenha a saída limitada, valide entradas, defina tempos limite de rede e torne a ferramenta segura para chamadas repetidas. Adicione seu nome de arquivo simples a$XDG_CONFIG_HOME/ash/.ash_allow;ashpode executá-lo somente quando estiver na lista de permissões e não listado em$XDG_CONFIG_HOME/ash/.ash_deny.

Quais são os scripts de ferramentas e plug-ins nativos fornecidos?

Os scripts Python de bootstrap instalados sãoheadlines.py,wikipedia.py, eyfinance.pyem$XDG_DATA_HOME/ash/tools/. Os plug-ins nativos fornecidos sãowhat_time_is_it(Ir),flip_a_coin(ferrugem) ecalculator(TypeScript) em$XDG_DATA_HOME/ash/plugins/.

Os plugins Rust, incluindo flip_a_coin, são incluídos apenas no Linux e FreeBSD. As compilações macOS incluem what_time_is_it e calculator, mas excluem plugins Rust.

Por que o plugin Rust não está no macOS e como instalá-lo manualmente?

O macOS omite plugins Rust, incluindo flip_a_coin, para compilar ambas as arquiteturas no Linux sem executores macOS e reduzir os custos de CI. Não é uma restrição de compatibilidade. O Homebrew mantém os plugins Go e TypeScript; Linux e FreeBSD mantêm Rust.

No Mac, instale as ferramentas de linha de comando do Xcode (xcode-select --install, se necessário) e Rust via rustup. Execute os comandos onde deseja criar uma nova cópia do repositório. O Makefile do plugin compila para a arquitetura nativa do Mac e instala diretamente no diretório do usuário, sem 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

Use o Makefile do plugin, não make plugins-build, que ignora Rust no macOS. Mantenha $PLUGINS_DIR_LIST em ${XDG_CONFIG_HOME:-$HOME/.config}/ash/.ash_allow ou adicione flip_a_coin; ele não deve constar em .ash_deny. Inicie uma nova invocação do ash. Execute "$plugin_dir/flip_a_coin" para testar sem provedor de IA.

Podeashchamar subagentes?

Sim. Um agente pai pode usarrun_sub_agentpara uma tarefa focada e independente. Um filho herda o diretório de trabalho, a configuração, as ferramentas e as permissões do sistema operacional, retorna um resultado limitado e não pode criar outro filho. O máximo padrão é de seis subagentes por execução pai e pode ser alterado comASH_MAX_AGENTS.

Podeashgerar arquivos de memória para rastrear tarefas complexas e o que aprendeu na sessão?

Sim. Ele pode gravar arquivos de espaço de trabalho persistentes em$XDG_CONFIG_HOME/ash(padrão~/.config/ash), que são rastreados em seu inventário de espaço de trabalho e arquivos temporários com escopo de sessão em$XDG_STATE_HOME/ash/scratch/<session-id>/(base padrão~/.local/state/ash). Scratch é opcional: use-o para scripts reutilizáveis, dados intermediários, descobertas acumuladas ou artefatos revisáveis ​​quando agregarem valor. Suas ferramentas sãoread_scratch_file,write_scratch_file,append_scratch_file,replace_scratch_file,edit_scratch_file, elist_scratch_files. AtivoAshe os processos do corretor protegem suas sessões com um bloqueio de sistema operacional. Os diretórios desbloqueados são limpos emAshsair somente depois de terem mais de 48 horas e não terem sido acessados ​​em 24 horas; arquivos de bloqueio de sobras de falhas não bloqueiam a limpeza posterior. Use arquivos de espaço de trabalho persistentes para informações que você pretende manter.

Podeashagendar trabalho para mais tarde?

Sim, através das suas ferramentas de IA. No macOS, o agendamento único usa um agendamento por usuáriolaunchdLaunchAgent e requerlaunchctl. No Linux, os agendamentos recorrentes são suportados pelo seu usuáriocrontab;ashgerencia apenas suas próprias entradas marcadas. O únicolaunchdO agendador não está disponível no Linux, portanto, use uma entrada cron ou outro agendador do Linux para uma tarefa única do Linux. As execuções agendadas recebem um ambiente limitado e usam HTTPS direto em vez de um agente de shell interativo, portanto, certifique-se de que a configuração de IA necessária esteja disponível para o trabalho agendado. Eles não podem usar ferramentas MCP remotas;Ashfunciona sem eles e não avisa em sessões não interativas. Não agende prompts que exijam MCP.

Sessões e armazenamento

Onde estão o histórico ou os arquivos de log doash?

O histórico de conversas é armazenado como JSON em$XDG_STATE_HOME/ash/history/(padrão~/.local/state/ash/history/). O histórico agendado e os logs de depuração são armazenados no mesmo diretório de estado. Você pode escolher outro caminho de log de depuração comASH_LOG_FILE.

Por quanto tempo os arquivos históricos são retidos?

ashremove arquivos JSON históricos com mais de 14 dias durante a limpeza normal do aplicativo, com um orçamento de limpeza de 300 ms para que a saída não seja atrasada. A janela de mensagens recentes é separada: mantém até 40 mensagens por conversa por padrão e pode ser alterada comASH_HISTORY_MAX.

Como posso encerrar uma conversa ou começar do zero?

O histórico é separado por ID de sessão e chave de modelo/endpoint de IA. Inicie uma nova sessão de terminal para um novo ID de sessão ou remova o arquivo JSON relevante em$XDG_STATE_HOME/ash/history/(padrão~/.local/state/ash/history/) quando você deseja descartar intencionalmente o histórico de conversa local. A remoção de um arquivo de histórico não revoga uma chave do provedor nem exclui dados do lado do provedor; gerencie-os separadamente com o provedor.

O que éASH_SESSION_IDe onde é gerado?

É oAshIdentificador por sessão de propriedade usado para separar histórico, espaço temporário, soquetes de corretor e nomes de log agendados. O ambiente de shell gerenciado cria um quando o shell é iniciado e o preserva quando recebe recursos;Ashcria um para invocações sem um valor fornecido pelo shell. Um genéricoSESSION_IDé ignorado.

Posso fornecer o meu próprioASH_SESSION_ID?

Sim.Ashvalida IDs explícitos e rejeita valores inválidos em vez de substituí-los silenciosamente. Os IDs válidos têm no máximo 128 caracteres e usam letras, dígitos, sublinhados, hifens, com um sufixo de ponto opcional para sessão filha. Não use valores não confiáveis ​​ou compartilhados: as colisões combinam o histórico da sessão e o estado do tempo de execução.

Apoio e Comunidade

Como faço para registrar um bug?

Abra um problema emgithub.com/Jonconradt/ash/issuescom oashversão ou commit, seu sistema operacional e shell, a configuração relevante para o problema com segredos removidos, etapas reproduzíveis e o resultado observado. Para uma vulnerabilidade de segurança, não abra um problema público; relate-o em particular por e-mail ou aviso de segurança do GitHub.

Existe um fórum de discussão noashprojeto?

Sim. UsarDiscussões do GitHubpara perguntas e ideias, eProblemas do GitHubpara bugs reproduzíveis e trabalho rastreado.