- taws adalah alat UI berbasis Rust yang memungkinkan penelusuran dan pengelolaan resource AWS di lingkungan terminal, sehingga infrastruktur AWS dapat diamati dan dikendalikan secara real-time
- Mendukung lebih dari 94 jenis resource dan lebih dari 60 layanan AWS, serta menyediakan perpindahan profil dan region, kontrol keyboard bergaya Vim, dan fitur auto-complete
- Mendukung memulai·menghentikan·mengakhiri instance EC2, tampilan detail JSON/YAML untuk resource, serta filtering dan pembaruan real-time
- Menyediakan berbagai metode instalasi di macOS, Linux, dan Windows seperti Homebrew, Cargo, dan unduhan biner, serta memerlukan pengaturan kredensial AWS dan izin IAM
- Proyek open source yang dibuat dengan library Ratatui dan terinspirasi dari k9s, memberikan pengalaman pengelolaan yang visual dan intuitif bagi pengguna AWS CLI
Ikhtisar taws
- taws adalah penampil dan pengelola resource AWS berbasis terminal yang dirancang agar infrastruktur AWS dapat ditelusuri dan dikelola dengan mudah
- Memantau perubahan resource AWS secara berkelanjutan dan menyediakan kemampuan menjalankan perintah terhadap resource yang teramati
- Tujuan proyek ini adalah menyederhanakan dan mengefisienkan pengelolaan infrastruktur AWS
- Dirilis di bawah lisensi MIT dan ditulis dengan bahasa Rust
Fitur utama
- Dukungan multi-profile dan region untuk berpindah antar berbagai akun AWS dan region dengan mudah
- Mendukung penelusuran dan pengelolaan lebih dari 94 jenis resource dan lebih dari 60 layanan
- Fitur pembaruan real-time untuk me-refresh status resource dengan satu penekanan tombol
- Kontrol keyboard mirip Vim untuk navigasi cepat dan eksekusi perintah
- Fitur bawaan kontrol instance EC2 (mulai, berhenti, akhiri)
- Menyediakan tampilan detail JSON/YAML, filter berbasis nama·atribut, dan auto-complete fuzzy matching
Cara instalasi
- Homebrew(macOS/Linux) :
brew install huseyinbabal/tap/taws
- Unduh biner siap pakai: tersedia paket per arsitektur untuk macOS, Linux, dan Windows
- Instalasi dengan Cargo:
cargo install taws
- Build dari source: memerlukan Rust 1.70 atau lebih baru, compiler C, dan linker
- Disediakan perintah instalasi tool pengembangan per platform (contoh:
xcode-select --install, sudo apt install build-essential -y)
Menjalankan dan konfigurasi
- Kredensial AWS dikenali dari jalur standar seperti
aws configure, environment variable, peran IAM, dan file ~/.aws/credentials
- Izin IAM minimal memerlukan hak
Describe* dan List*
- Contoh menjalankan:
- Jalankan dengan profil default:
taws
- Tentukan profil tertentu:
taws --profile production
- Tentukan region tertentu:
taws --region us-west-2
- Aktifkan log debug:
taws --log-level debug
- Lokasi file log:
- Linux:
~/.config/taws/taws.log
- macOS:
~/Library/Application Support/taws/taws.log
- Windows:
%APPDATA%\taws\taws.log
Key binding
- Navigasi: bergerak dengan
j/k atau tombol panah, pindah halaman dengan Ctrl-u/d
- Ganti tampilan: buka pemilih resource dengan
:, lihat detail dengan Enter atau d
- Aksi:
r refresh, / filter, p ganti profil, R ganti region, q keluar
- Kontrol EC2:
s mulai, S berhenti, T akhiri
Layanan yang didukung
- Mendukung 30 layanan inti AWS (mencakup lebih dari 95% penggunaan keseluruhan)
- 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
Konfigurasi environment variable
AWS_PROFILE: profil default
AWS_REGION: region default
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN: informasi autentikasi
Isu yang diketahui
- Beberapa resource mungkin tidak dapat diakses dengan kebijakan read-only default
- Karena pagination, jumlah resource dapat berubah selama proses loading
- Beberapa layanan global seperti IAM, Route53, dan CloudFront selalu menggunakan region us-east-1
Kontribusi dan fondasi teknis
- Kontribusi sangat diterima, dan sebelum menambahkan layanan baru perlu mengajukan usulan di GitHub Discussions
- Terinspirasi dari k9s, serta menggunakan Ratatui (library Rust TUI) dan aws-sigv4 (AWS SDK for Rust)
- Proyek open source untuk komunitas AWS, dengan catatan 622 Star dan 15 Fork
Lisensi
- Didistribusikan dengan MIT License
- Source dan file lisensi dapat dilihat di repositori GitHub
1 komentar
Komentar Hacker News
Saya kurang paham apa daya tarik TUI
Keunggulan CLI adalah bisa discrpt dan dapat dikombinasikan, sedangkan TUI terasa seperti sekadar versi resolusi rendah dari UI browser
Di GUI, antarmuka keyboard yang ekspresif seperti ini jarang terlihat
Tidak berjalan dengan baik
Saya khawatir menambahkan lapisan middleware di atas infrastruktur AWS. Perintah yang salah atau bug bisa menimbulkan akibat serius
Khususnya di AWS ada banyak database stateful atau workload produksi, jadi pemulihannya sulit
Upaya untuk memperbaiki pengalaman CLI itu bagus, tetapi secara pribadi saya bahkan ragu untuk mode read-only
AWS CLI atau konsol setidaknya mengurangi satu titik kegagalan
Ini juga berlaku untuk AWS CLI atau konsol.
Jika perubahan dikelola dengan IaC, alat untuk menjelajahi resource secara visual itu berguna. Konsol AWS terlalu tidak nyaman
Menambahkan lapisan lain membawa beban risiko yang besar
Jika digunakan seperti k9s hanya dengan izin read-only, sepertinya tidak masalah
Akan bagus kalau ada item seperti “Price of Current Changes” di menu bar
Jadi bisa langsung melihat apakah perubahan itu bernilai 0,01 dolar atau 10.001 dolar
Di kode ada komentar
// TODO: Handle credential_source, role_arn, source_profile, sso_*Artinya, ini tidak mendukung SSO atau login multi-akun, dan harus memakai
AWS_ACCESS_KEY_IDsertaAWS_SECRET_ACCESS_KEYsecara langsungDi lingkungan produksi, ini berisiko besar dari sisi keamanan, jadi menurut saya sulit dipakai secara nyata
Belakangan ini rasanya skrip shell 15 baris tiba-tiba membesar menjadi aplikasi bun CLI atau TUI 50k baris
Ini bukan pengganti CLI yang ada, melainkan pelengkap
Untuk organisasi yang punya banyak akun AWS, jika profil sudah dikonfigurasi lebih dulu dengan alat seperti aws-sso-util, perpindahan akun jadi jauh lebih cepat
Waktu pertama melihat judulnya, saya sempat bersemangat karena mengira artinya “AWS UI berubah menjadi berbasis terminal”
Mungkin pertanyaan bodoh, tapi saya penasaran apakah TUI masih terlihat baik di terminal dengan latar terang
Dark mode justru menyebabkan kelelahan mata
Sayangnya, di terminal berlatar terang saya aplikasi ini crash tepat setelah dijalankan, jadi saya tidak bisa mengujinya
Begitu dijalankan pertama kali langsung crash. Dalam kondisi seperti ini akan sulit jadi viral
Saya berharap lebih banyak desainer TUI pernah merasakan antarmuka era mainframe seperti Hercules
Filosofi penyusunan UI pada masa itu punya banyak hal yang bisa dipelajari