- taws es una herramienta de UI basada en Rust para explorar y administrar recursos de AWS desde la terminal, permitiendo observar y controlar la infraestructura de AWS en tiempo real
- Soporta más de 94 tipos de recursos y más de 60 servicios de AWS, y ofrece cambio de perfiles y regiones, controles de teclado estilo Vim y autocompletado
- Soporta inicio, detención y terminación de instancias EC2, vista detallada en JSON/YAML de recursos, además de filtrado y actualización en tiempo real
- Ofrece varios métodos de instalación en macOS, Linux y Windows, incluyendo Homebrew, Cargo y descarga de binarios, y requiere configurar credenciales de AWS y permisos de IAM
- Es un proyecto open source inspirado en k9s y creado con la librería Ratatui, que ofrece a los usuarios de AWS CLI una experiencia de administración visual e intuitiva
Resumen de taws
- taws es un visor y administrador de recursos de AWS basado en terminal, diseñado para facilitar la exploración y gestión de infraestructura en AWS
- Supervisa continuamente los cambios en los recursos de AWS y ofrece ejecución de comandos sobre los recursos observados
- El objetivo del proyecto es simplificar y hacer más eficiente la administración de infraestructura en AWS
- Está publicado bajo licencia MIT y fue escrito en Rust
Funciones principales
- El soporte para múltiples perfiles y regiones permite cambiar fácilmente entre distintas cuentas y regiones de AWS
- Soporta la exploración y administración de más de 94 tipos de recursos y más de 60 servicios
- La actualización en tiempo real permite refrescar el estado de los recursos con una sola tecla
- Controles de teclado similares a Vim para navegación rápida y ejecución de comandos
- Incluye control de instancias EC2 (iniciar, detener, terminar)
- Ofrece vista detallada en JSON/YAML, filtrado por nombre y propiedades y autocompletado con coincidencia difusa
Métodos de instalación
- Homebrew (macOS/Linux):
brew install huseyinbabal/tap/taws
- Descarga de binarios precompilados: paquetes por arquitectura para macOS, Linux y Windows
- Instalación con Cargo:
cargo install taws
- Compilación desde código fuente: requiere Rust 1.70 o superior, además de compilador y enlazador de C
- Se proporcionan comandos de instalación de herramientas de desarrollo por plataforma (por ejemplo,
xcode-select --install, sudo apt install build-essential -y)
Ejecución y configuración
- Las credenciales de AWS se reconocen desde rutas estándar como
aws configure, variables de entorno, roles de IAM y el archivo ~/.aws/credentials
- Los permisos de IAM requieren como mínimo permisos
Describe* y List*
- Ejemplos de ejecución:
- Ejecutar con el perfil predeterminado:
taws
- Especificar un perfil:
taws --profile production
- Especificar una región:
taws --region us-west-2
- Activar logs de depuración:
taws --log-level debug
- Ruta del archivo de logs:
- Linux:
~/.config/taws/taws.log
- macOS:
~/Library/Application Support/taws/taws.log
- Windows:
%APPDATA%\taws\taws.log
Atajos de teclado
- Navegación: mover con
j/k o teclas de flecha, cambiar de página con Ctrl-u/d
- Cambio de vista: abrir el selector de recursos con
:, ver detalles con Enter o d
- Acciones:
r refrescar, / filtrar, p cambiar perfil, R cambiar región, q salir
- Control de EC2:
s iniciar, S detener, T terminar
Servicios soportados
- Soporta 30 servicios principales de AWS (cubriendo más del 95% del 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
Configuración de variables de entorno
AWS_PROFILE: perfil predeterminado
AWS_REGION: región predeterminada
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN: información de autenticación
Problemas conocidos
- Algunos recursos pueden no ser accesibles con la política predeterminada de solo lectura
- Debido a la paginación, la cantidad de recursos puede variar durante la carga
- Algunos servicios globales como IAM, Route53 y CloudFront usan siempre la región us-east-1
Contribuciones y base tecnológica
- Las contribuciones son bienvenidas, y antes de agregar un nuevo servicio se debe proponer en GitHub Discussions
- Está inspirado en k9s y utiliza Ratatui (librería TUI de Rust) y aws-sigv4 (AWS SDK for Rust)
- Como proyecto open source para la comunidad de AWS, registra 622 estrellas y 15 forks
Licencia
- Se distribuye bajo MIT License
- El código fuente y el archivo de licencia pueden consultarse en el repositorio de GitHub
1 comentarios
Comentarios en Hacker News
No termino de ver cuál es el atractivo de las TUI
La ventaja de una CLI es la automatización con scripts y la componibilidad, pero una TUI solo se siente como una versión de baja resolución de una UI de navegador
En las GUI no se ven mucho este tipo de interfaces de teclado tan expresivas
No me funcionó bien
Me preocupa agregar una capa intermedia encima de la infraestructura de AWS. Un comando incorrecto o un bug podría tener consecuencias graves
En AWS en particular hay muchas bases de datos con estado y cargas de trabajo de producción, así que recuperarse es difícil
Está bien intentar mejorar la experiencia de la CLI, pero personalmente me cuesta confiar incluso en un modo de solo lectura
Al menos la AWS CLI o la consola eliminan un punto posible de falla
Con la AWS CLI o la consola pasa lo mismo.
Si gestionas los cambios con IaC, una herramienta para explorar recursos visualmente sí resulta útil. La consola de AWS es demasiado incómoda
Agregar otra capa más implica demasiado riesgo
Si fuera para usarlo solo con permisos de solo lectura, como k9s, podría estar bien
Estaría bueno que en la barra de menú hubiera algo como “Precio de los cambios actuales (Price of Current Changes)”
Para poder ver de inmediato si el cambio cuesta 0.01 dólares o 10,001 dólares
En el código hay un comentario
// TODO: Handle credential_source, role_arn, source_profile, sso_*O sea, no soporta SSO ni inicio de sesión multi-cuenta, y obliga a usar directamente
AWS_ACCESS_KEY_IDyAWS_SECRET_ACCESS_KEYEn un entorno de producción eso me parece difícil de usar de verdad por el riesgo de seguridad
Últimamente parece que un script de shell de 15 líneas de pronto termina creciendo hasta convertirse en una app CLI o TUI de bun de 50k líneas
No hay que verlo como un reemplazo de la CLI existente, sino como un complemento
Si estás en una organización con varias cuentas de AWS, preparar los perfiles de antemano con herramientas como aws-sso-util hace mucho más rápido cambiar de cuenta
Cuando vi el título por primera vez, por un momento me emocioné pensando que significaba que la UI de AWS se había vuelto basada en terminal
Quizá sea una pregunta tonta, pero me da curiosidad si una TUI se ve bien también en una terminal con fondo claro
El modo oscuro más bien me cansa la vista
Lamentablemente, en mi terminal de fondo claro la app se crasheó apenas arrancó, así que no pude probarlo
Se crashea apenas la ejecutas por primera vez. En ese estado va a ser difícil que se vuelva viral
Ojalá más diseñadores de TUI hubieran experimentado interfaces de la época de mainframes como Hercules
La filosofía de construcción de UI de esa época tiene mucho que enseñar