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 .env files 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 above

Usage

Sending a request

  1. Launch Cartero and click New Request in the sidebar.
  2. Choose the HTTP method from the dropdown and type the URL into the address bar.
  3. Add headers, query parameters, or a request body using the tabs below the URL bar.
  4. 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+json

Using 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

FeatureCarteroPostmanInsomniaBruno
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.