Skip to content

Harry-kp/mercury

Mercury

Mercury

API Testing for Purists.
Instant startup. 60fps UI. $0 forever.

Documentation β€’ Download β€’ Roadmap β€’ Philosophy β€’ Contributing

Release Homebrew Cask Build Status License Platform

GitHub stars Issues Pull Requests Discussions

Mercury Screenshot

Why Mercury?

Postman Insomnia Mercury
Startup 3-5 sec 2-4 sec <300ms
Frame Rate Sluggish Sluggish 60fps native
Input Lag 50-100ms 30-50ms <16ms
Binary Size ~500MB ~400MB 6MB
Price $14-25/mo $5-18/mo Free forever
Scrolling Janky Okay Buttery smooth

Mercury uses ~100MB RAM to render at 60fps with native GPU acceleration. Electron apps use 500MB+ to feel like a slow website.


Philosophy

"Build half a product, not a half-assed product." β€” 37signals

Mercury is built on principles, not features:

  • ⚑ Native Rust β€” Real performance, not wrapped web pages
  • πŸ“ Files, not databases β€” Your requests are just files. Grep them. Git them.
  • πŸ”’ Truly local β€” We don't have servers. Your secrets stay yours.
  • ⌨️ Keyboard-first β€” Your hands never leave the keyboard
  • 🚫 No bloat β€” No AI, no collaboration, no features you'll never use

Installation

🍺 macOS (Homebrew) - Recommended

brew install --cask harry-kp/tap/mercury

Then launch from Applications or run mercury in terminal.


⚑ Alternative: Shell Installer

macOS / Linux:

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Harry-kp/mercury/releases/latest/download/mercury-installer.sh | sh

Windows (PowerShell):

irm https://github.com/Harry-kp/mercury/releases/latest/download/mercury-installer.ps1 | iex

Then launch:

mercury

πŸ’‘ If you get "command not found", restart your terminal or run source ~/.zshrc


πŸ–₯️ Want it in your Applications folder?

The installer puts mercury in ~/.cargo/bin. If you prefer launching from Spotlight/Start Menu:

macOS: Add to Applications + Dock
# One-liner: creates Mercury.app you can add to Dock
mkdir -p /Applications/Mercury.app/Contents/MacOS && \
cp ~/.cargo/bin/mercury /Applications/Mercury.app/Contents/MacOS/ && \
cat > /Applications/Mercury.app/Contents/Info.plist << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>mercury</string>
    <key>CFBundleName</key>
    <string>Mercury</string>
    <key>CFBundleIdentifier</key>
    <string>com.mercury.app</string>
</dict>
</plist>
EOF

Now search "Mercury" in Spotlight (⌘ Space) and drag to Dock!

Windows: Pin to Start Menu
  1. Open File Explorer β†’ %USERPROFILE%\.cargo\bin\
  2. Right-click mercury.exe β†’ Create shortcut
  3. Right-click the shortcut β†’ Pin to Start
Linux: Add to app launcher
cat > ~/.local/share/applications/mercury.desktop << 'EOF'
[Desktop Entry]
Name=Mercury
Exec=$HOME/.cargo/bin/mercury
Type=Application
Categories=Development;
EOF

πŸ”§ Troubleshooting

🍎 macOS: "developer cannot be verified" error
  1. Run mercury (it will fail)
  2. System Settings β†’ Privacy & Security β†’ Click "Allow Anyway"
  3. Run mercury again

Or run: xattr -d com.apple.quarantine ~/.cargo/bin/mercury

πŸͺŸ Windows: "Windows protected your PC"

Click "More info" β†’ "Run anyway"

πŸ“¦ Manual Download

πŸ“¦ Download from Releases β€” macOS (Intel/ARM), Windows, Linux

# Extract and run
tar -xf mercury-*.tar.xz && chmod +x mercury && ./mercury
πŸ› οΈ Build from Source
git clone https://github.com/Harry-kp/mercury.git
cd mercury
cargo build --release
./target/release/mercury

Shortcuts

Shortcut Action
⌘ Enter Send request
⌘ S Save request
⌘ K Search
⌘ N New request
⌘ Shift F Focus mode
⌘ H History
Esc Cancel request
? All shortcuts

File Format

Your requests are stored as JSON files. Version control friendly. No lock-in.

{
  "method": "GET",
  "url": "https://api.example.com/users",
  "headers": {},
  "body": ""
}
{
  "method": "POST",
  "url": "https://api.example.com/users",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{token}}"
  },
  "body": "{\"name\": \"John Doe\", \"email\": \"john@example.com\"}"
}

Variables like {{token}} are loaded from .env files in your workspace.


Features

  • Live File Sync β€” Edit in VS Code, updates instantly. Two-way sync.
  • Auto-Save β€” Changes are persisted immediately. Never lose work.
  • Collections β€” Organize requests in folders
  • Environments β€” .env file support with {{variable}} syntax
  • History β€” Timeline of all requests with restore
  • Focus Mode β€” Distraction-free editing
  • cURL Import β€” Paste cURL commands directly
  • Collection Import β€” Import from Postman or Insomnia
  • Request Cancellation β€” Stop runaway requests instantly
  • Syntax Highlighting β€” JSON responses beautifully formatted
  • Dark Mode β€” Easy on the eyes, built for late nights
  • Automatic Cookies β€” Auth flows work seamlessly

Defaults

Mercury uses sensible defaults so you can focus on your API, not configuration:

Setting Default Behavior
Timeout 30 seconds Requests fail after 30s of no response
Redirects Followed HTTP redirects are followed automatically (up to 10)

What Mercury is NOT

We intentionally don't build:

  • ❌ Cloud sync
  • ❌ Team collaboration
  • ❌ AI assistants
  • ❌ Plugins/extensions
  • ❌ User accounts
  • ❌ Analytics/telemetry

These aren't missing features. They're features we chose not to build.


Contributing

Mercury is open source. PRs welcome.

# Development
cargo run

# Tests
cargo test

# Release build
cargo build --release

License

MIT License β€” do whatever you want.


Built with obsessive minimalism.
@Harry-kp

Sponsor this project

Packages

 
 
 

Contributors