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.
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
- 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
- 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
- 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
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 |
- JSON syntax highlighting for easy reading
- Response metrics: time taken, response size
- Full header and body display
- Color-coded status indicators
- 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)
- Node.js 18+ or Bun for package management
- Rust toolchain for Tauri backend
# 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 buildThe production build will be available in the src-tauri/target/release/bundle/ directory.
- Create a Request: Press
Ctrl/Cmd + Nor click "New Request" - Enter URL: Type your API endpoint in the URL field
- Set Method: Select HTTP method (GET, POST, etc.)
- Add Headers/Body: Configure request parameters as needed
- Save: Press
Ctrl/Cmd + Sto save for later - Send: Press
Ctrl/Cmd + Enterto execute the request - View Response: Results appear in the right panel with metrics
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
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- TypeScript: Strict mode enabled, follow existing patterns
- Rust: Use
cargo fmtfor formatting,cargo clippyfor linting - React: Functional components with hooks only
- Commits: Clear, descriptive commit messages
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- 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