Skip to content

tskulbru/kvile

Repository files navigation

Kvile Logo

Kvile

A fast, lightweight HTTP client focused on .http file support.
Built with Tauri, React, and Rust.

License Platform Built with Tauri

Kvile (Norwegian for "rest") is an open-source HTTP debugging application designed for working with .http files. It treats .http files as first-class citizens, making it ideal for developers who prefer plain-text, git-friendly API collections.


Features

  • Native .http file support - JetBrains, VS Code REST Client, and Kulala formats with auto-detection
  • Dual editor mode - Switch between source editing (Monaco) and GUI form editor
  • Environment variables - Multiple environments with variable substitution
  • Pre/post-request scripts - JavaScript scripting with assertions and variable extraction
  • Request history - SQLite-backed history with search
  • OAuth/OIDC support - Built-in authentication flows
  • cURL import - Convert cURL commands to .http format
  • Response comparison - Diff view for comparing responses
  • File watching - Auto-reload when files change externally
  • Keyboard-driven - Command palette and shortcuts for power users
  • Lightweight - ~10 MB bundle, ~40 MB memory, sub-second startup
  • Offline-first - No account required, no telemetry

Installation

Prerequisites

  • Node.js 18+
  • Rust (latest stable)
  • Platform-specific dependencies (see below)

Linux (Debian/Ubuntu)

sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
  libssl-dev libayatana-appindicator3-dev librsvg2-dev

Linux (Arch)

sudo pacman -S webkit2gtk-4.1 base-devel curl wget file openssl \
  libappindicator-gtk3 librsvg

macOS

xcode-select --install

Windows

Build from Source

# Clone the repository
git clone https://github.com/tskulbru/kvile.git
cd kvile

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Build for production
npm run tauri build

Wayland Users

If you experience display issues on Linux with Wayland:

WEBKIT_DISABLE_COMPOSITING_MODE=1 npm run tauri dev
# or
GDK_BACKEND=x11 npm run tauri dev

HTTP File Formats

Kvile supports multiple .http file specifications with automatic format detection.

JetBrains HTTP Client

### Get all users
GET https://api.example.com/users
Authorization: Bearer {{auth_token}}

### Create user
POST https://api.example.com/users
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john@example.com"
}

> {%
  client.global.set("user_id", response.body.id);
%}

VS Code REST Client

@baseUrl = https://api.example.com
@authToken = your-token-here

###
GET {{baseUrl}}/users
Authorization: Bearer {{authToken}}

Kulala Extensions

# @name CreateUser
# @prompt username Enter username

POST https://api.example.com/users
Content-Type: application/json

{"username": "{{username}}"}

Dynamic Variables

Variable Description
{{$uuid}} Generate UUID v4
{{$timestamp}} Current Unix timestamp
{{$randomInt}} Random integer
{{$datetime}} Current ISO datetime

Documentation

Contributing

Contributions are welcome! Please see our Development Guide for setup instructions.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Guidelines

  • Follow existing code style
  • Write tests for new functionality
  • Update documentation as needed
  • Keep commits atomic and well-described

License

MIT License - see LICENSE for details.

Acknowledgments


Kvile
Made with care for developers who value simplicity

About

A fast, lightweight HTTP client focused on .http file support

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages