5
Home
Pavel Baksy edited this page 2026-01-13 17:42:28 +01:00

Roster Wiki

Welcome to the Roster documentation! Roster is a modern HTTP client for GNOME, built with GTK 4 and libadwaita.

What is Roster?

Roster is a native GNOME application for testing and debugging HTTP APIs with support for:

  • HTTP requests (GET, POST, PUT, DELETE) with custom headers and bodies
  • Project organization with environment variables
  • Secure credential storage using GNOME Keyring
  • JavaScript preprocessing and postprocessing scripts
  • Request history and export to cURL

Getting Started

Features

Reference

Development

Key Features

Secure Credential Storage

Store API keys, tokens, and passwords securely in GNOME Keyring with one-click encryption:

Variables:
  base_url     (unlocked)  → Stored in JSON (plain text)
  api_key      (locked)    → Stored in GNOME Keyring (encrypted)

Learn more: Sensitive-Variables

Powerful Automation

Use JavaScript preprocessing and postprocessing scripts to:

  • Extract authentication tokens from responses
  • Add dynamic headers (timestamps, signatures)
  • Chain requests together
  • Validate responses
// Postprocessing: Extract token from login response
const data = JSON.parse(response.body);
roster.setVariable('auth_token', data.access_token);
console.log('Logged in successfully!');

Learn more: Scripts

Multi-Environment Support

Manage multiple environments with different variable values:

Variable Production Development
base_url api.example.com localhost:3000
api_key prod-key-*** dev-key-***

Switch environments with one click - all variables update automatically.

Learn more: Variables

Platform

Roster is built specifically for the GNOME desktop using:

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

License

Roster is free and open-source software licensed under GPL-3.0-or-later.

Support

Next Steps

New to Roster? Start with Installation and Getting-Started

Need to store API keys? Check out Sensitive-Variables

Want to automate workflows? Learn about Scripts