Chio·Surfaces·Plugins
Cursor · Plugin 05

Cursor plugin

Your IDE for the internet of agents.

A native Cursor extension that bonds Composer, the Agent tab, and inline AI to a policy you own. Real enforcement runs as Cursor hooks (afterFileEdit, beforeReadFile, beforeShellExecution, beforeMCPExecution); the extension adds observability, palette commands, and the /chio-init scaffolder.

surfaceCursor 1.90+ · hooks + extensionruntimechio-cursor 0.1.0 · chio 0.1.0 · bridge 0.2.1installMarketplace: search `chio` · or sideload .vsixsourcebackbay-labs/chio-cursor-plugin
Cursor · Composerbonded · policy: backend
compose: rewrite our feature flag reads to call the new LaunchDarkly wrapper, don't touch anything under /billing
chio attenuating capability for cursor.compose · fs !/billing/** · tool cmd:build
mesh MCP flags.prod bonded via beforeMCPExecution · 4 tools allowed · 2 denied
diff preview18 files
patch.apply · 18 files · 214 +, 96 − · secrets-scan clean
·PR queued · .chio/evidence/pr-feature-flags.bundle.json attached · budget 0.4 / 5.0 min
Receipt0xc3ee…1a7bed25519 ✓
01Install

Drop-in extension. Repo-native policy.

Install from Cursor's marketplace (or sideload the .vsix). The extension adds a Chio sidebar, a status bar indicator, and a palette. /chio-init writes .chio/ + .cursor/hooks.json into the repo. Teams and CI share the same ruleset.

01

Install from the Cursor marketplace

Search 'chio' in Cursor's Extensions panel. Publisher is Backbay Industries; the listing is signed.

$# Cursor → Extensions → search: chio
Publisher: backbay · or sideload the .vsix from the chio releases page.
02

Initialize the workspace

Runs Chio: Initialize workspace from the palette (or /chio-init in chat). Writes .chio/policy.yaml, .chio/hooks/, and .cursor/hooks.json. Every teammate inherits them.

$# palette → Chio: Initialize workspace
03

Bond the workspace

Mints an Agent Passport scoped to the repo; attenuates the capability. Re-bonds on session open.

$/chio-bond
agent: did:chio:<64-hex> · policy: backend@1.4 · ttl: session
// Registered by /chio-init · Cursor invokes these per keystroke.
{
  "afterFileEdit": [".chio/hooks/composer.mjs"],
  "beforeReadFile": [".chio/hooks/composer.mjs"],
  "beforeShellExecution": [".chio/hooks/shell.mjs"],
  "beforeMCPExecution": [".chio/hooks/tool.mjs"]
}
// All hooks fail closed: any crash, timeout, or policy-load failure denies.
02Surfaces

Every place Cursor runs, Chio mediates.

Four Cursor hook events map onto four enforcement scripts. You don't have to change how you work, just which daemon you're working against.

01 · afterFileEdit

Composer patches.

composer.mjs enforces forbidden_paths, path_allowlist.write, patch_integrity, and an inline secret scan before the write lands.

patch_integrity · fs
02 · beforeShellExecution

Agent tab shells.

shell.mjs consults shell_commands.allow / deny. Egress is pinned to your mesh.

shell · egress
03 · beforeReadFile

Context ingress.

composer.mjs scans file contents for secrets before they enter the model's context. Redactions are receipted as a deny.

<2ms · fail-closed
04 · beforeMCPExecution

Every MCP tool.

tool.mjs calls ChioBridge.check against the 7-guard pipeline. Every mounted MCP server — yours, third-party, experimental — is bonded before Cursor can touch it.

mcp · attenuated
03Features

IDE features, governance-grade.

The plugin adds a side panel, a status bar indicator, and a handful of chat skills. The rest is invisible, until something tries to cross a line and a hook stops it.

Bond indicator

Status bar shows BONDED / AT-RISK / REVOKED with a live budget meter. Click to open the policy; hover for the receipt stream.

status-bar

Composer preview

Every multi-file patch is previewed with a deny reason next to any file that would be refused, before you apply.

preview · refuse-first

Team policy

Policy lives in .chio/ under version control. CI runs the same guard pipeline via chio check on PRs; drift shows up as review comments.

ci · team-scoped

Per-PR attenuation

.chio/branches/<branch>.yaml holds per-PR scope deltas. 'This PR can only touch /docs.' The delta is signed; the base policy is untouched.

per-branch

Secret scanning

Model output is scanned inline before it reaches your buffer. Leaked keys are redacted and receipted as a deny.

secrets

MCP mesh discovery

/chio-attach-mcp discovers MCP servers on your mesh, attenuates them, and registers into .cursor/mcp.json. No manual config.

mcp · mesh
04Workflows

Day-to-day Cursor, safer.

Ordinary Cursor moves, now reviewable. Every workflow produces a signed bundle you can attach to a PR, a ticket, or an audit response.

refactorRewrite every call to the old flags API to the new LaunchDarkly wrapper. Don't touch anything under /billing.path-exclude · patch · velocity~4 min
repo-scanScan for leaked secrets and suggest rotations. Output a signed report; don't modify anything.read-only · secrets · receipt~3 min
pr-reviewReview this PR branch. Attenuate to /docs only. Write review comments but don't push.branch-scope · no-push~5 min
bootstrapWire my MCP Sentry server through Chio and surface a dashboard in the Agent tab.mcp-attenuation · discovery~2 min
05Proof

One bundle per PR. Signed.

allowpatch.apply · 18 files · 214 + / 96 − · secrets_scan=clean16:14:02
denyfs.write · ./billing/invoices.ts · forbidden_paths16:14:05
allowshell.exec · tsc --noEmit · 0 errors · 2.4s16:14:09
allowshell.exec · npm test · 412 passed · 11.1s16:14:21
cancelfetch · api.openai.com · not on egress allowlist16:14:30

The plugin attaches a signed evidence bundle (.chio/evidence/pr-<branch>.bundle.json) to every PR Cursor creates. Reviewers see the receipts alongside the diff; CI can refuse any PR whose bundle is missing. The audit story is continuous, not a quarterly spreadsheet.

agentdid:chio:c3ee1a7b2d3e4f50617283a4b5c6d7e8f900112233445566778899aabbccddeepolicybackend@1.4.0count63 receipts · 58 allow · 3 deny · 2 cancelhash0xc3ee…1a7b

Your IDE, ready for the internet of agents.

Every MCP server your team mounts, every agent in your Composer, every inline fix: the same kernel, the same receipts. Ship with Cursor; prove it with Chio.