1 points par GN⁺ 2026-01-05 | 1 commentaires | Partager sur WhatsApp
  • 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)

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* et List*
  • 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
  • Chemin du fichier de logs :
    • Linux : ~/.config/taws/taws.log
    • macOS : ~/Library/Application Support/taws/taws.log
    • Windows : %APPDATA%\taws\taws.log

Raccourcis clavier

  • Navigation : déplacement avec j/k ou les touches fléchées, changement de page avec Ctrl-u/d
  • Changement de vue : ouvrir le sélecteur de ressources avec :, afficher les détails avec Enter ou d
  • Actions : r rafraîchir, / filtrer, p changer de profil, R changer de région, q quitter
  • Contrôle EC2 : s démarrer, S arrêter, T supprimer

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éfaut
  • AWS_REGION : région par défaut
  • AWS_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

 
GN⁺ 2026-01-05
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

    • D’un point de vue pratique, la plupart des programmes centrés sur le clavier sont des TUI
      On voit rarement ce genre d’interfaces clavier vraiment expressives dans les GUI
    • Le fait de pouvoir l’utiliser sur un serveur avec une simple connexion terminal est attrayant
    • Par exemple, j’adore vraiment Lazygit. C’est ce qu’il y a de plus rapide après la CLI, et le fait d’avoir aussi des informations visuelles en fait, pour moi, la manière la plus efficace d’utiliser git
    • Regardez k9s, c’est un bon exemple. La plupart des actions s’y font avec une seule frappe
    • Pour compléter un autre avis, un TUI peut être installé sur un serveur et utilisé à distance via SSH
  • Ç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

    • Si c’est en lecture seule, cette prudence me semble un peu excessive. Au pire, l’outil plante ou renvoie de mauvaises données
      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
    • J’ai un avis similaire. Je gère déjà le provisioning avec Terraform, et pour les opérations ad hoc, aws-cli me suffit
      Ajouter encore une couche apporte beaucoup de risque
    • Cela dit, si ça permet de naviguer rapidement entre les logs et la console pour comprendre la situation, ce serait appréciable
      Pour un usage limité à des permissions en lecture seule, comme k9s, ça me paraît acceptable
    • Ce serait bien d’avoir un moteur qui, comme Terraform, affiche un “plan” avant exécution et ne fasse absolument rien d’autre
  • 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

    • Si seulement Amazon avait rendu ça aussi simple
  • 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_ID et AWS_SECRET_ACCESS_KEY
    En production, c’est risqué sur le plan de la sécurité, donc j’ai du mal à imaginer un usage réel

    • Je pense aussi que la sécurité est importante, mais c’est une version initiale. Les fonctionnalités seront ajoutées progressivement à partir des retours de la communauté
    • Sans prise en charge du SSO, j’aurais aussi du mal à l’utiliser
  • 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

    • L’usage n’est pas le même. aws-cli sert au scripting et aux tâches répétitives, alors que ce genre d’outil sert à l’exploration et aux vérifications ponctuelles
      Il ne faut pas le voir comme un remplacement de la CLI existante, mais comme un complément
    • En gros, ça ressemble à Electron dans le terminal
  • 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

    • Ce n’est pas du tout une question bête. Je viens de la génération des terminaux à écran vert, donc le texte noir sur fond blanc m’est bien plus confortable
      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

    • Il y avait un problème de gestion des ressources, mais il a été corrigé dans la version 1.0.1, donc ça vaut le coup de réessayer
  • 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

    • Ça m’intrigue aussi. Les applis TUI récentes se ressemblent un peu toutes, donc je serais curieux de voir ce qu’il y avait de si différent dans l’approche design de l’époque
    • J’aimerais bien en entendre plus précisément sur ce qui vous plaisait