Oyren Gateway

This Codespace is running. The routes below are what its public URL serves.

This Codespace's surfaces

SurfacePathStatus
VS Code /_oyren/ide/ ● running
Zed /_oyren/zed/ ● not running
Browser /_oyren/browser/ ● not running
Terminal /terminal WebSocket

Configured Routes

PathPortLabelStatus
/ 3000 ● not listening

Downloads

Files staged in /workspace/.oyren-deliver/ are available for download.

Open Downloads

Logs

Recent server + app output — useful when a route above says "not listening" or an app won't start. In-memory only (resets on restart), so it won't help after the Codespace is relaunched.

View Logs

How to add routes

From the terminal or as an LLM agent, manage routes with the oyren CLI:

oyren route add /studio 3000 "Remotion Studio"   # map /studio/* → port 3000
oyren route add / 3000 "Default App"             # catch-all → port 3000
oyren route list                                  # show all routes
oyren route remove /studio                        # remove a route

Or edit /workspace/.oyren-routes.json directly — changes are picked up automatically.
The old oyren expose <port> still works as a single-port fallback.

Reserved endpoints

PathPurpose
/_oyren/gatewayThis page
/_oyren/ide/*The browser IDE (VS Code) — reserved so a "/" route can never evict it
/_oyren/zed/*The streamed Zed editor (KasmVNC)
/_oyren/zed-clipboardImage → clipboard injection for the streamed-Zed session
/_oyren/browser/*The in-VM browser's stream — where an agent CLI's loopback OAuth callback lands
/_oyren/port/*Session-token-gated proxy to any loopback port (dev servers, previews)
/_oyren/downloadDownload staged deliverables
/_oyren/logsRecent server + app logs
/_oyren/runsJSON list of detached script runs + their output
/_oyren/runs.htmlBrowsable view of those same runs
/_oyren/healthHealth check (always 200)
/_oyren/control/*Control API (authenticated)
/terminalWebSocket terminal
/agent/messageHeadless agent chat — inject one user turn
/agent/streamThe persistent read side of the agent chat (ndjson)
/agent/currentLive agent session state (busy / model)
/agent/interruptStop the running agent turn
/agent/modelsThe models this session exposes
/agent/modelSwitch the agent's model
/agent/resetEnd the conversation everywhere and mark the boundary in the event log
/agent/authPer-provider credential status (has a key/login, per agent kind)