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)
- Beautiful GNOME-native UI
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.
Documentation
Complete documentation is available in the Wiki:
- Home - Overview and quick links
- Installation - Build and install instructions
- Getting Started - Your first HTTP request
- Projects and Environments - Organize your work
- Variables - Use variables in requests
- Sensitive Variables - Secure credential storage with GNOME Keyring
- Scripts - Automate workflows with JavaScript
- API Reference - Complete JavaScript API
- Keyboard Shortcuts - Speed up your workflow
- FAQ - Frequently asked questions
Key Features
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
Multi-Environment Support
Manage multiple environments (development, staging, production) with different variable values. Switch environments with one click.
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
- Issues: git.bugsy.cz/beval/roster/issues
- Wiki: git.bugsy.cz/beval/roster/wiki
- Source: git.bugsy.cz/beval/roster
Contributing
Contributions are welcome! Please open an issue or pull request.