OzBridge

by sena-labs

220 downloads
Not rated
GitHub Website

About

Standalone MCP server bringing Warp™ Oz™ agents to Claude Code, Cursor, Codex and any MCP client — no VS Code required. Independent project, not affiliated with, endorsed by, or sponsored by Warp.

Details

Author
sena-labs
Downloads
220
Categories
Developer Tools, AI
{
  "mcpServers": {
    "oz-bridge": {
      "command": "npx",
      "args": [
        "-y",
        "@sena-labs/oz-mcp-server",
        "--stdio"
      ]
    }
  }
}

OzBridge — Warp Oz for any IDE or agent, via MCP

OzBridge is an open-sourceModel Context Protocol(MCP) server and VS Code extension that runs Warp Oz cloud and local agents from any MCP-compatible client — GitHub Copilot Chat, Claude Code, Cursor and Codex CLI.

Independent extension— not affiliated with, endorsed by, or sponsored by Warp, Inc.Warp™andOz™are trademarks of Warp, Inc., used here nominatively only to describe interoperability. OzBridge uses solely Warp'sdocumented public interfaces(theozCLI, the Model Context Protocol, and theWARP_OUTPUT_FORMATenv var); it does not modify, reverse-engineer, or compete with Warp. SeeDISCLAIMER.

Run it embedded in VS Code — where Oz shows up natively as the@ozChat Participantand asAgent-Native Language Model Toolsthat Copilot Agent mode invokes autonomously — or expose the same Oz toolset over HTTP+SSE soClaude Code, Cursor and Codexdrive Oz too. No editor at all? Ship the standalone@sena-labs/oz-mcp-serverand point any MCP client at it.

flowchart LR subgraph clients["MCP clients"] CC["Claude Code"] CU["Cursor"] CX["Codex CLI"] end VSC["VS Code<br/>Copilot Chat"] clients -->|"HTTP + SSE"| BR VSC -->|"@oz participant<br/>LM Tools"| BR BR["OzBridge<br/>(6 MCP tools)"] -->|"spawn"| CLI["oz CLI"] CLI -->|"local run"| WS["Your workspace"] CLI -->|"cloud run"| CLOUD["Warp Oz cloud"]

- Features
-
Requirements
-
Installation
-
Connect your MCP client

- How do I use Warp Oz in Claude Code?
-
How do I use Warp Oz in Cursor?
-
How do I use Warp Oz in Codex CLI?
-
How do I use Warp Oz in VS Code?

- Chat Participant (@oz)
-
Slash Commands
-
Agent Mode — Language Model Tools

New to Warp or to VS Code extensions?TheQuick Start guideis a step-by-step visual walkthrough — prerequisites, per-OS install, first run, every slash command, settings and troubleshooting — written for readers with no prior setup. Full documentation site:https://sena-labs.github.io/OzBridge/.

- MCP bridge — Warp Oz for any client— expose the Oz toolset as a Model Context Protocol server over HTTP+SSE soClaude Code, Cursor and Codexdrive Oz through the same tools Copilot sees. Run it embedded in VS Code (opt-in) or fully standalone via@sena-labs/oz-mcp-server. Seedocs/MCP.md.
- @ozChat Participant— interact with Warp Oz agents from the VS Code chat panel.
- Agent-Native Language Model Tools— Copilot Agent mode can invoke Warp Oz directly, without typing@oz.
- One-click model selection— pick the Oz model from a QuickPick (OzBridge: Select Model), the$(sparkle)status-bar indicator, or@oz /models <id>— no hand-typing an id into settings. Agents switch it via the MCP toolsoz_list_models/oz_set_default_model.
- Warp sidebar + status bar— Activity Bar view with Active Runs, History, Schedules, Environments, MCP Servers and Secrets, plus a$(cloud) Warp: N activeindicator and a$(sparkle) <model>model indicator (click to switch).
- Context variables & Warp handoff— inline#warp.env,#warp.profile,#warp.model,#oz.historyand#oz.run/<id>tokens expanded into any/runor/cloudprompt, plus a one-click handoff to an actual Warp terminal.
- Per-workspace config— optional.warp/warp-bridge.yamlcommitted to the repo overridesozBridge.settings for everyone who opens the project. Precedence: YAML > VS Code settings > defaults. Secrets likemcpBearerTokenand platform-specificozPathare deliberately excluded.
- 9 slash commandscovering the full agent workflow:/run,/cloud,/status,/history,/schedule,/models,/mcp,/config,/init.
- IDE context injection— automatically includes workspace path, active file, selection and diagnostics in every prompt.
- Agent skill detection— maps prompt keywords to the 7-agent pipeline (spec, design, implement, review, test, deploy, maintenance).
- Cloud run polling— exponential-backoff polling with real-time progress updates in the chat stream.
- Robust JSON parser— 5-level fallback for mixed text/JSON CLI output.
- Configurable— every setting is exposed via the VS Code Settings UI underozBridge.
.
- Minimal runtime footprint— one bundled workspace package (copilot-chat-toolkit) plus thevscodeAPI; no third-party network code. Production bundle ~160 KB.

- VS Code≥ 1.96.0 (the@ozparticipant requires the stable Chat Participant API; LM Tools additionally requirevscode.lm.registerTool).
-
Warp Terminalinstalled, with theozCLI accessible inPATH.
- AWarp account, signed in viaoz login.
- GitHub Copilot Chatextension (optional but required to actually invoke@ozor use Agent mode tools).

Starting withv0.9.0, OzBridge is published to both registries on every tagged release.

VS Code Marketplace(Stable / Insiders / Cursor with Microsoft marketplace access):

code --install-extension sena-labs.ozbridge

Open VSX(VSCodium, Gitpod, Theia, Cursor with Open VSX mirror):

codium --install-extension sena-labs.ozbridge # or, inside the editor GUI, search for "OzBridge" on open-vsx.org

- Marketplace —https://marketplace.visualstudio.com/items?itemName=sena-labs.ozbridge
- Open VSX —
https://open-vsx.org/extension/sena-labs/ozbridge
- PressCtrl+Shift+P(orCmd+Shift+Pon macOS).
- Type"Extensions: Install from VSIX…".
- Select theozbridge.vsixfile.

Note:on Windowscodemay not be in yourPATH. Use the full path or the GUI method above.

git clone https://github.com/sena-labs/OzBridge.git cd OzBridge npm install npm run build

Then pressF5in VS Code to launch the Extension Development Host with the built extension loaded.
- Open the Copilot Chat panel (Ctrl+Shift+I/Cmd+Shift+I).
- Type@oz /configand submit.
- The panel should show a table with the current configuration and the detected Oz CLI path. If the CLI is missing you will see an"Install Warp"action button that opens the download page.

OzBridge exposes the same six Oz tools to every MCP client. Start the bridge first — either enable the embedded server in VS Code ("ozBridge.mcpEnabled": true, thenOzBridge MCP: Start) or run the standalone package:

Both listen onhttp://127.0.0.1:3847/sseby default. SetozBridge.mcpBearerTokento require anAuthorization: Bearer <token>header; omit theheadersblock below when auth is disabled.

{ "mcpServers": { "oz-bridge": { "type": "sse", "url": "http://127.0.0.1:3847/sse", "headers": { "Authorization": "Bearer my-secret" } } } }
{ "mcpServers": { "oz-bridge": { "url": "http://127.0.0.1:3847/sse", "headers": { "Authorization": "Bearer my-secret" } } } }
[[mcp.servers]] name = "oz-bridge" url = "http://127.0.0.1:3847/sse" authorization = "Bearer my-secret"

No MCP wiring needed — install the extension and Oz is available immediately as the@ozchat participant and as Language Model Tools that Copilot Agent mode calls on its own. SeeUsage.

Protocol details, endpoint reference and a raw-curlcheatsheet live indocs/MCP.md.

Open the Copilot Chat panel and type@ozfollowed by your request:

@oz fix the failing test in src/auth/login.ts

The extension injects an IDE context block (workspace path, active file, selection, diagnostics) before the prompt and runs the Oz agent. Results stream back as markdown with action buttons (e.g.Retry,Open run).

/history — list all completed runs (SUCCEEDED + FAILED) /history succeeded — only SUCCEEDED runs /history failed — only FAILED runs /history <runId> — show details for a specific run
/schedule list — List all schedules /schedule create <name> "<cron>" "<prompt>" — Create a schedule /schedule pause <id> — Pause a schedule /schedule unpause <id> — Resume a schedule /schedule delete <id> — Delete a schedule

InGitHub Copilot Chat Agent mode, Copilot can call Warp Oz directly through registered Language Model Tools — you don't need to prefix your request with@oz. Copilot selects the right tool based on the prompt and its declaredmodelDescription.

# Agent mode picks oz_run_local automatically: Run the unit tests locally via Oz. # Explicit tool reference (prefix with #): Run this refactor on cloud: #ozRunCloud refactor src/auth to hexagonal architecture # Query a previous run: Check run #ozGetRun for run id run-abc123.

Each tool is declared inpackage.jsonundercontributes.languageModelToolswith a strict JSONinputSchema, so the model receives accurate type hints at tool-call time. Cloud tools always show a confirmation dialog before running, regardless of the user'sBypass Approvalspreference.

The extension contributes a dedicatedActivity Bar view(OzBridge → Runs & Resources) with five collapsible categories:

- Active RunsQUEUED+INPROGRESS(live-refreshed every 10 s).
- HistorySUCCEEDED+FAILED, capped at 20 entries per refresh.
- Schedules— cron jobs fromoz schedule list.
- Environments— cloud environments fromoz environment list.
- MCP Servers— MCP integrations fromoz mcp list.

- Copy IDon any run / schedule / environment / MCP node.
- Open in Browseron a run node (opensapp.warp.dev/agents/<id>).
- Pause / Resume / Deleteon schedule nodes (delete asks for confirmation).

Astatus bar item($(cloud) Warp: N active, right-aligned) mirrors the Active Runs count in real time and switches towarningBackgroundat 1–2 active runs orerrorBackgroundat 3+. Clicking the indicator focuses the OzBridge sidebar.

Inside any@oz /run …or@oz /cloud …prompt you can embed a small set of tokens that the extension resolveslocallybefore sending the prompt to the Oz CLI. Unknown tokens (e.g.#some.other) are passed through unchanged.

@oz /cloud deploy branch #warp.env profile=#warp.profile given the last runs:\n#oz.history

Two commands open a real Warp terminal (Warp ≥ 0.2024.x) via thewarp://action/new_tabURI scheme:

- Warp: Hand off to Warp terminal…(Command Palette) — asks for a prompt and runsoz agent run --prompt "<prompt>"in a new Warp tab.
- Warp: Hand off run to Warp terminal(sidebar context menu on any run node) — runsoz run get <runId>so you can drill into the run directly in the terminal.

If thewarp://URL handler is not registered on the current platform, the extension shows a modal with the exact command to copy into any shell as a fallback.

Six MCP tools are exposed over the bridge. Copilot Agent mode invokes them natively in VS Code; Claude Code, Cursor and Codex reach the same set through the MCP server, embedded or standalone.

The full JSONinputSchemafor each tool is emitted verbatim bytools/list. Seedocs/MCP.mdfor protocol details, a raw-curlcheatsheet and the endpoint reference.

All settings live underozBridge.in VS Code Settings (File → Preferences → Settings) or can be edited insettings.json.

Per-workspace overrides (.warp/warp-bridge.yaml)

Commit a.warp/warp-bridge.yamlat the root of your repository and OzBridge will merge its values on top of the VS Code settings for everyone who opens the project. The file is reloaded automatically when it is created, changed or deleted — no VS Code reload required.

# .warp/warp-bridge.yaml — committed to Git, shared across the team. defaultProfile: team-shared defaultEnvironment: staging timeoutMs: 600000 mcpEnabled: true mcpPort: 3900 mcpBindAddress: "127.0.0.1"

Supported keys:defaultModel,defaultProfile,defaultEnvironment,timeoutMs,maxOutputChars,cloudPollingIntervalMs,cloudPollingTimeoutMs,mcpEnabled,mcpPort,mcpBindAddress.

- ozPath— platform-specific, must live in user settings.
- mcpBearerToken— secret, should never be committed.

Unknown keys and keys with the wrong type are logged to theOzBridgeoutput channel and ignored, so a typo never breaks the extension.

The extension follows alayered architecturewith dependency injection at the composition root (src/extension.ts). Each layer has a single responsibility:

src/ ├── types/index.ts — Contracts: interfaces, errors, config ├── parsers/ │ ├── jsonParser.ts — Robust 5-level JSON parser │ └── outputFormatter.ts — Chat stream formatting & truncation ├── services/ │ ├── configManager.ts — VS Code settings wrapper with caching │ ├── contextCollector.ts — IDE context gathering │ ├── ozCliService.ts — Core CLI execution via child_process │ ├── runPoller.ts — Async polling with exponential backoff │ └── logger.ts — Centralised extension logging ├── commands/ │ ├── router.ts — Slash-command dispatch │ └── {9 command files} — One handler per /command ├── tools/ │ ├── baseTool.ts — Shared helpers (textResult, errorResult) │ ├── runLocalTool.ts — oz_run_local │ ├── runCloudTool.ts — oz_run_cloud (with confirmation) │ ├── getRunTool.ts — oz_get_run │ ├── listRunsTool.ts — oz_list_runs │ └── index.ts — registerWarpTools() ├── participant/ │ ├── handler.ts — Chat Participant registration │ └── followups.ts — Contextual follow-up suggestions └── extension.ts — Entry point: compose & register

- User types@oz /run implement authin Copilot Chat.
- VS Code dispatches the request to the@ozChat Participant.
- CommandRoutermaps/runto thecreateRunCommandhandler.
- Handler callsContextCollector.gather()for IDE context.
- Handler callsOzCliService.agentRun(), which spawnsozas a child process.
- JSON output is parsed via the 5-leveljsonParser.
- OutputFormatterrenders the result as markdown in the chat stream.

# Install dependencies npm install # Type-check npm run compile # Build (esbuild) npm run build # Run tests npm test # Tests with coverage report npm run test:coverage # Watch mode (dev) npm run watch # Clean build artifacts npm run clean # Package VSIX for distribution npm run package

- 1,400+ testsacross 100+ files
- High test-to-code ratio
- Framework:
Vitestv4.0.18

Contributions are welcome. Please readCONTRIBUTING.mdbefore submitting changes.
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request

Make sure all tests pass before submitting:

See also theCode of Conductand theSecurity Policy.

Ensure Warp is installed and theozCLI is available in yourPATH.

# Verify oz is available which oz # macOS / Linux where oz # Windows (PowerShell)

Ifozis inPATHbut the extension still reports it as unavailable, type@oz /configin the Copilot Chat panel — this triggers extension activation and the first CLI check. You can also set an explicit path inSettings → Extensions → OzBridge → Oz Path.

Runoz loginin a terminal to re-authenticate, or use theLogin Warp*button that appears in the error message inside the chat panel.

Increase the timeout inSettings → Extensions → OzBridge → Timeout (ms). The default is 300 000 ms (5 minutes). For large-scale agent runs consider raising it to 600 000 ms. Cloud runs have a separate, longer timeout controlled bycloudPollingTimeoutMs.

The extension activates only when the@ozparticipant is invoked in Copilot Chat (or when Copilot Agent mode calls one of the LM Tools). To activate it manually:
- Open the Chat panel (Ctrl+Shift+I).
- Type@ozfollowed by any command (e.g.@oz /config).

Make sure you haveVS Code ≥ 1.96.0and theGitHub Copilot Chatextension installed and signed in.

Q: Does OzBridge work with Cursor, Claude Code and Codex?A: Yes. All three are MCP clients — point them at the bridge endpoint and they get the same six Oz tools Copilot sees. Copy-paste configs are inConnect your MCP client.

Q: Do I need VS Code at all?A: No. The standalone@sena-labs/oz-mcp-serverruns vianpxwith no editor involved; VS Code is only required for the@ozchat participant and the sidebar.

Q: What is the difference between a local run and a cloud run?A: A local run spawns theozCLI in your workspace — no Warp credits, full access to your files. A cloud run executes on Warp's infrastructure, consumes credits, and runs detached from your machine. Both are reachable from every client.

Q: Does this extension require a Warp subscription?A: A free Warp account is sufficient for local agent runs. Cloud runs may require a paid plan depending on usage. Check your account atapp.warp.dev.

Q: Can I use a custom model?A: Yes — setozBridge.defaultModelin VS Code settings or pass it inline with/run --model gpt-4o. To see all available models, use/models.

Q: Which operating systems are supported?A: macOS, Linux and Windows are all natively supported. The extension works on any platform where VS Code and the Oz CLI can run. On Windows the extension automatically handles.cmdwrappers.

Q: How do I report a bug?A: Open an issue using thebug report template. Include your OS, VS Code version, extension version and steps to reproduce.

Q: Can I use this extension with GitHub Copilot Chat?A: Yes — this extension is a VS Code Chat Participant. It appears as@ozin the Copilot Chat panel. You need GitHub Copilot Chat installed and active.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.