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
Quick Links
Getting Started
- Installation - How to build and install Roster
- Getting-Started - Your first HTTP request
- Projects-and-Environments - Organize your work
Features
- Variables - Use variables in requests
- Sensitive-Variables - Secure storage with GNOME Keyring
- Scripts - Preprocessing and postprocessing automation
- Export - Export requests to other tools
- History - Track and replay requests
Reference
- API-Reference - Complete JavaScript API documentation
- Keyboard-Shortcuts - Speed up your workflow
- FAQ - Frequently asked questions
Development
- Contributing - How to contribute to Roster
- Translation - Help translate Roster to your language
- Development - Developer documentation
- Architecture - Technical overview
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
- Issues: https://git.bugsy.cz/beval/roster/issues
- Source: https://git.bugsy.cz/beval/roster
- Wiki: You are here!
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