Ein Workspace pro Projekt. Alles drin.
Workspaces sind keine Tabs. Es ist der vollständige Arbeitskontext eines Projekts — sein Pfad, sein Theme, seine Shells, sein Pipeline-Watcher, sein Editor und seine offenen Ports. Du wechselst nicht mehr zwischen Tools. Du wechselst zwischen Projekten.
Pin den Ordner — der Workspace kennt den Rest.
Ein Workspace pro Projekt: eigener Pfad, eigenes Theme, eigene Shell, eigenes Pane-Layout, eigener Pipeline-Watcher. Rechtsklick auf den Workspace im Icon-Rail → „Choose Folder…" verankert ihn. Beim Restart steht alles wieder genauso da.
- Pinned Root-Directory pro Workspace — neue Panes starten dort, kein manuelles `cd` mehr
- Per-Workspace Theme, Font, Prompt-Stil und Background-Opacity
- Per-Workspace Shell (zsh, bash, fish) und Shell-Modus (Relay-Prompt oder dein eigenes zshrc)
- Blueprints: ganze Workspace-Konfigurationen als Templates speichern und mit einem Klick wiederherstellen
- Persistente UUIDs — beim App-Restart sind Workspace, Panes, Tabs, Editor-Files und Browser-Cookies wieder genau dort, wo du sie verlassen hast
- Pro Fenster eigene SessionManager — ⌘N öffnet ein frisches Set Workspaces, keine Klone
Nicht nur Farben. Ein ganzes visuelles System.
Andere Terminals tauschen Farbpaletten. Relay tauscht das gesamte Design: Typografie, Border-Radius, Abstände, Glassmorphism, Scanlines, Schriften — alles auf einmal. Midnight fühlt sich an wie eine andere App als Obsidian. Weil es eine ist.
- 93 Design-Tokens pro Theme
- 11 moderne Themes (Studio · Paper · Mocha · Gruvbox · Nord · High Contrast · …)
- 8 historische Retro-Themes (Xerox Alto bis Game Boy)
- Live-Vorschau beim Wechsel
- Animierter Theme-Übergang (0,35 s)
Dein Workspace. Dein Layout.
Ab zwei Tabs kann der aktive Workspace in Panes aufgeteilt werden. Das Layout ist pro Workspace und bleibt zwischen Sessions erhalten.
- 9 Layouts: von Single bis 2×2-Raster
- Fokus-Modus: 1 großer + Sekundär-Pane gedimmt
- Pro-Workspace-Konfiguration
- Layouts werden gespeichert
12 Stile. Einer davon ist deiner.
Vom minimalistischen Pure bis zum informationsdichten Powerlevel10k — alle Prompt-Stile sind in Relay eingebaut und live konfigurierbar. Keine manuelle .zshrc-Bearbeitung nötig.
- Relay Compact, Robbyrussell, Minimal, Lambda, Powerblocks (Built-in)
- Agnoster, Spaceship, Powerlevel10k, Starship (extern via .zshrc)
- Per-Workspace-Stil — jeder Workspace kann einen eigenen Prompt nutzen
- .zshrc wird automatisch generiert
CI/CD live im Terminal.
Nach jedem Push siehst du sofort, was deine Pipeline macht — direkt in der Sidebar. Kein Tab-Wechsel, kein Browser öffnen.
- GitHub Actions · GitLab CI · CircleCI
- Jobs und Steps in Echtzeit — mit Live-Status
- Logs direkt im Popover abrufbar
- Fehlgeschlagene Jobs mit einem Klick neu starten
Alles im Blick — ohne Fokus zu verlieren.
Workspaces, Pane-Topologie und Layout-Picker in einem Panel. Kein Modal, kein Popover — ein Klick reicht.
- Workspaces-Liste mit Activity-Indikator pro laufendem Befehl
- Pane-Mini-Grid spiegelt das echte Layout — Drag-to-Swap inklusive
- Layout-Picker als Dropdown im Header — 9 Layouts als Topology-Thumbnails
- Pro Pane: laufender Befehl, Exit-Code-Badge, Shell-Mode-Toggle
- Eingeklappte Sidebar zeigt Workspace-Initialen statt anonymer Punkte
Ein echter Editor, direkt neben dem Terminal.
Jede Pane lässt sich in einen Code-Editor umschalten — Tree-sitter-Highlighting für 40+ Sprachen, mehrere Tabs, Cursor-Memory, Themes und alles, was man von einem ordentlichen Editor erwartet. Kein Tool-Switch mehr.
- Tree-sitter Syntax-Highlighting für Swift, TS/JS, Rust, Python, Go, Ruby und mehr — exakt wie in einer richtigen IDE
- Multi-Tab mit Cursor-Memory: ⌘W schließt, ⌘1–9 wechselt, Position bleibt pro Datei erhalten
- Sechs kuratierte Themes (Relay Dark/Light, Solarized, Nord, Monokai, GitHub Light)
- Datei-Tree mit Kontextmenü: New File, Rename, Move to Trash, Duplicate, Reveal in Finder, Copy Path
- Autocomplete für Buffer-Wörter und Sprach-Keywords, automatisch ausgelöst während des Tippens
- Drag & Drop aus Finder, Recent-Files-Menü, Multi-Cursor, Find & Replace, Code-Folding, Minimap
Sidebar weiß, in welchem Projekt du bist.
Sobald du in ein Git-Repo wechselst, scannt Relay alle Manifest-Dateien und zeigt jeden erkannten Stack als eigene Karte — mit klickbaren Scripts und Top-Dependencies. Monorepos werden korrekt aufgesplittet.
- Erkennt Node, Rust, Python, Go, Swift, Ruby, Docker, Hugo, Jekyll, Zola, mdBook und Supabase
- Framework-Hinweise: Next.js, Astro, FastAPI, Rails, SwiftPM, Tauri, Electron — präzise statt nur „Node"
- Multi-Stack im Monorepo: frontend/package.json + backend/Cargo.toml als getrennte Karten
- Scripts klickbar — `cd frontend && npm run dev` direkt aus der Sidebar
- Workspace-Marker (pnpm/turbo/nx/lerna/cargo) werden eigens behandelt, mit Package-Liste
Eingaben dort, wo der Befehl entsteht.
Snippets, Pipeline-Logs und Blueprints klappen direkt in der Sidebar auf — mit Live-Preview, Parameter-Inputs und einem Klick zum Ausführen.
- Snippet-Inputs mit Live-Resolved-Preview ({{message}} → echter Befehl)
- Pipeline-Step-Klick öffnet den Log inline darunter — kein separates Fenster
- Blueprint-Folder-Picker per nativen macOS-Dialog, Pfade home-relativ persistent
- Run-Button mit Disabled-State solange Parameter leer sind — keine zerschossenen Befehle
Browser, Inspector und Terminal — eine Anwendung.
Jede Pane lässt sich in einen vollwertigen Browser umschalten — mit eigenem Cookie-Container pro Workspace und einem nativen Inspector, der jede Chrome-DevTool-Funktion bietet. Save-on-Reload trifft Editor-Pane: Datei speichern, Browser-Pane lädt neu.
- WKWebView-Browser mit Multi-Tab, Address Bar, Reader-Mode, Force-Dark, Find-in-Page
- Workspace-isolierte Cookie-Stores — Login in „Personal" bleibt getrennt von „Work"
- Private-Mode pro Workspace (non-persistent Data Store)
- DevTools-Pane mit 8 Tabs: Console · Network · DOM · Storage · Performance · Sources · Application · Audit
- Auto-Reload-Trigger: Editor-Save lädt sibling Browser-Panes neu — Hugo/Jekyll/MDX-Workflows ohne Tab-Wechsel
- JS-Bridge in jeden WKWebView injiziert — Console-Streaming, Network-Waterfall, DOM-Live-Tree
Mehrere Fenster. Geteilte Settings. Eigene Workspaces.
⌘N öffnet ein neues Fenster mit einem frischen Standard-Workspace — kein Klon des ersten. Jedes Fenster managt seine eigenen Workspaces, Pipeline-Watcher und Broadcasts, aber teilt sich global Themes, Fonts und Shortcuts. Workspaces können zwischen Fenstern verschoben werden und behalten ihre Identität über Restarts hinweg.
- Jedes Fenster mit eigenem SessionManager — Workspaces, Pipeline-Watcher, Broadcast pro Fenster
- AppSettings (Theme/Font/Shortcuts) bleiben global geteilt
- Stabile Workspace-UUIDs überleben App-Quit und Window-Verschiebung
- Pro-Workspace Theme-Override zieht zwischen Fenstern um — der Workspace „trägt" sein Theme mit
- Todo-Overlay läuft als single floating NSWindow über allen App-Fenstern — synchron via file-watcher
Jeder Workspace gehört zu einem Projekt.
Per Rechtsklick auf einen Workspace im Icon-Rail lässt sich ein Projekt-Ordner pinnen. Neue Panes starten dort — kein `cd` mehr nötig. Der Ordner persistiert über App-Restarts und Window-Verschiebung.
- Rechtsklick auf Workspace → „Choose Folder…" — nativer macOS-Picker
- Home-relative Pfad-Anzeige (`~/WebDev`) im Context-Menu
- Persistiert in `sessions.json` — neuer Workspace gleicher Name nach Restart launcht im richtigen Ordner
- Leer = follow global Startup-Setting (forward-kompatibel mit alten Workspaces)
Ein Compositing-Stack. Über die gesamte App.
Titlebar, IconRail, InfoPanel, Pane-Header — alle nutzen denselben Composite: `.sidebar` NSVisualEffectView-Blur plus `theme.bg.opacity(backgroundOpacity)`-Tint. Der Deckkraft-Slider in Settings → Effects wirkt proportional auf jede Chrome-Fläche; alles atmet im selben Rhythmus.
- Single-Tint-Prinzip: jede Chrome-Fläche hat genau eine Tint-Schicht über der Blur — keine Layer-Stapelung mehr
- Titlebar via AppKit-Painting — System-VEVs neutralisiert, eigener `.sidebar`-VEV installiert, traffic-light Buttons unverändert
- Opacity-aware Foreground: `fgSecond` und `fgTertiary` werden bei niedriger Deckkraft heller — Settings-Icons bleiben lesbar
- Glass-Themes (Studio, Midnight, Aurora …) bekommen Blur; Retro-Themes (BBC, C64 …) bleiben solid — beide korrekt
- Pane-Header übernimmt die Sidebar-Composite statt der Shell-Background-Farbe — Chrome bleibt visuell zusammenhängend
Power-Features ohne UX-Fallen.
Jede konsequenzreiche Aktion fragt nach. Jeder gefährliche Modus wird sichtbar gehalten. Jeder Tastenkürzel-Hint stimmt mit dem überein, was die Taste tatsächlich tut. Das ist nicht „nett zu haben" — das ist der Unterschied zwischen einer App, die man traut, und einer, die man fürchtet.
- Broadcast-Modus zeigt orange Bottom-Line + BROADCAST-Pill auf jeder Ziel-Pane — bleibt sichtbar auch wenn die Sidebar zu ist
- Shell-Switch (relay ↔ zshrc) fragt erst nach — Mis-Klick auf das schmale Header-Chip killt nicht mehr stillschweigend deinen laufenden Build
- Close Workspace zeigt den konkreten Impact („3 Panes, 1 laufendes Command, 1 Editor-Pane") — single idle terminal schließt weiterhin sofort
- Ask-Modal-Draft überlebt Escape und Backdrop-Tap — kein Verlust einer halb getippten Frage
- Workspace-Rename hat jetzt ein Pencil-Icon bei Hover — Discoverability ohne Mausspur-Suche
- ⌘1 / ⌘2 / ⌘3 schalten Pane-Type wirklich (Terminal / Editor / Browser) — die Hints im Type-Picker waren vorher tote Buchstaben
Hover, Click, Pin — drei klare Verben für die rechte Sidebar.
Die meisten Sidebars haben genau zwei Zustände: auf und zu. Das ist zu wenig. Manchmal will man kurz reinschauen, manchmal eine Section offen halten ohne Layout-Shift, manchmal sie permanent breit aufschlagen. Relay macht alle drei zugänglich — jedes mit unverwechselbarem visuellen Signal.
- **Hover** → 250 ms Dwell → Floating-Overlay slidet raus mit der Section. Cursor weg → 500 ms später schließt es.
- **Click** → pinnt sticky. Overlay bleibt offen ohne den Modus auf .expanded zu promovieren. Terminal behält seine volle Breite. Re-Klick toggelt off, Klick auf andere Section wechselt sticky.
- **Pin-Button im Overlay** → promoviert zu .expanded für die permanente Vollbreiten-Anzeige.
- Sticky-Icons rendern mit solidem Akzent-Fill + hochkontrastiger Glyph-Farbe — unverwechselbar vs. translucentem Hover-State.
- Fly-By-Filter: Cursor in unter 80 ms durch ein Icon = kein Open. Mausweg von Toolbar zur Pane bleibt still.
- Esc schließt einen sticky Overlay — nur wenn etwas gepinnt ist, sodass vim-Esc und REPL-Exits ungestört durchgehen.
- Section-Expand-States (Favorites, Bookmarks, Saved) leben in den Settings. ⌘I-Cycling resettet sie nicht mehr — überlebt App-Quit.