Codesteward Audit Proxy

March 23, 2026 · View on GitHub

Codesteward

Codesteward Audit Proxy — IDE Plugins

Companion plugins for VSCode and JetBrains IDEs that configure the Codesteward audit proxy, inject identity metadata, and provide observability into what headers are being forwarded to AI coding agents.

Why?

The Codesteward audit proxy intercepts LLM API traffic and records structured audit events. But in a centrally-hosted deployment, the proxy doesn't know who is making the request, which repo they're in, or which branch they're on.

These plugins solve that by automatically injecting X-Audit-* headers with identity metadata into every request your AI coding agents make.

Features

  • Proxy configuration — Set the proxy URL once; the plugin configures all your AI agents automatically
  • Identity injection — Auto-detects your git email, project name, and branch
  • Header inspector — Panel showing exactly what headers are active and how each agent is configured
  • Proxy health monitoring — Periodic health checks with status bar indicator
  • Branch tracking — Automatically updates headers when you switch git branches
  • Team config — Commit a .codesteward.json to your repo so the whole team gets the same settings

Supported Agents

AgentVSCodeJetBrains
Claude Code CLIANTHROPIC_BASE_URL + ANTHROPIC_CUSTOM_HEADERSLocalTerminalCustomizer
Codex CLIOPENAI_BASE_URLLocalTerminalCustomizer
Gemini CLIGEMINI_API_BASE_URL + GEMINI_CLI_CUSTOM_HEADERSLocalTerminalCustomizer
AiderANTHROPIC_BASE_URL / OPENAI_BASE_URL + AIDER_EXTRA_HEADERSLocalTerminalCustomizer
Clineprocess.env mutation (in-process)N/A (JVM limitation)
Continueprocess.env mutation (in-process)N/A (JVM limitation)

Getting Started

1. Install the plugin

  • VSCode: Install from the Extensions marketplace or cd vscode && npm run package
  • JetBrains: Install from the Plugin marketplace or cd jetbrains && ./gradlew buildPlugin

2. Configure the proxy

On first launch, a notification will prompt you to set the proxy URL. Or add a .codesteward.json to your repository root:

{
  "proxy": {
    "url": "https://audit.corp.internal:8443",
    "enabled": true
  },
  "identity": {
    "team": "platform-engineering",
    "project": "payment-service"
  }
}

3. Open a new terminal

Your AI agents will now route through the audit proxy with identity headers attached.

Project Structure

.
├── vscode/                # VSCode extension (TypeScript)
│   ├── src/
│   │   ├── extension.ts       # Activation, lifecycle, commands
│   │   ├── config.ts          # Settings resolution
│   │   ├── identity.ts        # Git auto-detection
│   │   ├── agents.ts          # Per-agent env var mapping
│   │   ├── health.ts          # Proxy health polling
│   │   ├── sessionManager.ts  # Session ID lifecycle
│   │   ├── statusBar.ts       # Status bar item
│   │   └── headerInspector.ts # Header inspector panel
│   └── package.json

├── jetbrains/             # JetBrains plugin (Kotlin)
│   ├── src/main/kotlin/com/codesteward/
│   │   ├── CodestewardPlugin.kt
│   │   ├── settings/          # PersistentStateComponent + UI
│   │   ├── identity/          # Git detection via Git4Idea
│   │   ├── terminal/          # LocalTerminalCustomizer
│   │   ├── health/            # Health polling
│   │   ├── session/           # Session ID
│   │   ├── config/            # .codesteward.json reader
│   │   └── ui/                # Status bar + tool window
│   └── build.gradle.kts

├── assets/                # Shared branding (logo, icons)
└── ide-plugins-design.md  # Full design specification

Configuration

VSCode settings (codesteward.* namespace)

SettingDefaultDescription
proxy.urlhttp://localhost:8080Proxy base URL
proxy.enabledfalseEnable/disable the proxy
identity.user(auto-detect)User identity override
identity.project(auto-detect)Project name override
identity.branch(auto-detect)Branch name override
identity.team(empty)Team identifier
headers{}Additional custom headers
agents.*truePer-agent enable/disable
healthCheck.enabledtrueEnable health checks
healthCheck.intervalSeconds30Health check interval

JetBrains settings

Settings > Tools > Codesteward Audit Proxy. Same fields as VSCode, stored in .idea/codesteward.xml.

Settings priority

  1. Manual overrides in IDE settings
  2. Workspace settings
  3. .codesteward.json in repo root
  4. Auto-detected values (git user, repo name, branch)
  5. Plugin defaults

Status Bar

StateDisplayMeaning
Enabled, healthyCodestewardProxy reachable, headers injected
Enabled, unreachableCodesteward (!)Proxy configured but not responding
DisabledCodesteward (off)Plugin disabled

Click to toggle on/off.

Development

VSCode

cd vscode
npm install
npm run compile    # or npm run watch
# Press F5 to launch extension development host

JetBrains

cd jetbrains
gradle wrapper          # first time only — generates ./gradlew
./gradlew buildPlugin
# Run with: ./gradlew runIde

License

MIT