UI terminal pour AWS (taws) – visualiseur et gestionnaire de ressources AWS en terminal
(github.com/huseyinbabal)- taws est un outil d’interface utilisateur en Rust qui permet d’explorer et d’administrer des ressources AWS depuis un terminal, avec observation et contrôle en temps réel de l’infrastructure AWS
- Il prend en charge plus de 94 types de ressources et plus de 60 services AWS, avec changement de profil et de région, navigation clavier de style Vim et autocomplétion
- Il permet le démarrage, l’arrêt et la suppression d’instances EC2, ainsi que l’affichage détaillé en JSON/YAML, le filtrage et l’actualisation en temps réel
- Il propose plusieurs méthodes d’installation sur macOS, Linux et Windows, notamment via Homebrew, Cargo et téléchargement de binaires, et nécessite une configuration des identifiants AWS et des autorisations IAM
- Projet open source inspiré de k9s et construit avec la bibliothèque Ratatui, il offre aux utilisateurs d’AWS CLI une expérience d’administration visuelle et intuitive
Présentation de taws
- taws est un visualiseur et gestionnaire de ressources AWS en terminal, conçu pour faciliter l’exploration et l’administration de l’infrastructure AWS
- Il permet de surveiller en continu les changements de ressources AWS et d’exécuter des commandes sur les ressources observées
- L’objectif du projet est de simplifier et rendre plus efficace la gestion de l’infrastructure AWS
- Le projet est publié sous licence MIT et écrit en Rust
Fonctionnalités principales
- La prise en charge de plusieurs profils et régions permet de basculer facilement entre différents comptes AWS et régions
- Prise en charge de l’exploration et de la gestion de plus de 94 types de ressources et plus de 60 services
- La fonction d’actualisation en temps réel permet de rafraîchir l’état des ressources par simple pression d’une touche
- Navigation clavier de type Vim pour une exploration rapide et l’exécution de commandes
- Fonction intégrée de contrôle des instances EC2 (démarrage, arrêt, suppression)
- Affichage détaillé en JSON/YAML, filtrage par nom et attributs et autocomplétion avec fuzzy matching
Installation
- Homebrew (macOS/Linux) :
brew install huseyinbabal/tap/taws - Téléchargement de binaires précompilés : paquets fournis selon l’architecture pour macOS, Linux et Windows
- Installation via Cargo :
cargo install taws - Compilation depuis les sources : Rust 1.70 ou version ultérieure, compilateur C et éditeur de liens requis
- Des commandes d’installation des outils de développement sont fournies selon la plateforme (ex. :
xcode-select --install,sudo apt install build-essential -y)
- Des commandes d’installation des outils de développement sont fournies selon la plateforme (ex. :
Exécution et configuration
- Les identifiants AWS sont reconnus depuis les emplacements standard, comme
aws configure, les variables d’environnement, les rôles IAM ou le fichier~/.aws/credentials - Les autorisations IAM requises incluent au minimum
Describe*etList* - Exemples d’exécution :
- Exécution avec le profil par défaut :
taws - Spécifier un profil :
taws --profile production - Spécifier une région :
taws --region us-west-2 - Activer les logs de débogage :
taws --log-level debug
- Exécution avec le profil par défaut :
- Chemin du fichier de logs :
- Linux :
~/.config/taws/taws.log - macOS :
~/Library/Application Support/taws/taws.log - Windows :
%APPDATA%\taws\taws.log
- Linux :
Raccourcis clavier
- Navigation : déplacement avec
j/kou les touches fléchées, changement de page avecCtrl-u/d - Changement de vue : ouvrir le sélecteur de ressources avec
:, afficher les détails avecEnteroud - Actions :
rrafraîchir,/filtrer,pchanger de profil,Rchanger de région,qquitter - Contrôle EC2 :
sdémarrer,Sarrêter,Tsupprimer
Services pris en charge
- 30 services AWS essentiels pris en charge (couvrant plus de 95 % des usages courants)
- 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
Variables d’environnement
AWS_PROFILE: profil par défautAWS_REGION: région par défautAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN: informations d’authentification
Problèmes connus
- Certaines ressources peuvent être inaccessibles avec la politique par défaut en lecture seule
- Le nombre de ressources peut varier pendant le chargement en raison de la pagination
- Certains services globaux, comme IAM, Route53 et CloudFront, utilisent toujours la région us-east-1
Contribution et base technique
- Les contributions sont les bienvenues, et il est demandé de proposer les nouveaux services dans GitHub Discussions avant leur ajout
- Le projet s’inspire de k9s et utilise Ratatui (bibliothèque TUI Rust) ainsi que aws-sigv4 (AWS SDK for Rust)
- Projet open source pour la communauté AWS, avec 622 stars et 15 forks
Licence
- Distribué sous licence MIT
- Le code source et le fichier de licence sont disponibles dans le dépôt GitHub
1 commentaires
Commentaires sur Hacker News
Je ne vois pas bien l’intérêt des TUI
L’avantage d’une CLI, c’est la scriptabilité et la composabilité, alors qu’un TUI donne juste l’impression d’une version basse résolution d’une interface de navigateur
On voit rarement ce genre d’interfaces clavier vraiment expressives dans les GUI
Ça n’a pas très bien fonctionné chez moi
Ajouter une couche middleware au-dessus de l’infrastructure AWS m’inquiète. Une mauvaise commande ou un bug peut avoir des conséquences graves
Avec AWS en particulier, on a souvent des bases de données avec état ou des workloads de production, donc la récupération est difficile
C’est bien d’essayer d’améliorer l’expérience CLI, mais personnellement, même en lecture seule j’hésiterais
L’AWS CLI ou la console retirent au moins un point de défaillance
C’est aussi vrai pour l’AWS CLI ou la console.
Si les changements sont gérés via l’IaC, un outil qui permet de parcourir visuellement les ressources est utile. La console AWS est vraiment pénible
Ajouter encore une couche apporte beaucoup de risque
Pour un usage limité à des permissions en lecture seule, comme k9s, ça me paraît acceptable
Ce serait bien d’avoir dans la barre de menu un élément du type « coût des modifications en cours (Price of Current Changes) »
Histoire de voir tout de suite si le changement coûte 0,01 dollar ou 10 001 dollars
Il y a dans le code un commentaire
// TODO: Handle credential_source, role_arn, source_profile, sso_*Donc il n’y a pas de prise en charge du SSO ni des connexions multi-comptes, et il faut saisir directement
AWS_ACCESS_KEY_IDetAWS_SECRET_ACCESS_KEYEn production, c’est risqué sur le plan de la sécurité, donc j’ai du mal à imaginer un usage réel
En ce moment, on a l’impression qu’un script shell de 15 lignes finit par devenir une appli CLI ou TUI bun de 50k lignes
Il ne faut pas le voir comme un remplacement de la CLI existante, mais comme un complément
Dans les organisations avec plusieurs comptes AWS, configurer à l’avance les profils avec un outil comme aws-sso-util rend le basculement entre comptes beaucoup plus rapide
En lisant le titre la première fois, j’ai cru un instant que cela voulait dire que l’UI d’AWS était devenue basée sur le terminal
C’est peut-être une question bête, mais je me demande si les TUI restent lisibles sur un terminal à fond clair
Le mode sombre provoque plutôt chez moi de la fatigue visuelle
Malheureusement, sur mon terminal à fond clair, l’application a planté juste après le lancement, donc je n’ai pas pu tester
Plantage dès le premier lancement. Dans cet état, ce sera difficile à faire devenir viral
J’aimerais que davantage de designers de TUI aient connu les interfaces de l’époque des mainframes comme Hercules
Il y a beaucoup à apprendre de la philosophie de conception d’interface de cette époque