Cartero
A native GTK4 HTTP client for Linux that lets you build and send requests, inspect responses, and manage API collections without a cloud subscription.
Cartero is a native HTTP client for Linux built with Rust and GTK4, designed
as a privacy-respecting alternative to cloud-dependent tools like Postman and
Insomnia. It has no mandatory account, no AI integration, no telemetry, and no
subscription — just a fast, lightweight native application for crafting HTTP
requests and inspecting responses. Requests are persisted as plain text files
that work naturally with version control, making it practical for teams who want
to share API collections through Git.
Features
- Full HTTP method support — GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, and more
- Request body editor — set the body as JSON, URL-encoded form data, multipart form, or raw text, with syntax highlighting
- Headers and query parameters — manage request headers and URL parameters in a structured table view
- Response inspector — view response status, headers, and body; body is
syntax-highlighted based on the
Content-Type - Plain text collections — requests are stored as plain text files; track and share them with Git or any version control system
- Environment variables — define
.envfiles with key-value pairs reusable across requests; sensitive values can be revealed on demand - Duplicate requests — clone any request as a starting point for a new one
- TLS validation toggle — disable certificate validation for development against self-signed certs
- Window theming — accent colour and tinting follow your system theme
- No cloud, no account — fully offline; all data stays on your machine
Installation
Flatpak (all Linux distributions)
flatpak install flathub es.danirod.Cartero
AppImage
Download the AppImage for your architecture from the releases page and make it executable:
chmod +x Cartero-*.AppImage
./Cartero-*.AppImage
Arch Linux (AUR)
yay -S cartero
# or
paru -S cartero
Debian / Ubuntu
Cartero is not yet packaged for Debian/Ubuntu. Use the Flatpak or AppImage above, or build from source:
# Install build dependencies
sudo apt install meson blueprint-compiler libgtk-4-dev \
libadwaita-1-dev libsoup-3.0-dev pkg-config curl
# Install Rust via rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# Clone and build
git clone https://github.com/danirod/cartero
cd cartero
meson setup build
ninja -C build
sudo ninja -C build install
Fedora
Use the Flatpak or AppImage above, or build from source:
sudo dnf install meson blueprint-compiler gtk4-devel \
libadwaita-devel libsoup3-devel pkg-config
# Then follow the clone and build steps aboveUsage
Sending a request
- Launch Cartero and click New Request in the sidebar.
- Choose the HTTP method from the dropdown and type the URL into the address bar.
- Add headers, query parameters, or a request body using the tabs below the URL bar.
- Click Send. The response status, headers, and body appear in the right panel.
# Example: GET request to a public API
# URL: https://api.github.com/repos/danirod/cartero
# Header: Accept: application/vnd.github+jsonUsing environment variables
Create a .env file in the same directory as your request files:
# .env
BASE_URL=https://api.example.com
API_KEY=your-secret-key
Reference variables in the URL or header values using {{VARIABLE_NAME}}:
# URL field: {{BASE_URL}}/users
# Header: Authorization: Bearer {{API_KEY}}Organising requests into collections
Cartero stores each request as a plain text file. Organise them in directories like any other project:
my-api/
├── .env
├── auth/
│ ├── login.cartero
│ └── refresh.cartero
└── users/
├── list.cartero
├── create.cartero
└── delete.cartero
Commit the directory to Git to share the collection with your team. Add .env
to .gitignore to keep secrets out of version control.
Cartero vs other API clients
| Feature | Cartero | Postman | Insomnia | Bruno |
|---|---|---|---|---|
| Native GTK4 | ✅ | ❌ (Electron) | ❌ (Electron) | ❌ (Electron) |
| No account required | ✅ | ❌ | ❌ | ✅ |
| Plain text files | ✅ | ❌ (proprietary) | ❌ (proprietary) | ✅ |
| Environment variables | ✅ | ✅ | ✅ | ✅ |
| Free and open source | ✅ | ❌ | ✅ | ✅ |
| Flatpak | ✅ | ❌ | ❌ | ❌ |
Cartero and Bruno share a philosophy of plain text, Git-friendly request files with no mandatory cloud. Cartero's advantage is its fully native GTK4 UI with no Electron overhead, making it lighter and better integrated into the GNOME desktop. Bruno is the better-established option with a larger feature set; Cartero is the right pick if you prioritise a native Linux experience.