Roster

A modern HTTP client for GNOME, built with GTK 4 and libadwaita.

Features

  • Send HTTP requests (GET, POST, PUT, DELETE)
  • Configure custom headers and request bodies
  • View response headers and bodies with syntax highlighting
  • Track request history with persistence
  • Organize requests into projects
  • Environment variables with secure credential storage
  • JavaScript preprocessing and postprocessing scripts
  • Export requests (cURL and more)
  • GNOME-native UI

Screenshots

Main Interface

Main Interface

Request History

Request History

Environment Variables

Environment Variables

Quick Start

Installation

Build from source:

git clone https://git.bugsy.cz/beval/roster.git
cd roster
meson setup builddir
meson compile -C builddir
sudo meson install -C builddir

Flatpak:

flatpak-builder --user --install --force-clean build-dir cz.bugsy.roster.json
flatpak run cz.bugsy.roster

See the Installation Guide for detailed instructions.

Usage

Launch Roster from your application menu or run roster from the command line.

See the Getting Started Guide for a walkthrough.

Complete documentation is available in the Wiki:

Key Features

Multi-Environment Support

Manage multiple environments (development, staging, production) with different variable values. Switch environments with one click.

Learn more about Variables

Secure Credential Storage

Store API keys, passwords, and tokens securely in GNOME Keyring with one-click encryption. Regular variables are stored in JSON, while sensitive variables are encrypted.

Learn more about Sensitive Variables

JavaScript Automation

Use preprocessing and postprocessing scripts to:

  • Extract authentication tokens from responses
  • Add dynamic headers (timestamps, signatures)
  • Chain requests together
  • Validate responses

Learn more about Scripts

Dependencies

Runtime

  • GTK 4
  • libadwaita 1
  • Python 3
  • libsoup3 (provided by GNOME Platform)
  • libsecret (provided by GNOME Platform)
  • GJS (GNOME JavaScript)

Build

  • Meson (>= 1.0.0)
  • Ninja
  • pkg-config
  • gettext

See the Installation Guide for platform-specific dependencies.

Platform

Roster is built specifically for the GNOME desktop using native technologies:

  • GTK 4 - Modern UI toolkit
  • libadwaita - GNOME design patterns
  • libsoup3 - HTTP networking
  • libsecret - Secure credential storage
  • GJS - JavaScript runtime for scripts

License

GPL-3.0-or-later

Support

Contributing

Contributions are welcome! Please open an issue or pull request.

Description
HTTP client for GNOME
Readme 1.6 MiB
Languages
Python 98.6%
Meson 1.4%