Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>Sanary Build InterfaceNew to Visual Studio Code? Get it now.
Sanary Build Interface

Sanary Build Interface

Sanary

| (0) | Free
Run Claude Code or Codex against your workspace from VS Code, with optional evaluation feedback from Sanary's SBB. macOS 13+, Apple Silicon only. Unofficial: not affiliated with Anthropic or OpenAI.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Sanary Build Interface

Sanary Build Interface (SBI) runs Claude Code or Codex against your current VS Code workspace and shows you the result. It also lets Sanary's monitoring apps see which of your workspaces is active. SBI is free, needs no account, and has no telemetry.

Requires macOS 13 or later on Apple Silicon (arm64) and VS Code 1.100 or later. It does not run on Intel Macs, Windows, or Linux.

Unofficial. Claude and Claude Code are products of Anthropic; Codex and OpenAI are products of OpenAI. Sanary Build Interface is an independent Sanary product and is not affiliated with, endorsed by, or sponsored by Anthropic or OpenAI. It works with the Claude Code and Codex command-line tools that you install yourself.

日本語: Sanary Build Interface(SBI)は、VS Code のワークスペースで Claude Code / Codex を実行し、結果を表示します。無料・アカウント不要・テレメトリなし。macOS 13 以降(Apple Silicon 専用)。Anthropic / OpenAI とは無関係の非公式製品です。サポート・プライバシー・規約は、下の「Support, privacy and terms」のリンクをご覧ください。

Supported Coding Agents

  • Claude Code
  • Codex

Requirements

  • macOS 13 or later on Apple Silicon (arm64). See Supported platform.
  • The Claude Code CLI and/or the Codex CLI installed on your machine (whichever Agent(s) you intend to use — see Agent executable discovery below).
  • VS Code 1.100 or later.

Supported platform

macOS (Apple Silicon / arm64) only, this version. The extension bundles native binaries built for darwin-arm64; it does not run on Intel Macs, Windows, or Linux, and is packaged so that VS Code only offers it on darwin-arm64.

Installation

Install the .vsix like any other VS Code extension (Extensions: Install from VSIX…, or code --install-extension <file>.vsix). The extension activates once VS Code has finished starting; it does not run in an untrusted workspace or a virtual (remote-file-system) workspace.

Quick Start

  1. Install the extension.
  2. Open a workspace folder.
  3. Open the Command Palette.
  4. Run SBI: Run Agent (or use @sbi /claude … / @sbi /codex … in Chat).
  5. Choose an Agent (Claude Code or Codex).
  6. Enter an instruction.

The result appears in the SBI Output Channel and as a notification.

On first activation, the extension checks whether a compatible SBI Runtime is already listening on 127.0.0.1:8788. If one is found, it is reused as-is; otherwise the extension starts its own bundled Runtime. An existing, unrelated (or incompatible) service already using that port is never killed, overridden, or otherwise touched.

Several VS Code windows

All windows share the one Runtime on :8788. The window that started it stops it when that window closes; every other window notices within about twenty seconds and starts a new one, so the Runtime stays available until the last window is closed. An Agent execution that was running through the closed window's Runtime is interrupted when that happens.

Agent executable discovery

The extension needs to know where the Claude Code / Codex CLI executables are installed, checked in this order:

  1. The sbi.claudeCodeExecutablePath / sbi.codexExecutablePath VS Code settings.
  2. The CLAUDE_CODE_EXECUTABLE_PATH / CODEX_EXECUTABLE_PATH environment variables, if already set in the environment VS Code itself was launched from.
  3. PATH (plus a couple of well-known install locations not always on PATH).

If an Agent's executable can't be found this way, running that Agent fails with a message naming which one is missing. Nothing is installed automatically.

What SBI changes on your machine

Everything below stays on your Mac. SBI sends nothing to Sanary or to any other remote server.

  • A local Runtime (sbi-server, bundled) listening on 127.0.0.1:8788 only. It talks to SBB on 127.0.0.1:8787 and to Sanary Build Gateway (SBG) on 127.0.0.1:8790 when they are running.
  • Claude Code hooks. SBI adds UserPromptSubmit and Stop hook entries to ~/.claude/settings.json and copies a small helper (sbi-claude-hook) to ~/.sbi/hooks/, so a Claude Code session in your workspace can be shown and evaluated. When a hook fires, the helper passes your prompt, the session's working directory and the Agent's last reply to the local Runtime (on this Mac), which relays them to SBB for evaluation if SBB is running. Your other settings and hooks are kept as they are; an unparseable settings.json is never touched.
  • Codex hooks. If Codex is installed, SBI adds the same two hooks to ~/.codex/hooks.json (helper: ~/.sbi/hooks/sbi-codex-hook) and records Codex's trust for exactly those hooks in one clearly marked block in ~/.codex/config.toml. Nothing outside that block is edited; if your config.toml defines hooks of its own, SBI adds nothing.
  • Read-only observation. To show whether an Agent is working, SBI reads Claude Code's session files (~/.claude/sessions) and Codex's session transcripts (~/.codex/sessions), and watches file changes, debug sessions and terminal activity in the open workspace as an "active / idle" signal. It never reads the contents of what you type in the terminal. On the monitoring board the workspace is identified by its folder name and a one-way hash of its path.
  • Sanary Build Gateway and SBR (optional). If SBB, which hosts SBG on your Mac, is running, the SBI Runtime reports to SBG on 127.0.0.1:8790: the workspace folder name, whether the workspace is open and active, and whether Claude Code or Codex is working. For an Agent run that starts from an instruction sent by SBB (SBC) or an SBR device, it also reports a short work status — the beginning of that instruction (up to 100 characters) and short result or SBB-note lines (up to 160 characters each). For Claude Code / Codex hooks it reports a one-line task summary (the first line of your prompt, up to 40 characters) and SBB's short reason for its decision. Your full prompts and replies are not sent to SBG; they go only to SBB, on your Mac, for evaluation. SBG keeps this in memory (it stores only its pairing records and its Remote Access setting). If you pair the SBR iPhone app, SBG serves it to your paired device over your local network, authenticated with the device credential issued at pairing. Neither SBI nor SBG sends it to any Sanary server.
  • Xcode. The SBI Runtime can also observe Xcode's built-in coding agents (read-only, on the same Mac). This extension does not write to Xcode's configuration.

Disable and uninstall

  • Disabling the extension, or closing VS Code, leaves your Claude Code and Codex configuration exactly as it is, so re-enabling just works. While the extension is not running the hooks reach nothing and let every prompt pass.
  • Uninstalling removes what SBI itself added: its hook entries in ~/.claude/settings.json and ~/.codex/hooks.json (the file too, if nothing else was in it), its trust block in ~/.codex/config.toml, and ~/.sbi/hooks/. Your own hooks and settings are never touched. VS Code runs this cleanup once, the next time it starts after the uninstall. An update (another version of the extension installed alongside) is recognised and removes nothing.
  • If you used an earlier version that registered SBI hooks in Xcode's own Claude / Codex configuration, the first start of this version removes those registrations (once).

SBB (optional)

SBB (Sanary Build Bridge) is a separate, optional Sanary app for macOS. If it is running, SBI also sends an Agent's result to it for evaluation and shows the decision next to the result. If it is not, the Agent still runs normally; the evaluation is shown as unavailable, never as approved. SBI does not need SBB to be installed.

Troubleshooting

  • ":8788 is occupied by a service that is not a compatible SBI Runtime" — another program uses the port; quit it and reload the window.
  • "the SBI Runtime on :8788 is outdated" — an sbi-server that does not offer everything this version needs (for example one left running by an older install, or started by another window with an older extension) holds the port. SBI does not reuse it, and does not stop it for you, so running an Agent through SBI and workspace presence are unavailable until it is gone. To fix it:
    1. Find the process: lsof -nP -iTCP:8788 -sTCP:LISTEN in Terminal (or look for sbi-server in Activity Monitor). The Output Channel lists the missing capabilities.
    2. Quit it (Activity Monitor → Quit, or kill <pid>).
    3. Reload the window (Developer: Reload Window). SBI then starts its own current Runtime; other open windows pick it up within about twenty seconds.
  • the SBI Runtime on :8788 does not advertise "localRequestGuard" (Output Channel) — the running Runtime, for example one embedded in an older SBB, predates the check that keeps a web page in your browser from sending requests to it. It keeps working and is not stopped for you. To use the hardened Runtime, quit that one and reload the window.
  • Logs are in the SBI Output Channel.

Current limitations

  • macOS (Apple Silicon) only — see Supported platform.
  • Only Claude Code and Codex are supported; no other Coding Agent.
  • Multi-root workspaces use the first workspace folder only.
  • Agent executable discovery does not install anything automatically.
  • If VS Code is killed rather than closed, a Runtime it started can outlive it; the next start reuses it.

Support, privacy and terms

  • Support: https://www.sanary.jp/en/SanaryDev/SanaryBuildInterface/support/ · 日本語: https://www.sanary.jp/SanaryDev/SanaryBuildInterface/support/ · info@sanary.jp
  • Homepage: https://www.sanary.jp/en/SanaryDev/SanaryBuildInterface/ · 日本語: https://www.sanary.jp/SanaryDev/SanaryBuildInterface/
  • Privacy Policy (Sanary-wide): https://www.sanary.jp/policy/en/privacy/ · 日本語: https://www.sanary.jp/policy/privacy/
  • Terms of Use: https://www.sanary.jp/policy/en/terms/ · 日本語: https://www.sanary.jp/policy/terms/
  • License: see LICENSE (proprietary; free to use).

SBI uses no account, no server storage and no analytics, and sends nothing to Sanary; under the Sanary Privacy Policy, such an app collects no personal information. What SBI reads and writes on your Mac, and what it hands to SBB / SBG, is listed under What SBI changes on your machine. The Claude Code and Codex CLIs you run send data to their own providers, exactly as they do without SBI, and SBI does not change that. This extension itself includes no telemetry.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft