◈ ApprovalLensGet started →
TECHNICAL SPECIFICATION / 0.7

Local control.
Grounded advice.

ApprovalLens separates permission, evidence and interpretation. The model explains eligible actions. Your applied policy and your decision control the supported native approval boundary.

Request states and decisions

Native action state machine
ApprovalLens native request states and transitionsPolicy violations block locally. Ordinary permitted reads return permission. Eligible sensitive actions pass through optional live model review, developer approval and a state recheck. Reject, expiry, changed state or required model failure deny the request. Host completion is logged separately.violationordinary readeligibleLIVERULES ONLY · no inferencefailurevalid findingsapprove oncereject / expirechangedunchangedlocal read permissionREQUEST RECEIVEDBind tool, project and chatLOCAL POLICY CHECKScope · constraints · coverageBLOCKEDHard denial · no model callPERMITTED READSupported read + data checks passREVIEW REQUIREDCollect and scan eligible evidenceMODEL REVIEWValidate structured Nemotron findingsDENIED / HALTEDReview failure or blocking resultWAITING FOR DEVELOPERNative request remains suspendedDENIEDReject · expiry · changed stateRECHECK STATEApproval is for this request onlyRETURN PERMISSIONCursor may resume the tool callRECORD HOST OUTCOMECompletion or failure is separate

Approval is not proof of execution. The host reports the eventual outcome. In LIVE mode, an invalid or unavailable required review denies the request; it does not silently fall back to rules-only mode.

One extension. Two trust boundaries.

On your computer · enforcement boundary
  1. 01Cursor delivers a native tool event
  2. 02Bundled hook sends it to the local companion
  3. 03Exact grants, constraints and sensitive-data checks
  4. 04Eligible action waits for review
  5. 05You approve or reject in Cursor
  6. 06State recheck, then permission returned to Cursor
Hosted service · advisory boundary
  1. 01Local evidence is minimized and scanned
  2. 02Authenticated MCP request reaches Vercel
  3. 03NVIDIA Nemotron Super runs on Nebius Token Factory
  4. 04Structured findings are validated locally
  5. 05Findings inform your decision; the server cannot execute

Hard denials stop locally and skip inference. Ordinary supported reads can pass locally. LIVE review failures, invalid replies, timeouts and rejected decisions do not grant permission. Approval and the subsequent host-reported outcome are recorded separately.

Project rules, with a deliberate application step

Suggested rules are proposals, never authority
  1. 01Detect stack from file names; exclude hidden and sensitive paths
  2. 02Automatically inventory eligible project paths and ask for task intent
  3. 03Preview the exact inventory before transmission
  4. 04Nemotron proposes minimal read/write grants with reasons
  5. 05Validate every grant against the automatically collected project paths
  6. 06Review draft, save rules, explicitly apply

No source contents or manifest contents are uploaded for suggestions. The inventory is bounded and skips symlinks and common generated directories. Existing restrictions are retained in the draft. Suggestions cannot introduce delete grants or enable shell inspection; active rules remain unchanged until explicitly applied. File names and task intent can still be sensitive, so preview them before sending.

What each component owns

ComponentResponsibility
Cursor extension · CommonJSWorkspace setup, sidebar, approval UI and editor SecretStorage.
Bundled local companion · TypeScriptPrivate Unix socket, tool normalization, trusted policy snapshot, pending decisions and bounded activity.
Shared core · TypeScript + ZodExact operation/path grants, shell analysis, JSON evidence, field constraints, egress inspection and output validation.
Hosted MCP · Next.js on VercelStateless Streamable HTTP POST at /api/mcp. Authenticated evidence review and rule suggestions; public synthetic samples.
Nebius Token FactoryOpenAI-compatible inference using nvidia/nemotron-3-super-120b-a12b with structured JSON output.
Upstash RedisDurable aggregate call reservations in capped mode. Explicit owner-configured uncapped testing mode bypasses this counter; authentication remains required.

Evidence and data handling

Hosted action review receives task intent, agent explanation, paths and supported evidence. Raw write bodies are omitted. JSON field values are disclosed only through explicit policy schemas. Vercel receives client-observed evidence and cannot independently verify the local filesystem. Results are advisory and marked non-executable.

The companion validates model findings against its analysis. Exact field-preservation constraints are enforced deterministically; the model cannot override them. Arbitrary source-code behavior is not proven by this analysis.

Supported operations and bounds

This release supports one trusted local workspace on macOS or Linux. Native Read, whole-file Write and Delete have adapters. Opt-in shell inspection recognizes selected literal read-only commands and checks every stage and branch against exact file grants.

Arbitrary scripts, package managers, redirects and network-capable shell operations remain unsupported. Search and other host paths may not deliver hook events. This is not an OS sandbox, universal interception or a zero-egress guarantee.

Hosted requests are bounded to 32 KiB. Inference uses a 45-second provider timeout and at most 1,800 output tokens. Required review failure denies the action. Pending native decisions expire rather than automatically approving.

Inspect the implementation

Source, tests and MIT license ↗ · Installation · Privacy · Evaluation guide