arf.io / ARF / IDE Plugins
ARF · IDE Plugins

Governance
where you work.

VS Code extension and JetBrains plugin. Approve or deny agent actions without leaving your editor. View governance status, inspect the audit trail, and open the TUI — from inside your IDE.

How It Works

Extensions connect to
the proxy over HTTP.

The ARF proxy runs locally at localhost:4554. Both IDE extensions connect to the proxy's HTTP API (/_arf/) to query governance state and handle HITL approvals.

When an agent calls a tool that requires approval (e.g. a file write under the require_approval rule), the proxy holds the request and sends a notification to connected IDE extensions. A panel appears in the editor. You approve or deny without leaving VS Code or IntelliJ.

The extension polls the proxy for pending approvals every 500ms. The proxy's timeout_secs setting determines how long the agent waits before the request auto-expires as denied.

Extension Architecture
  VS Code / JetBrains Extension
         │
         │  HTTP polling  (/_arf/approvals/pending)
         │  HTTP POST     (/_arf/approvals/:id/approve)
         │  HTTP POST     (/_arf/approvals/:id/deny)
         │  WebSocket     (/_arf/events) for live status
         ▼
  ARF Proxy  localhost:4554
         │
         │  governance engine
         │  HITL approval queue
         │  provenance chain
         ▼
  Backend API  (Anthropic / OpenAI / etc.)
VS Code Extension

ARF in the sidebar.
Approve from the editor.

Installation

# Install from VS Code Marketplace code --install-extension arf-io.arf-vscode # Or: open VS Code Extensions panel # Search: "ARF Agent Watchdog" # Click Install # Build from source git clone https://github.com/arf-io/arf-vscode cd arf-vscode npm install npm run compile # Press F5 in VS Code to launch Extension Development Host

Configuration

// .vscode/settings.json { "arf.proxyUrl": "http://localhost:4554", "arf.autoConnect": true, "arf.showStatusBar": true, "arf.approvalNotifications": "panel" }
Features
  • ✓ Status bar: proxy on/off, active agent count, health grade
  • ✓ HITL panel: approve / deny pending tool calls with one click
  • ✓ Governance sidebar: active rules, circuit breaker status
  • ✓ Audit view: recent events, filterable by type
  • ✓ Session panel: running agents, token counts, health grades
  • ✓ Open TUI: launches arf tui in integrated terminal
  • ✓ File hover: shows ARF provenance info for the current file
  • ◌ Inline diff: agent changes annotated in the editor (planned)

Command Palette

ARF: Connect to proxy
ARF: Disconnect
ARF: Open TUI
ARF: Show governance status
ARF: Show pending approvals
ARF: Show audit trail
ARF: Export proof bundle
ARF: Kill all agents
JetBrains Plugin

IntelliJ. PyCharm.
GoLand. WebStorm. Rider.

Installation

# Install from JetBrains Marketplace # Settings → Plugins → Marketplace # Search: "ARF Agent Watchdog" # Click Install → Restart IDE # Build from source git clone https://github.com/arf-io/arf-jetbrains cd arf-jetbrains ./gradlew buildPlugin # Install: Settings → Plugins → Install plugin from disk # select build/distributions/arf-jetbrains-*.zip

Supported IDEs

  • IntelliJ IDEA (Community & Ultimate)
  • PyCharm (Community & Professional)
  • GoLand
  • WebStorm
  • Rider (.NET / C#)
  • RubyMine
  • CLion (C/C++)
Features
  • ✓ Tool window: ARF status panel docked in IDE
  • ✓ HITL notifications: approve / deny as IDE notifications
  • ✓ Governance view: rule list, breaker status
  • ✓ Audit log viewer: filterable event list
  • ✓ Session list: active and recent sessions
  • ✓ Open TUI: launches in a new terminal tab
  • ✓ Git integration: shows ARF session ID in VCS log

Configuration

# Settings → Tools → ARF Agent Watchdog # Fields: # Proxy URL: http://localhost:4554 # Auto-connect: true # Show tool window: true # Approval timeout: 30 (seconds) # Notification type: balloon | tool window | both
Human-in-the-Loop from the IDE

Agent asks. You decide.
Never leave the editor.

When an agent calls a tool covered by a require_approval rule, the proxy holds the request. The IDE extension shows an approval notification.

In VS Code, a panel opens in the sidebar showing the tool call, the file path, and the full diff preview. In JetBrains, a balloon notification appears with Approve/Deny buttons, and the ARF tool window shows the full details.

Your approval or denial is recorded in the provenance chain with your identity and a timestamp. The agent receives the result and continues (or stops).

ARF APPROVAL REQUEST
Agent: IRON-WOLF-7 (claude)
Rule: approve-file-writes
Tool: Write → src/auth/session.ts
- const token = Math.random().toString(36);
+ const token = crypto.randomUUID();
[Approve] [Deny]
Expires in: 28s