Relay

Relay

A keyboard-first API client that stores requests and environments as plain files, and exposes its workspace over MCP so agents can browse, send, and create requests with vault access.

Category
Visit Server

README

Relay

A keyboard-first API client where everything you build is a plain file on disk.

Relay keeps requests, routines, and environments as readable YAML in a folder you own. No account, no cloud, no database to export from. Open the workspace in your editor, review it in a pull request, sync it however you sync files, or hand it to an agent.

<picture> <source media="(prefers-color-scheme: dark)" srcset="apps/desktop/promo/relay-request-editor.png"> <img src="apps/desktop/promo/relay-request-editor-light.png" alt="The Relay request editor: a GET request with query params above a JSON response"> </picture>

What's inside

Requests. Params, headers, body, and auth (basic, bearer, API key, OAuth 2.0) in one editor, with a cookie jar and an auto-saved history of every send. Paste a curl command to create a request; copy any request back out as curl. GraphQL bodies get a schema-aware editor fed by live introspection.

Routines. Chain requests into a flow on an auto-layout canvas. Extract values from responses, branch on conditions, assert on results, wait, or pause for a human pick or entry. Run the whole flow, run to a step, or re-run a single step against cached data, and refactor with find and replace across the routine.

The {{reference}} grammar. One syntax reuses any value: vault keys, step outputs, extracted variables, and routine inputs, all resolved at send time. Cmd-click a reference anywhere to peek at what it resolves to.

Environments and secrets. A vault holds one column of values per environment. Mark a value as secret and it moves to the OS keychain; secrets resolve inside the Rust core at send time and never reach the interface, reports, or exports.

Webhook listener. Point any service at a generated URL and inspect what arrives, headers and body, without opening a port. Save a capture as a request to replay it.

MCP, both ways. Connect Relay to MCP servers, or serve your workspace over MCP so agents can browse, send, and create requests with your vaults in place. Every workspace also carries generated llms.txt and CLAUDE.md guides, so agents understand the file formats without being told.

Import and export. Import Postman collections, OpenAPI 3 documents, Bruno collections, and curl. Export Postman collections, a vault as .env, or any request or routine as a typed TypeScript or JavaScript client.

Undo for everything. File mutations are journaled with byte-exact snapshots, undo works app-wide, and deletes go through the OS trash.

Network control. Per-workspace proxy, mTLS client certificates, extra CA certificates, and custom DNS, kept machine-local and out of the shareable files.

And throughout: a command palette that teaches every shortcut, in-app guides on each feature's first open, an interface in English, French, or German, and on-device AI naming on Apple Silicon that never sends a byte anywhere.

The workspace is files

# ~/Relay/requests/Create issue.relay.yaml
schemaVersion: 1
id: 8f3c2b10-6a44-4e2f-9c1a-2d7e5b0f1a23
name: Create issue
request:
  method: POST
  url: https://api.github.com/repos/{{owner}}/{{repo}}/issues
  headers:
    - name: Authorization
      value: Bearer {{githubToken}}
      enabled: true
  body:
    type: json
    value:
      text: |-
        { "title": "Found a bug" }

File names follow the names you see in the app. Relay watches for edits made outside the app and reloads them, so the files stay the source of truth: version them, diff them, or generate them.

Install

Download the latest build from the releases page. On first launch Relay creates a workspace at ~/Relay with a few starter files. macOS may ask you to confirm the first open, since the app comes from outside the App Store.

Documentation

The full manual lives in apps/docs and is published as the documentation site: getting started, core concepts, and a page per feature, plus reference material for the {{reference}} grammar, the on-disk file formats, keyboard shortcuts, and the MCP tools.

Development

apps/desktop    the app: React frontend (src/) and Rust core (src-tauri/)
apps/docs       the documentation site (Astro + MDX)
docs/           architecture and design notes

Prerequisites: Node 20+, pnpm, Rust stable, and the Tauri prerequisites for your platform.

pnpm install
cd apps/desktop && pnpm tauri dev    # builds the Rust core and opens the app

Before sending a change:

pnpm typecheck && pnpm lint && pnpm test     # tsc + astro check, biome, vitest
cd apps/desktop/src-tauri
cargo clippy --all-targets -- -D warnings
cargo test                                   # also regenerates the IPC bindings

Start with docs/ARCHITECTURE.md for how the pieces fit and docs/CONTRIBUTING.md for the workflow. The project's cross-cutting conventions live in CLAUDE.md; they apply to human and AI contributors alike.

Stack

Layer Tech
Runtime Tauri 2, a Rust core behind the OS webview
Frontend React 19, TypeScript, Tailwind CSS 4, Vite
HTTP engine Rust reqwest with full wire timings
Storage Plain YAML files, SQLite for response history
IPC Generated end-to-end types via tauri-specta

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured