- taws é uma ferramenta de UI baseada em Rust para explorar e gerenciar recursos da AWS em ambiente de terminal, permitindo observar e controlar a infraestrutura AWS em tempo real
- Suporta mais de 94 tipos de recursos e mais de 60 serviços AWS, além de oferecer troca de perfis e regiões, atalhos de teclado no estilo Vim e autocompletar
- Suporta iniciar, parar e encerrar instâncias EC2, visualização detalhada em JSON/YAML dos recursos, além de filtragem e atualização em tempo real
- Oferece vários métodos de instalação em macOS, Linux e Windows, como Homebrew, Cargo e download de binários, e requer configuração de credenciais AWS e permissões IAM
- Projeto open source inspirado no k9s e criado com a biblioteca Ratatui, oferecendo aos usuários do AWS CLI uma experiência de gerenciamento visual e intuitiva
Visão geral do taws
- taws é um visualizador e gerenciador de recursos da AWS baseado em terminal, projetado para facilitar a exploração e o gerenciamento da infraestrutura AWS
- Monitora continuamente mudanças nos recursos AWS e oferece a capacidade de executar comandos sobre os recursos observados
- O objetivo do projeto é simplificar e tornar mais eficiente o gerenciamento da infraestrutura AWS
- É disponibilizado sob a licença MIT e foi escrito em Rust
Principais recursos
- Suporte a múltiplos perfis e regiões, permitindo alternar facilmente entre várias contas e regiões da AWS
- Suporte para explorar e gerenciar mais de 94 tipos de recursos e mais de 60 serviços
- Recurso de atualização em tempo real, permitindo recarregar o estado dos recursos com uma única tecla
- Atalhos de teclado semelhantes ao Vim para navegação rápida e execução de comandos
- Controle embutido de instâncias EC2 (iniciar, parar, encerrar)
- Recursos de visualização detalhada em JSON/YAML, filtragem por nome e propriedades e autocompletar com fuzzy matching
Como instalar
- Homebrew (macOS/Linux):
brew install huseyinbabal/tap/taws
- Download de binários pré-compilados: pacotes por arquitetura para macOS, Linux e Windows
- Instalação via Cargo:
cargo install taws
- Build a partir do código-fonte: requer Rust 1.70 ou superior, compilador C e linker
- Comandos de instalação das ferramentas de desenvolvimento por plataforma são fornecidos (ex.:
xcode-select --install, sudo apt install build-essential -y)
Execução e configuração
- As credenciais AWS são reconhecidas a partir de caminhos padrão como
aws configure, variáveis de ambiente, roles IAM e o arquivo ~/.aws/credentials
- As permissões IAM exigem no mínimo permissões
Describe* e List*
- Exemplos de execução:
- Executar com o perfil padrão:
taws
- Especificar um perfil:
taws --profile production
- Especificar uma região:
taws --region us-west-2
- Ativar logs de debug:
taws --log-level debug
- Caminho dos arquivos de log:
- Linux:
~/.config/taws/taws.log
- macOS:
~/Library/Application Support/taws/taws.log
- Windows:
%APPDATA%\taws\taws.log
Atalhos de teclado
- Navegação: mover com
j/k ou as setas, mudar de página com Ctrl-u/d
- Troca de visualização: abrir o seletor de recursos com
:, ver detalhes com Enter ou d
- Ações:
r atualizar, / filtrar, p trocar perfil, R trocar região, q sair
- Controle de EC2:
s iniciar, S parar, T encerrar
Serviços suportados
- Suporte a 30 serviços centrais da AWS (cobrindo mais de 95% do uso total)
- Compute: EC2, Lambda, ECS, EKS, Auto Scaling
- Storage: S3
- Database: RDS, DynamoDB, ElastiCache
- Networking: VPC, Route 53, CloudFront, API Gateway, ELB
- Security: IAM, Secrets Manager, KMS, ACM, Cognito
- Management: CloudFormation, CloudWatch Logs, CloudTrail, SSM, STS
- Messaging: SQS, SNS, EventBridge
- Containers: ECR
- DevOps: CodePipeline, CodeBuild
- Analytics: Athena
Configuração de variáveis de ambiente
AWS_PROFILE: perfil padrão
AWS_REGION: região padrão
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN: informações de autenticação
Problemas conhecidos
- Alguns recursos podem não estar acessíveis com a política padrão somente leitura
- Devido à paginação, a quantidade de recursos pode variar durante o carregamento
- Alguns serviços globais, como IAM, Route53 e CloudFront, usam sempre a região us-east-1
Contribuição e base tecnológica
- Contribuições são bem-vindas, e antes de adicionar um novo serviço é necessário propor a ideia no GitHub Discussions
- Inspirado no k9s, usa Ratatui (biblioteca Rust TUI) e aws-sigv4 (AWS SDK for Rust)
- Como projeto open source para a comunidade AWS, registra 622 stars e 15 forks
Licença
- Distribuído sob a MIT License
- O código-fonte e o arquivo de licença podem ser consultados no repositório no GitHub
1 comentários
Comentários do Hacker News
Não entendo muito bem qual é o apelo de uma TUI
A vantagem de uma CLI é a scriptabilidade e composabilidade, enquanto uma TUI parece só uma versão de baixa resolução de uma UI de navegador
Em GUIs, esse tipo de interface de teclado expressiva quase não aparece
Não funcionou muito bem na execução
Fico preocupado em adicionar uma camada de middleware em cima da infraestrutura da AWS. Um comando errado ou um bug pode causar consequências graves
Especialmente na AWS, há muitos bancos de dados com estado e workloads de produção, então a recuperação é difícil
Acho válida a tentativa de melhorar a experiência da CLI, mas pessoalmente eu hesitaria até em usar um modo somente leitura
Pelo menos a AWS CLI ou o console eliminam um ponto potencial de falha
Isso também vale para a AWS CLI e para o console.
Se você gerencia mudanças com IaC, uma ferramenta para explorar recursos visualmente é útil. O console da AWS é incômodo demais
Adicionar mais uma camada traz um risco considerável
Se for para uso com permissões somente leitura, como o k9s, talvez seja aceitável
Seria bom se houvesse algo como “Price of Current Changes” na barra de menu
Para ver na hora se a mudança custa US$ 0,01 ou US$ 10.001
Há um comentário no código:
// TODO: Handle credential_source, role_arn, source_profile, sso_*Ou seja, não há suporte a SSO nem login com múltiplas contas, e é preciso usar diretamente
AWS_ACCESS_KEY_IDeAWS_SECRET_ACCESS_KEYEm ambiente de produção, isso parece arriscado do ponto de vista de segurança, então não vejo muito como usar de verdade
Hoje em dia, parece que um script de shell de 15 linhas de repente vira um CLI ou app TUI em bun com 50 mil linhas
Não é para substituir a CLI existente, mas para funcionar como complemento
Em organizações com várias contas AWS, se você deixar os perfis pré-configurados com uma ferramenta como aws-sso-util, alternar entre contas fica muito mais rápido
Quando li o título pela primeira vez, por um instante fiquei animado achando que significava que a UI da AWS tinha virado baseada em terminal
Pode ser uma pergunta boba, mas tenho curiosidade se uma TUI funciona bem também em terminais com fundo claro
O modo escuro acaba até causando fadiga visual
Infelizmente, no meu terminal de fundo claro o app travou logo ao iniciar, então não consegui testar
Travou logo na primeira execução. Nesse estado, é difícil viralizar
Gostaria que mais designers de TUI tivessem experimentado interfaces da era dos mainframes, como o Hercules
A filosofia de composição de UI daquela época tem muita coisa para ensinar