Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Relay

One workspace. Every model. Never stop coding.

Relay is a desktop-native, AI-first coding environment that orchestrates browser-based LLMs (ChatGPT, Kimi, Qwen, Gemini, Claude, DeepSeek) without API keys — and when one model hits a rate limit, the Relay Handoff Protocol compacts the session into a portable Relay Packet and hands control to the next model.

Specs: Relay_PRD.md · Relay_Complete_Documentation.md

Features

  • AI Dock — every model embedded side-by-side in one window. Log in once; cookies persist across restarts. Provider pages have zero access to your machine (no IPC capability).
  • Relay Handoff Protocol — rate-limit detection (multi-signal, passive) suggests relaying; the session context is compacted into a Relay Packet and pre-filled into the next model's input for you to review and send.
  • Built-in browser preview — a first-class tab in the editor with mobile / tablet / desktop viewports, zoom, live reload on save, and an embedded live server for HTML projects.
  • Real editor — Monaco with tabs, dirty tracking, diff preview before applying AI edits, markdown preview, project-wide search (Ctrl+Shift+F).
  • PTY terminal — real shell via portable-pty + xterm.js with AI-suggested commands surfaced as one-click Run buttons (always user-confirmed).
  • File bridge — the AI can propose file writes/edits; you review them in a diff and apply with one click. It never touches a file you didn't approve.
  • Command palette (Ctrl+K), session restore, recent projects.

Download

Installers for Windows, macOS and Linux are attached to Releases:

  • Windows — run Relay_*_x64-setup.exe (installs with Start Menu + desktop icon, no admin needed) or the .msi for enterprise deployment. A portable relay.exe is also available.
  • macOS — open the .dmg and drag Relay to Applications.
  • Linux — .AppImage (run anywhere) or .deb.

Build from source

Prerequisites: Node ≥ 20, Rust toolchain (rustup), and the platform webview prereqs from Tauri v2 docs.

git clone https://github.com/Rohithdgrr/RELAY-PROJECT.git
cd RELAY-PROJECT
npm install
npm run tauri dev     # run the full desktop app in dev mode
npm run tauri build   # produce a release binary in src-tauri/target/release/

Frontend-only mode (Tauri invoke calls will fail in a plain browser):

npm run dev

Project layout

src-tauri/src/
  lib.rs        Tauri builder, command registry, provider webview launcher
  types.rs      PRD §9.1 data models (RelayPacket, SessionState, …)
  relay.rs      Relay Engine: session store + handoff orchestration
  terminal.rs   PTY manager (portable-pty) with scrollback capture
  fs.rs         File bridge: read/write, read-only patterns, backups, atomic writes
  dock.rs       Embedded provider webviews (multiwebview), scan + inject
  preview.rs    Embedded browser preview (child webview)
  live_server.rs  Static live server for HTML preview
src-tauri/preloads/relay-bridge.js   provider bridge: scan, fill, rate-limit, rolling buffer
src-tauri/src/selectors.rs           updateable selector registry (bundled defaults)
src/
  relay/        types, provider registry, zustand store
  components/   sidebar, editor, terminal, AI dock, browser preview, status bar

Implementation decisions (deviations from the docs)

  • PTY: docs listed node-pty; v0.1 uses Rust portable-pty — the idiomatic Tauri choice, no Node sidecar. xterm.js on the frontend is unchanged. Recorded in both docs' changelogs.
  • Compliance stance (Complete Docs §8.5): Relay is assisted-only. The preload only observes the page; it never sends messages and never evades bot detection. Provider webviews have no Tauri capability, so a compromised provider page cannot reach IPC — enforced by configuration.
  • Selector registry: provider DOM is volatile, so selectors ship in ~/.relay/selectors.json (written from bundled defaults on first run). Edit it when a provider reworks its markup and switch provider tabs — no app rebuild needed. A malformed file falls back to bundled defaults.

Contributing

Issues and PRs are welcome! For big changes, open an issue first to discuss the approach. Run npm run lint && npm run typecheck before submitting.

License

MIT — free to use, modify, and ship.

About

Relay is a desktop-native, AI-first coding environment that orchestrates browser-based LLMs (ChatGPT, Kimi, Qwen, Gemini) without API keys

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages