Skip to content

frypan05/Volt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

volt

Release Platform

volt is a terminal-native API client inspired by lazygit and lazydocker. Run it inside any project directory and it automatically discovers your routes, lets you edit and fire requests, and renders the response — all without leaving the terminal.

Volt-Working.mp4

zed-editor zed

Features

Route discovery Volt scans your current working directory and automatically detects routes from:

Backend Frontend
axum next.js (App Router + Pages Router)
actix-web react-router
express / fastify vue-router
fastapi sveltekit
angular

Request editing

  • Edit headers, query params, auth, and request body per route
  • Supports JSON, plain text, and form-urlencoded body types
  • Base URL editor with history — navigate previous URLs with /
  • Per-route drafts are preserved across panes

Response viewing

  • Syntax-aware highlighting for JSON, HTML, and XML responses
  • JSON is automatically pretty-printed
  • Status code, latency, and response size shown on every request
  • Five view modes: Auto, JSON, HTML, Text, Raw — switch with /
  • Clipboard copy with y

Customization

  • Themes: Personalize Volt's look with built-in themes: Vesper (default), Dracula, Gruvbox, Tokyo-Night, Catppuccin, and Poimandres.
  • Interactive Selector: Run volt --themes to open an interactive menu and switch themes on the fly.
  • Dynamic UI: UI accents and the VOLT header automatically adapt to your chosen theme's primary color.
  • Version Check: Run volt --version or volt -V to check your current version.
  • Auto-Update: Run volt update to automatically check for and install the latest version from GitHub.

Broad Directory Protection

  • Volt automatically detects when it's opened in a high-level directory (like a User Home or Root) and pauses recursive scanning to prevent lag, guiding you to open a specific project instead.

Persistence

  • Custom routes saved to .volt_routes.json in your project root — routes, base URLs, and hit counts survive restarts
  • App config stored in .volt.toml

Workflow

  • Works in directories with routes defined — opens the TUI with routes and you can add custom ones immediately (any directory functionality coming soon)
  • Resizable panes via click-and-drag
  • Mouse support throughout

Installation

Linux / macOS

curl https://raw.githubusercontent.com/frypan05/Volt/main/scripts/install.sh | bash

The script installs to $HOME/.local/bin by default. Change it with the DIR variable:

curl https://raw.githubusercontent.com/frypan05/Volt/main/scripts/install.sh | DIR=/usr/local/bin bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/frypan05/Volt/main/scripts/install.ps1 | iex

Homebrew

brew tap frypan05/volt
brew install frypan05/volt/volt

After installing

Navigate to any project and run:

cd your-project
volt

Run in dev mode

cargo run

Volt scans the current working directory and lists detected routes. By default requests target http://localhost:3000; edit the base URL with u.

Keybindings

  • Tab: rotate focus across panes
  • Shift+Tab: reverse focus
  • j/k or arrows: move selection and switch tabs
  • 1-4: jump to Headers, Body, Params, Auth
  • i: edit the active tab buffer
  • u: edit base URL
  • r: execute current request
  • c: copy response body
  • Esc: leave insert mode
  • q: quit

Input formats

  • Headers: Header-Name: value
  • Params: key=value
  • Auth: raw Authorization header value, for example Bearer <token>
  • Body: JSON is validated automatically when the content starts with { or [.

Remote execution usage

Volt supports SSH-based remote execution for APIs that are only reachable from internal networks.

What remote execution does

  • Runs HTTP requests from a remote machine via SSH
  • Helps you reach VPC-only APIs, private staging systems, and Kubernetes services
  • Keeps the UI and request editing workflow the same

Remote setup in .volt.toml

base_url = "http://localhost:3000"

[remote.production]
host = "prod-bastion.example.com"
user = "ubuntu"
port = 22
identity = "~/.ssh/volt_prod"

[remote.staging]
host = "staging-internal.company.com"
user = "deploy"
port = 22
identity = "~/.ssh/staging_key"

Remote CLI usage

volt --remote-list
volt --remote production
volt --remote staging

If you select a remote profile, Volt uses the remote executor and shows it in the UI status bar.

Expected workflow

  1. Add remote profiles to .volt.toml
  2. Run volt --remote production
  3. Type an internal URL, such as http://internal-api.svc.cluster.local/users
  4. Press Enter to execute the request from the remote host
  5. Review the response in the TUI

Limitations

  • Route discovery uses fast heuristics instead of full AST parsing.
  • The insert mode is intentionally lightweight and optimized for request payload editing.
  • Large responses are rendered inline; future versions should add paging and streaming.

In Queue Features:

  • Graph QL support
  • Graph based route discovery

About

Terminal Based Binary for API Testing/Orchestration

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages