1 điểm bởi GN⁺ 2026-01-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • tawscông cụ UI viết bằng Rust cho phép duyệt và quản lý tài nguyên AWS trong môi trường terminal, giúp quan sát và điều khiển hạ tầng AWS theo thời gian thực
  • Hỗ trợ hơn 94 loại tài nguyênhơn 60 dịch vụ AWS, đồng thời cung cấp chuyển đổi profile và region, điều khiển bàn phím kiểu Vim, và tự động hoàn thành
  • Hỗ trợ khởi động·dừng·chấm dứt các EC2 instance, xem chi tiết JSON/YAML của tài nguyên, cùng các tính năng lọc và cập nhật theo thời gian thực
  • Cung cấp nhiều cách cài đặt trên macOS, Linux, Windows như Homebrew, Cargo, tải binary, đồng thời cần cấu hình AWS credentials và quyền IAM
  • Là dự án mã nguồn mở được xây dựng bằng thư viện Ratatui, lấy cảm hứng từ k9s, mang lại trải nghiệm quản trị trực quan bằng hình ảnh cho người dùng AWS CLI

Tổng quan về taws

  • tawstrình xem và quản lý tài nguyên AWS dựa trên terminal, được thiết kế để giúp việc duyệt và quản lý hạ tầng AWS trở nên dễ dàng hơn
    • Liên tục giám sát các thay đổi của tài nguyên AWS và cung cấp khả năng thực thi lệnh đối với các tài nguyên được quan sát
  • Mục tiêu của dự án là đơn giản hóa và tăng hiệu quả quản lý hạ tầng AWS
  • Được phát hành theo giấy phép MIT và viết bằng ngôn ngữ Rust

Tính năng chính

  • Hỗ trợ nhiều profile và region, cho phép chuyển đổi dễ dàng giữa nhiều tài khoản AWS và region
  • Hỗ trợ duyệt và quản lý hơn 94 loại tài nguyênhơn 60 dịch vụ
  • Tính năng cập nhật theo thời gian thực cho phép làm mới trạng thái tài nguyên chỉ với một phím bấm
  • Điều khiển bàn phím kiểu Vim để điều hướng và thực thi lệnh nhanh chóng
  • Tích hợp sẵn tính năng điều khiển EC2 instance (khởi động, dừng, chấm dứt)
  • Cung cấp xem chi tiết JSON/YAML, lọc theo tên·thuộc tính, và tự động hoàn thành khớp mờ

Cách cài đặt

  • Homebrew(macOS/Linux) : brew install huseyinbabal/tap/taws
  • Tải binary dựng sẵn: cung cấp gói theo từng kiến trúc cho macOS, Linux, Windows
  • Cài bằng Cargo: cargo install taws
  • Build từ source: cần Rust 1.70 trở lên, trình biên dịch C và linker
    • Cung cấp lệnh cài công cụ phát triển theo từng nền tảng (ví dụ: xcode-select --install, sudo apt install build-essential -y)

Chạy và cấu hình

  • AWS credentials được nhận diện từ các đường dẫn tiêu chuẩn như aws configure, biến môi trường, IAM role, tệp ~/.aws/credentials
  • Quyền IAM tối thiểu cần có là Describe*, List*
  • Ví dụ chạy:
    • Chạy với profile mặc định: taws
    • Chỉ định profile cụ thể: taws --profile production
    • Chỉ định region cụ thể: taws --region us-west-2
    • Bật log debug: taws --log-level debug
  • Đường dẫn tệp log:
    • Linux: ~/.config/taws/taws.log
    • macOS: ~/Library/Application Support/taws/taws.log
    • Windows: %APPDATA%\taws\taws.log

Key binding

  • Điều hướng: di chuyển bằng j/k hoặc phím mũi tên, chuyển trang bằng Ctrl-u/d
  • Chuyển đổi view: mở bộ chọn tài nguyên bằng :, xem chi tiết bằng Enter hoặc d
  • Tác vụ: r làm mới, / lọc, p chuyển profile, R chuyển region, q thoát
  • Điều khiển EC2: s khởi động, S dừng, T chấm dứt

Dịch vụ được hỗ trợ

  • Hỗ trợ 30 dịch vụ AWS cốt lõi (bao phủ hơn 95% nhu cầu sử dụng tổng thể)
    • 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

Thiết lập biến môi trường

  • AWS_PROFILE: profile mặc định
  • AWS_REGION: region mặc định
  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN: thông tin xác thực

Các vấn đề đã biết

  • Một số tài nguyên có thể không truy cập được với policy chỉ đọc mặc định
  • Do phân trang, số lượng tài nguyên có thể thay đổi trong lúc đang tải
  • Một số dịch vụ global như IAM, Route53, CloudFront luôn sử dụng region us-east-1

Đóng góp và nền tảng kỹ thuật

  • Hoan nghênh đóng góp; trước khi thêm dịch vụ mới, cần đề xuất trong GitHub Discussions
  • Lấy cảm hứng từ k9s, sử dụng Ratatui (thư viện Rust TUI) và aws-sigv4 (AWS SDK for Rust)
  • Là dự án mã nguồn mở dành cho cộng đồng AWS, hiện ghi nhận 622 Star15 Fork

Giấy phép

  • Phát hành theo MIT License
  • Có thể xem mã nguồn và tệp giấy phép trong kho lưu trữ GitHub

1 bình luận

 
GN⁺ 2026-01-05
Ý kiến trên Hacker News
  • Tôi không thực sự hiểu sức hấp dẫn của TUI
    CLI có ưu điểm là có thể script hóa và tính kết hợp, còn TUI thì chỉ giống như một phiên bản độ phân giải thấp của UI trên trình duyệt

    • Xét về mặt thực dụng, đa số chương trình lấy bàn phím làm trung tâm đều ở dạng TUI
      Trong GUI hiếm khi thấy những giao diện bàn phím giàu khả năng biểu đạt như vậy
    • Điểm hấp dẫn là có thể thao tác chỉ bằng kết nối terminal tới máy chủ
    • Ví dụ tôi rất thích Lazygit. Nó nhanh chỉ sau CLI, lại có thể xem thêm thông tin trực quan nên là cách hiệu quả nhất để làm việc với git
    • Hãy xem k9s để có một ví dụ hay. Hầu hết thao tác đều làm được chỉ bằng một lần nhấn phím
    • Bổ sung thêm ý ở bình luận khác, TUI có thể được cài trên máy chủ và dùng từ xa qua SSH
  • Tôi đã không chạy được nó
    Tôi lo ngại về việc thêm một lớp middleware lên trên hạ tầng AWS. Lệnh sai hoặc lỗi có thể dẫn tới hậu quả nghiêm trọng
    Đặc biệt AWS có rất nhiều cơ sở dữ liệu có trạng thái và workload production nên rất khó khôi phục
    Tôi thích những nỗ lực cải thiện trải nghiệm CLI, nhưng cá nhân tôi thấy ngay cả chế độ chỉ đọc cũng khiến tôi lưỡng lự
    AWS CLI hay console ít nhất cũng giảm bớt một điểm có thể hỏng

    • Nếu chỉ đọc thì mức độ cẩn trọng đó có vẻ hơi quá. Dù có lỗi thì cùng lắm công cụ bị crash hoặc trả dữ liệu sai
      AWS CLI hay console cũng vậy thôi.
      Nếu bạn quản lý thay đổi bằng IaC, thì công cụ giúp duyệt tài nguyên bằng trực quan vẫn rất hữu ích. AWS console quá bất tiện
    • Tôi cũng nghĩ tương tự. Tôi đã quản lý provisioning bằng Terraform, còn việc ad-hoc thì aws-cli là đủ
      Thêm một lớp nữa đồng nghĩa với rủi ro cao hơn
    • Dù vậy, nếu có thể nhanh chóng qua lại giữa log và console để nắm tình hình thì cũng rất hay
      Nếu dùng như k9s với quyền chỉ đọc thì có vẻ ổn
    • Sẽ tuyệt nếu có một engine giống Terraform, in ra “plan” trước khi chạy và tuyệt đối không làm gì khác
  • Sẽ hay nếu trên thanh menu có mục như “Chi phí của các thay đổi hiện tại (Price of Current Changes)”
    Để có thể thấy ngay thay đổi đó là 0,01 đô hay 10.001 đô

    • Giá mà Amazon làm mọi thứ đơn giản đến vậy thì tốt biết mấy
  • Trong code có chú thích // TODO: Handle credential_source, role_arn, source_profile, sso_*
    Tức là nó không hỗ trợ SSO hay đăng nhập đa tài khoản, và phải dùng trực tiếp AWS_ACCESS_KEY_ID cùng AWS_SECRET_ACCESS_KEY
    Trong môi trường production điều này có rủi ro bảo mật lớn nên tôi nghĩ khó dùng thực tế

    • Tôi cũng coi trọng bảo mật, nhưng đây là phiên bản đầu. Dự định là sẽ dần bổ sung tính năng khi nhận được phản hồi từ cộng đồng
    • Nếu không hỗ trợ SSO thì tôi cũng thấy khó dùng
  • Dạo này có cảm giác một shell script 15 dòng rất nhanh sẽ phình thành một ứng dụng CLI hoặc TUI bun 50k dòng

    • Mục đích sử dụng khác nhau. aws-cli dành cho script hóa và công việc lặp lại, còn công cụ kiểu này dành cho khám phá và xem xét tạm thời
      Nó không thay thế CLI hiện có mà nên được xem là công cụ bổ sung
    • Nói cách khác, nó giống như Electron trong terminal
  • Nếu là tổ chức có nhiều tài khoản AWS, cấu hình sẵn profile bằng công cụ như aws-sso-util sẽ giúp chuyển tài khoản nhanh hơn nhiều

  • Lúc mới đọc tiêu đề, tôi đã tưởng nó có nghĩa là “UI của AWS đã chuyển sang dạng terminal” nên phấn khích trong chốc lát

  • Có thể là câu hỏi ngớ ngẩn, nhưng tôi tò mò không biết TUI có hiển thị tốt trên terminal nền sáng không

    • Đây hoàn toàn không phải câu hỏi ngớ ngẩn. Tôi thuộc thế hệ terminal màn hình xanh lá ngày xưa, nên nền trắng chữ đen dễ nhìn hơn nhiều
      Dark mode ngược lại còn gây mỏi mắt
      Đáng tiếc là trên terminal nền sáng của tôi, ứng dụng bị crash ngay sau khi chạy nên tôi không kiểm tra được
  • crash ngay từ lần chạy đầu tiên. Với tình trạng này thì khó mà lan truyền rộng được

    • Có vấn đề về xử lý tài nguyên, nhưng đã được sửa ở phiên bản 1.0.1, nên bạn có thể thử lại
  • Tôi muốn nhiều nhà thiết kế TUI hơn nữa từng trải nghiệm các giao diện thời mainframe như Hercules
    Triết lý tổ chức UI của thời đó có rất nhiều điều đáng học hỏi

    • Tôi cũng tò mò về điểm này. Các ứng dụng TUI ngày nay khá na ná nhau, nên tôi muốn biết những cách tiếp cận thiết kế khác biệt của thời đó là gì
    • Tôi muốn nghe thêm cụ thể là bạn thích những điểm nào