Skip to content
/ vea Public

A terminal-inspired HTTP client for developers who prefer keyboard-first workflows

License

Notifications You must be signed in to change notification settings

maful/vea

Repository files navigation

VEA

Tauri React TypeScript Rust License

A terminal-inspired HTTP client for developers who prefer keyboard-first workflows

VEA is a cross-platform desktop HTTP client built with Tauri, React, and TypeScript. Designed for developers who want a fast, keyboard-centric API testing experience with a sleek terminal aesthetic.

About

VEA (Visual API Explorer) is a modern HTTP client that brings the power of API testing to your desktop with a terminal-inspired interface. Unlike browser-based alternatives, VEA runs natively on your machine, providing lightning-fast performance and seamless integration with your development workflow.

Why VEA?

  • Keyboard-first design - Navigate and execute requests without touching your mouse
  • Terminal aesthetic - Dark theme with orange accents for a familiar developer experience
  • Local data persistence - Your requests are stored locally, no cloud required
  • Cross-platform - Works on Windows, macOS, and Linux with a single codebase
  • Lightweight - Built on Tauri for minimal resource usage

Features

HTTP Request Management

  • Support for all major HTTP methods: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
  • Create and save custom requests with names, URLs, headers, and bodies
  • Organize and manage your saved requests with a persistent SQLite database

Terminal-Inspired UI

  • Dark theme with signature orange accent colors (#e6762e)
  • Three-panel layout for efficient workflow:
    • Left: Request list sidebar with search functionality
    • Center: Request builder for creating and editing requests
    • Right: Response viewer with JSON syntax highlighting
  • Monospace fonts throughout for consistency

JSON Request Body Editor

  • Advanced CodeMirror-based JSON editor with syntax highlighting
  • One-click JSON formatting button for clean, consistent indentation
  • Real-time JSON validation with inline error reporting
  • Visual status indicators (✓ valid, ✗ invalid) for immediate feedback
  • Custom 2-space indentation with proper Tab key support

Keyboard Shortcuts

VEA is designed to be fully navigable via keyboard:

Shortcut Action
Ctrl/Cmd + N Create new request
Ctrl/Cmd + S Save current request
Ctrl/Cmd + Enter Send request
Ctrl/Cmd + Shift + F Format JSON body
/ Toggle search
D Delete selected request
↑/↓ Navigate through requests

Response Viewing

  • JSON syntax highlighting for easy reading
  • Response metrics: time taken, response size
  • Full header and body display
  • Color-coded status indicators

Response History

  • Automatic response saving when executing saved requests
  • View up to 5 most recent responses per request
  • Click history icon (clock) to view past responses
  • Compare current response with historical responses
  • Save response to file (JSON/TXT)
  • Copy response body to clipboard
  • Individual history entry deletion
  • Relative timestamps ("5m ago", "2h ago")
  • 10MB size limit per response (larger responses are skipped)

Screenshots

Installation

Prerequisites

  • Node.js 18+ or Bun for package management
  • Rust toolchain for Tauri backend

Setup

# Clone the repository
git clone https://github.com/maful/vea.git
cd vea

# Install dependencies
bun install

# Run in development mode
bun run tauri dev

# Build for production
bun run tauri build

The production build will be available in the src-tauri/target/release/bundle/ directory.

Usage

Basic Workflow

  1. Create a Request: Press Ctrl/Cmd + N or click "New Request"
  2. Enter URL: Type your API endpoint in the URL field
  3. Set Method: Select HTTP method (GET, POST, etc.)
  4. Add Headers/Body: Configure request parameters as needed
  5. Save: Press Ctrl/Cmd + S to save for later
  6. Send: Press Ctrl/Cmd + Enter to execute the request
  7. View Response: Results appear in the right panel with metrics

Keyboard Shortcuts Reference

VEA supports both Ctrl (Windows/Linux) and Cmd (macOS) modifiers:

Ctrl/Cmd + N         - New request
Ctrl/Cmd + S         - Save request
Ctrl/Cmd + Enter     - Send request
Ctrl/Cmd + Shift + F - Format JSON body
/                    - Toggle search focus
D                    - Delete selected request
Arrow Up/Down        - Navigate request list
Escape               - Close panels/modals

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

Code Style

  • TypeScript: Strict mode enabled, follow existing patterns
  • Rust: Use cargo fmt for formatting, cargo clippy for linting
  • React: Functional components with hooks only
  • Commits: Clear, descriptive commit messages

Roadmap

Planned Features

  • JSON Formatting - Prettify request body with syntax validation
  • Multipart Form-Data - Support for file uploads and complex forms
  • URL Params Builder - Visual query parameter editor
  • Environment Variables - Dynamic variable substitution
  • Request Collections - Organize requests into folders
  • Import/Export - Postman and Insomnia compatibility
  • Response History - Track and replay previous responses
  • GraphQL Support - Native GraphQL query editor
  • WebSocket Testing - Real-time WebSocket client
  • Custom Themes - User-customizable color schemes
  • Plugin System - Extensible architecture for community plugins

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built with Tauri - A blazing fast, frontend-agnostic toolkit for building apps
  • UI inspired by terminal-based HTTP clients like httpie
  • Icons and design influenced by modern developer tools

Made with ❤️ by the VEA contributors

About

A terminal-inspired HTTP client for developers who prefer keyboard-first workflows

Resources

License

Stars

Watchers

Forks

Releases

No releases published