ATAC is Arguably a Terminal API Client. It is based on well known clients such as Postman, Insomnia or even Bruno, but inside your terminal without any specific graphical environment needed.
The philosophy of ATAC is to be free, account-less and offline for now and forever.
The binaries from the latest release can be found here
Important
Don't forget to run it from a terminal. For example, you can add the binary into your PATH. You won't be able to run it like other graphical applications since it needs CLI arguments.
For more:
atac -h
Important
First, make sure your rust version is at least 1.76
Simply clone the repository and use:
cargo run -- -h
Build latest release
cargo build --release
- Manage many collection
- Requests
- Modify URL
- All HTTP methods are handled
- GET
- POST
- PUT
- DELETE
- PATCH
- OPTIONS
- Query params, synchronous between the URL and the query params tab
- Authentication
- No Auth
- Basic Auth
- Bearer Token
- Headers
- Body
- No Body
- Plain Text
- JSON
- HTML
- XML
- Full response
- Body (with automatic syntax highlighting)
- Status code
- Cookies
- Request duration
- Simultaneously send asynchronous requests
- Settings
- Use config proxy
- Allow redirects
- Store received cookies
- Readable, commitable and versionable JSON files containing application data
- Configuration file
- HTTP and HTTPS proxy
- Postman collection v2.1.0 import
- Environment variables along .env file support
- Permanent keymap help & application state
- 3 request views
- 50% params / 50% response
- 100% response
- 100% params
-
To add
- Cookies management
- Insomnia import
- Create a repo wiki
- Document whole code
-
To improve
- Rename request and collection
- Import request settings in Postman import
- Better keymap help on bottom right
-
To add
- Command line usage (send requests, add new requests)
- keymap configuration (via a config file)
- Request body syntax highlighting
- Export a request to other code formats (curl, PHP, JS, Rust, ...)
- Pre and post-request script (javascript v8 engine)
-
To improve
- Auto-completion on env file variables
- Base URL on collection
Note
A documentation will soon be published in the wiki section
- Console Host
- Windows 11 (Pro)
- WSL2 Debian
- Windows 10 (Pro)
- Windows 8.1 (N)
- Ubuntu Desktop Terminal
- Ubuntu 17.10
- Pop!_OS 20.04
- (Arch, Manjaro) KDE Konsole
- (Arch, NixOS) Kitty
- Linux Mint
- (OpenSuse) Alacritty
- (Chrome OS) Crostini
(List from here)
Library | Version | Reason |
---|---|---|
request | 0.11.24 | Send requests |
ratatui | 0.26.1 | Terminal UI framework |
crossterm | 0.27.0 | Terminal Backend |
tui-big-text | 0.4.1 | Display big texts. Only used for displaying ATAC in the homepage. |
tui-tree-widget | 0.19.0 | Display tree-like lists. Used for displaying the collections. |
tui-textarea | 0.4.0 | Text area that handle a lot of features. Used for editing request body. |
throbber-widgets-tui | 0.4.1 | Display loading UI elements. Used when request is pending. |
serde & serde_json | 1.0.197 & 1.0.144 | Serialize & Deserialize application data into JSON files |
toml | 0.8.10 | Serialize & Deserialize application config files |
envfile | 0.2.1 | Deserialize application environment files |
My fork of postman_collection | 0.2.1 | Deserialize Postman collection files |
clap | 4.5.0 | Command Line Argument Parser |
tokio | 1.0.0 | Handle asynchronous requests |
strum | 0.26.1 | Enum facilities |
lazy_static | 1.4.0 | Allows for more flexible constants. Mainly used for accessing CLI arguments everywhere |
regex | 1.10.3 | Regex. Using for parsing requests URL |
The binary file size goes from ~4.5 MB to ~7 MB depending on the platform. I try to keep it the smallest I can.
The MIT license for this project can be seen here