Một số nhà phát triển không muốn rời khỏi bàn phím. Nếu bạn sống trong tmux, làm việc qua SSH và xem GUI là một lớp cản trở, bạn cần một REST API client chạy tốt ngay trong terminal: lưu request cục bộ, dùng được với Git, chạy được qua SSH và đủ nhanh cho cả thử nghiệm lẫn script.
Bài viết này tập trung vào các REST API client mạnh cho CLI và TUI trong năm 2026. Tất cả công cụ bên dưới đều chạy trong shell, lưu request trong file cục bộ và phù hợp với workflow không cần desktop app.
Trước khi chọn tool, hãy phân biệt nhanh CLI, TUI và GUI.
TUI vs CLI vs GUI: chọn đúng loại công cụ
Một REST API client trong terminal thường rơi vào một trong ba nhóm:
-
CLI: chạy một lệnh, in response ra terminal. Phù hợp cho one-off request, shell script và CI. Ví dụ:
curl,httpie,curlie. -
TUI: có giao diện tương tác bên trong terminal. Bạn điều hướng bằng bàn phím, chỉnh request body, header, environment và xem response trong cùng màn hình. Ví dụ:
atac,posting,slumber. - GUI: ứng dụng desktop hoặc web như Postman, Insomnia hoặc Apidog desktop app. Phù hợp hơn khi cần cộng tác, tài liệu, mock server và test workflow cho team.
Nếu bạn chỉ cần gửi request nhanh:
http GET https://api.example.com/users
Nếu bạn cần lưu collection, đổi environment và thao tác bằng bàn phím trong terminal, hãy dùng TUI.
Các công cụ bên dưới thuộc nhóm CLI và TUI. Nếu muốn khảo sát rộng hơn ngoài terminal, xem thêm bài tổng hợp về các lựa chọn thay thế Postman và các client API tuyệt vời.
atac: trải nghiệm giống Postman trong terminal
atac là API client TUI viết bằng Rust, xây dựng trên Ratatui. Tên đầy đủ là “Arguably a Terminal API Client”. Nó hướng đến trải nghiệm gần giống Postman, Insomnia hoặc Bruno nhưng chạy hoàn toàn trong shell.
Điểm mạnh
atac phù hợp nếu bạn muốn một TUI đầy đủ tính năng nhưng vẫn giữ request dưới dạng file có thể commit vào Git.
Nó hỗ trợ:
- Collection lưu bằng JSON hoặc YAML
- HTTP methods phổ biến
- Auth: Basic, Bearer, Digest, JWT
- JSON body, multipart form, file upload
- Environment variables
- Pre-request và post-request JavaScript scripts
- Syntax highlighting
- Custom keybindings
- Import từ Postman v2.1.0, OpenAPI và cURL
- Export sang cURL, Node.js Axios, Rust Reqwest và các định dạng khác
Cài đặt
Với Cargo:
cargo install atac --locked
Với Homebrew:
brew install atac
Với Scoop trên Windows:
scoop install atac
Bạn cũng có thể dùng package cho Arch, Fedora, Docker image hoặc binary từ GitHub releases.
Khi nào nên dùng atac?
Chọn atac nếu bạn muốn:
- Giao diện giống Postman nhưng chạy trong terminal
- Collection dễ version control
- Import nhanh từ Postman hoặc OpenAPI
- Workflow offline, không cần tài khoản
posting: TUI hiện đại cho workflow Python
posting là HTTP client TUI viết bằng Python và xây dựng trên Textual. Nó tập trung vào workflow điều khiển bằng bàn phím, file YAML và version control.
Điểm mạnh
posting lưu request dưới dạng YAML thuần, dễ đọc và dễ review trong pull request.
Nó hỗ trợ:
- Request file bằng YAML
- Environment qua một hoặc nhiều file
.env - Đọc biến môi trường từ hệ điều hành
- Python hook trước và sau request
- Chạy tốt qua SSH
- Giao diện TUI tối ưu cho bàn phím
Ví dụ workflow thường gặp:
posting
Sau đó mở project chứa các file request YAML, chọn environment và gửi request trực tiếp trong TUI.
Cài đặt
Cách được khuyến nghị:
uv tool install --python 3.13 posting
Hoặc dùng pipx:
pipx install posting
Cả hai cách đều giúp tách posting khỏi Python packages trong project của bạn.
Khi nào nên dùng posting?
Chọn posting nếu:
- Team của bạn dùng Python nhiều
- Bạn muốn viết hook bằng Python
- Bạn thích request YAML rõ ràng, dễ commit
- Bạn cần một TUI gọn, hiện đại, chạy tốt qua SSH
slumber: định nghĩa request bằng cấu hình
slumber là HTTP client terminal viết bằng Rust. Khác với các TUI thiên về thao tác UI, slumber ưu tiên cấu hình: bạn định nghĩa request trong file YAML, sau đó chạy qua TUI hoặc CLI.
Điểm mạnh
Trung tâm của slumber là file slumber.yml.
Bạn có thể định nghĩa:
-
profiles: cấu hình môi trường -
recipes: mẫu request - Giá trị động từ request khác, file hoặc shell command
- Chuỗi xử lý response bằng công cụ shell như
jq,grep,head
Ví dụ cách tư duy với slumber:
profiles:
local:
data:
host: http://localhost:3000
recipes:
list_users:
method: GET
url: "{{host}}/users"
Sau đó chạy tương tác bằng TUI hoặc gọi request từ CLI tùy workflow.
Cài đặt
Với Cargo:
cargo install slumber --locked
Bạn cũng có thể cài qua Homebrew tap hoặc binary trên GitHub releases. Nên kiểm tra tài liệu chính thức của project để lấy command Homebrew mới nhất.
Khi nào nên dùng slumber?
Chọn slumber nếu:
- Bạn muốn request được định nghĩa như code
- Bạn thích config-first workflow
- Bạn cần dùng shell pipeline để xử lý response
- Bạn muốn kết hợp TUI tương tác và CLI script
ain: request file chạy trên curl, wget hoặc httpie
ain có cách tiếp cận khác. Nó không phải TUI toàn màn hình. Thay vào đó, ain tổ chức API thành các file template rồi ủy quyền request thực tế cho curl, wget hoặc httpie.
Điểm mạnh
Một file template của ain chia request thành các phần rõ ràng:
[Host]
https://api.example.com
[Method]
POST
[Headers]
Content-Type: application/json
Authorization: Bearer $TOKEN
[Body]
{
"name": "demo"
}
ain hỗ trợ:
- Tổ chức API bằng file và thư mục
- Biến môi trường và file
.env - URL encoding
- Backend là
curl,wgethoặchttpie - Xuất command tương ứng để chia sẻ hoặc đưa vào script
Cài đặt
ain cung cấp binary trên GitHub releases và có thể build từ source. Kiểm tra repository để chọn cách cài phù hợp với hệ điều hành của bạn.
Khi nào nên dùng ain?
Chọn ain nếu:
- Bạn muốn lưu request thành file có version control
- Bạn vẫn muốn dùng
curlhoặchttpielàm backend - Workflow của bạn thiên về scripting hơn là TUI tương tác
httpie: CLI thân thiện cho request nhanh
httpie là HTTP client CLI phổ biến, dễ đọc và thân thiện hơn curl trong nhiều trường hợp. Nó không phải TUI, nhưng là một lựa chọn tiêu chuẩn cho terminal API workflow.
Điểm mạnh
httpie giúp tạo JSON body bằng cú pháp ngắn:
http POST https://api.example.com/users \
name="Wanda" \
role="developer"
Nếu cần truyền raw JSON value:
http POST https://api.example.com/users \
name="Wanda" \
active:=true \
tags:='["api", "cli"]'
httpie hỗ trợ:
- Output có màu và format đẹp
- JSON body từ cú pháp field
- Download file
- Plugin
- Session liên tục bằng
--session - Session file dạng JSON có thể chỉnh thủ công
Ví dụ lưu session:
http --session=dev POST https://api.example.com/login username=demo password=secret
http --session=dev GET https://api.example.com/me
Cài đặt
Trên macOS:
brew install httpie
Trên Debian/Ubuntu:
apt install httpie
Bằng pip:
pip install httpie
Khi nào nên dùng httpie?
Chọn httpie nếu:
- Bạn cần gửi request nhanh
- Bạn muốn cú pháp dễ đọc hơn
curl - Bạn viết script hoặc tài liệu hướng dẫn cho developer
- Bạn cần CLI đơn giản kết hợp với TUI khác
curlie: curl mạnh như cũ, cú pháp dễ đọc hơn
curlie là wrapper mỏng quanh curl, mượn cú pháp và cách format output của httpie. Mục tiêu của nó là: sức mạnh của curl, dễ dùng như httpie.
Điểm mạnh
curlie vẫn giữ toàn bộ option của curl, nên bạn không mất tính năng.
Nó hỗ trợ:
- Pretty-print JSON khi chạy tương tác
- Ép pretty output bằng
--pretty - Output không bị buffer, hữu ích khi debug streaming response
- In command
curltương đương bằng--curl
Ví dụ:
curlie GET https://api.example.com/users
In ra command curl tương đương:
curlie --curl POST https://api.example.com/users name=Wanda
Điều này hữu ích khi bạn muốn thử nhanh bằng curlie, sau đó copy command curl vào script hoặc tài liệu.
Cài đặt
Với Go:
go install github.com/rs/curlie@latest
Với Homebrew:
brew install curlie
Hoặc dùng package manager của distro bạn đang dùng.
Để xem thêm các lựa chọn khác, tham khảo bài tổng hợp về các client API tuyệt vời và lựa chọn thay thế Postman.
Khi nào nên dùng curlie?
Chọn curlie nếu:
- Bạn đã quen với curl
- Bạn vẫn cần toàn bộ option của curl
- Bạn muốn output dễ đọc hơn
- Bạn cần bước nâng cấp nhỏ nhất từ curl thô
Bảng so sánh nhanh
| Công cụ | Loại | Ngôn ngữ | Lưu trữ | Phù hợp nhất cho |
|---|---|---|---|---|
| atac | TUI | Rust | JSON / YAML | Workflow giống Postman trong terminal, collection thân thiện với Git |
| posting | TUI | Python | YAML + dotenv | Team ưu tiên bàn phím, hook request bằng Python |
| slumber | TUI + CLI | Rust | YAML (slumber.yml) |
Request config-first, kết hợp shell command |
| ain | CLI dựa trên file | Go | File template .ain
|
Request có version control chạy trên curl/wget/httpie |
| httpie | CLI | Python | Session JSON | Request nhanh, script dễ đọc |
| curlie | CLI | Go | Không lưu riêng, bọc curl | Toàn bộ sức mạnh của curl với cú pháp thân thiện hơn |
Tất cả sáu công cụ đều chạy cục bộ và dùng tốt qua SSH. TUI phù hợp khi bạn cần duyệt collection, chỉnh header/body và xem response tương tác. CLI phù hợp khi bạn cần tốc độ, script và command dễ copy.
Một setup thực tế thường là:
- Dùng
atac,postinghoặcslumberđể khám phá API - Dùng
httpiehoặccurliecho request nhanh - Commit collection/config vào Git
- Dùng GUI hoặc nền tảng API khi team cần cộng tác, mock và tài liệu
Xem thêm các hướng dẫn về các client REST API và client API offline tốt nhất.
Cách chọn client terminal phù hợp
Bắt đầu bằng câu hỏi: bạn muốn gửi request như thế nào?
Nếu bạn muốn giao diện tương tác
Chọn TUI:
- atac: gần giống Postman nhất
- posting: hợp với team dùng Python
- slumber: hợp với workflow cấu hình bằng YAML
Dùng TUI khi bạn cần:
- Duyệt collection
- Đổi environment
- Chỉnh body/header thường xuyên
- Làm việc qua SSH nhưng vẫn muốn UI tương tác
Nếu bạn muốn command nhanh và script
Chọn CLI:
- httpie: cú pháp dễ đọc
- curlie: giữ toàn bộ sức mạnh của curl
- ain: lưu request thành file nhưng vẫn chạy qua backend như curl/httpie
Dùng CLI khi bạn cần:
http GET https://api.example.com/health
Hoặc đưa vào shell script:
#!/usr/bin/env bash
set -euo pipefail
http GET https://api.example.com/health
http POST https://api.example.com/jobs name=sync priority:=1
Nếu bạn cần lưu request trong Git
Ưu tiên các công cụ lưu bằng file rõ ràng:
-
atac: JSON / YAML -
posting: YAML -
slumber:slumber.yml -
ain: template file -
httpie: session JSON
Nếu bạn đang tìm thêm công cụ miễn phí và offline, xem hướng dẫn về client API miễn phí.
Apidog phù hợp ở đâu?
Terminal client rất tốt cho một developer gửi request nhanh. Nhưng khi team cần cộng tác, mock server, tài liệu công khai hoặc test automation, bạn sẽ cần một lớp workflow rộng hơn.
Apidog là nền tảng API tất cả trong một với desktop app cho Windows, Mac, Linux, web app và CLI. Nó hỗ trợ thiết kế API bằng OpenAPI editor trực quan, kịch bản kiểm thử tự động với assertion trực quan, mock server, tài liệu tương tác tự động tạo và cộng tác team theo thời gian thực. Nó hỗ trợ REST, GraphQL, gRPC, WebSocket, SOAP và Socket.IO.
Cách hiểu thực tế:
- Dùng terminal client hoặc TUI cho request tương tác hằng ngày
- Dùng Apidog khi cần thiết kế, kiểm thử, mock, tài liệu và cộng tác
- Dùng Apidog CLI khi cần chạy test đã lưu trong CI
Có hai điểm cần phân biệt rõ.
Thứ nhất, Apidog là lớp quản lý chất lượng API: thiết kế, kiểm thử, mock và tài liệu hóa contract. Nó không phải CMS, nền tảng thương mại, API gateway hoặc load generator.
Thứ hai, Apidog CLI không phải interactive terminal request client. Lệnh apidog run dùng để chạy test scenario đã lưu trong CI pipeline, hỗ trợ reporter cli, html, json, junit, chạy data-driven bằng -d và chọn environment bằng -e.
Ví dụ tư duy CI:
apidog run --reporter cli -e prod
Nó không thay thế httpie, curl, curlie hoặc atac khi bạn muốn gõ một request thủ công và xem response ngay trong terminal.
Nếu mục tiêu của bạn là chạy test suite trong CI, xem hướng dẫn đầy đủ về Apidog CLI và cách kiểm thử REST API từ dòng lệnh.
Câu hỏi thường gặp
Client REST API terminal tốt nhất là gì?
Không có lựa chọn tốt nhất cho mọi trường hợp. Nếu muốn trải nghiệm giống Postman trong terminal, chọn atac. Nếu cần CLI thân thiện, chọn httpie. Nếu thích cấu hình bằng YAML, chọn slumber.
Các client này có chạy qua SSH không?
Có. Tất cả công cụ trong bài đều chạy trong terminal, nên dùng tốt qua SSH. Đây là lý do chính nhiều developer chọn CLI/TUI thay vì desktop app.
Các client API terminal có lưu request cục bộ không?
Có. atac, posting, slumber và ain lưu request trong file cục bộ như JSON, YAML hoặc template. httpie lưu session bằng JSON. curlie bọc curl và không có storage riêng.
httpie có phải TUI không?
Không. httpie là CLI. Bạn nhập một command và nhận response được format. Nếu cần giao diện tương tác trong terminal, dùng TUI như atac, posting hoặc slumber.
Nên dùng terminal client hay Apidog?
Dùng terminal client hoặc TUI cho request nhanh, tương tác và tùy chỉnh. Dùng Apidog khi team cần cộng tác, mock server, tài liệu publish hoặc test automation trong CI.
Có TUI nào import Postman collection không?
Có. atac có thể import Postman collection và environment v2.1.0, OpenAPI spec và cURL command, giúp di chuyển workflow hiện có dễ hơn.






Top comments (0)