Um comando cd mais inteligente, que aprende quais diretórios você mais usa e permite acessá-los com poucas teclas em todos os principais shells.
idank/explainshell
Ferramenta web e biblioteca Python que explicam comandos de shell associando cada argumento ao texto de ajuda correspondente na manpage.
- Estrelas
- 14,297
- Forks
- 854
- Issues abertas
- 57
- Último commit
- há 2 meses
O que é?
explainshell recebe uma linha de comando de shell, como um pipeline com flags e argumentos, analisa o comando em uma AST usando bashlex e associa cada token às descrições das opções extraídas da manpage correspondente. O resultado mostra a função de cada parte do comando, o que é útil para entender comandos de uma linha desconhecidos.
O projeto analisa manpages usando macros roff ou um extrator baseado em LLM que retorna intervalos de linhas no texto-fonte original; assim, o texto de ajuda exibido é extraído da manpage, em vez de ser gerado. As manpages processadas são armazenadas em um único banco de dados SQLite, e uma interface web em Flask exibe as correspondências. O projeto também trata operadores de shell, como pipes e &&, como nós separados.
O repositório inclui uma CLI de gerenciamento para extrair, comparar diferenças e inspecionar dados de manpages, além de ferramentas de avaliação para extração com LLM e renderização de Markdown com mandoc. O banco de dados atualizado é distribuído pelas releases do GitHub, e seu conteúdo está sujeito às licenças originais de cada manpage.
Recursos principais
- 01Associa cada argumento de um comando de shell à descrição da opção correspondente na manpage.
- 02Analisa linhas de comando em uma AST para lidar com pipes, && e outros operadores de shell.
- 03Extrai opções de macros roff ou com um LLM que retorna intervalos de linhas do texto-fonte.
- 04Armazena manpages processadas em um único banco de dados SQLite, com uma interface web feita em Flask.
- 05Oferece uma CLI para extrair, comparar diferenças e consultar dados de manpages.
Casos de uso
- Entender um comando de uma linha ou pipeline desconhecido antes de executá-lo.
- Revisar comandos de shell em scripts ou documentação.
- Criar uma referência de comandos auto-hospedada com base em dados de manpages.
- Avaliar ou comparar a extração de opções de manpages baseada em LLM.
Início rápido
- 1
Clone o repositório
git clone https://github.com/idank/explainshell.git - 2
Instale as dependências do Python em um virtualenv, conforme descrito no README
pip install -r requirements-dev.txt - 3
Baixe o banco de dados atualizado
make download-latest-db - 4
Execute o servidor web e abra http://localhost:5000
make serve
Antes de usar
- O código é licenciado sob GPLv3, portanto distribuições derivadas também devem ser licenciadas sob GPLv3.
- O banco de dados disponibilizado contém páginas de manual originais, cada uma sujeita à sua própria licença. Portanto, para redistribuí-lo, você precisa fazer sua própria análise de conformidade com as licenças.
- Para extrair novas páginas de manual, é necessário ter acesso a um provedor de LLM, como o Codex, ou uma chave da API da OpenAI.
Tópicos
Perguntas frequentes
- O que é explainshell?
- Ferramenta web e biblioteca Python que explicam comandos de shell associando cada argumento ao texto de ajuda correspondente na manpage. explainshell recebe uma linha de comando de shell, como um pipeline com flags e argumentos, analisa o comando em uma AST usando bashlex e associa cada token às descrições das opções extraídas da manpage correspondente. O resultado mostra a função de cada parte do comando, o que é útil para entender comandos de uma linha desconhecidos.
- explainshell é gratuito? Qual é a licença?
- explainshell é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- explainshell ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de explainshell foi em 26 de ago. de 2026.
- Para que posso usar explainshell?
- Entender um comando de uma linha ou pipeline desconhecido antes de executá-lo. Revisar comandos de shell em scripts ou documentação. Criar uma referência de comandos auto-hospedada com base em dados de manpages. Avaliar ou comparar a extração de opções de manpages baseada em LLM.
- Como instalar explainshell?
- Clone o repositório: git clone https://github.com/idank/explainshell.git Instale as dependências do Python em um virtualenv, conforme descrito no README: pip install -r requirements-dev.txt Baixe o banco de dados atualizado: make download-latest-db Execute o servidor web e abra http://localhost:5000: make serve
- Onde consigo explainshell?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/idank/explainshell
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Script Bash compatível com POSIX para instalar e alternar entre várias versões do Node.js por usuário e por shell.
Um fuzzy finder de linha de comando versátil que filtra qualquer lista de entrada e transforma scripts de shell em seletores interativos no terminal.
Um prompt minimalista e personalizável para vários shells, escrito em Rust, que exibe informações relevantes do projeto e do ambiente.
Ferramenta baseada em JavaScript para escrever scripts no estilo shell, com uma camada sobre child_process que escapa argumentos com segurança e oferece recursos multiplataforma.
Biblioteca Python para criar aplicações CLI a partir de type hints padrão, com ajuda, validação e conclusão de comandos no shell automáticas.