Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Renn CopilotNew to Visual Studio Code? Get it now.
Renn Copilot

Renn Copilot

RENNXVIII

|
13 installs
| (0) | Free
Self-contained CLIProxyAPI dashboard + BYOK model sync for GitHub Copilot Chat, entirely inside VS Code -- no separate terminal or browser tab needed.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Renn Copilot

Bring your own models to GitHub Copilot Chat — all inside VS Code.

Inject Gemini, Claude, OpenAI/Codex, xAI/Grok, and any OpenAI-compatible model into Copilot Chat through CLIProxyAPI. No separate terminal. No browser tab. No extra process to babysit.


Version VS Code Local-first License


Why Renn Copilot

  • One extension, zero moving parts. The backend and dashboard ship inside the .vsix. Install it and everything else starts itself.
  • Local-first & private. The backend runs on your own machine — it is not a public, multi-tenant service.
  • Plays nice with your config. It is the only thing that touches chatLanguageModels.json, and it edits only the single entry it owns — it never clobbers models you configured yourself.

Supported providers

Provider Login method
Antigravity (Gemini) Built-in OAuth
Claude (web / Claude Code) Built-in OAuth
Codex (OpenAI) Built-in OAuth
xAI / Grok Device-code flow (SuperGrok / X Premium+)
API keys Paste and go
Custom OpenAI-compatible Add a base URL + key

Gemini CLI, Qwen, and iFlow have a caveat — see Known gaps.


Quick start

  1. Install the .vsix (Extensions panel → ⋯ → Install from VSIX). The backend starts automatically; nothing else to install.
  2. Open the dashboard — Command Palette → Renn Copilot: Open Dashboard, or click the Activity Bar icon.
  3. Install the binary — on the Overview page, click Install binary (use Update version later when a newer release ships).
  4. Log in — on Providers & Login, sign in or paste an API key per provider. Antigravity, Claude, and Codex open their auth pages; xAI shows a device code in the dashboard; custom providers can be added directly.
  5. Pick models — on Models, toggle what Copilot Chat should see.
  6. Sync — models sync on startup, or run Renn Copilot: Sync Models from Dashboard any time. Reload VS Code if its model picker doesn't refresh, then enable the Renn Copilot entries under Manage Models….

With the default rennCopilot.requireApiKey: false, no proxy key is needed. If you enable it, a changed sync copies the generated key to your clipboard — paste it when VS Code prompts for the Renn Copilot Custom Endpoint key.


The dashboard

Open it as a full editor tab (Command Palette → Open Dashboard) or as a compact Activity Bar sidebar.

Page What it does
Overview Install/update the CLIProxyAPI binary for your OS, compare installed vs. latest release, start/stop/restart, and watch status, health, and token trends — plus a top-model KPI, a success/fail meter, request mix by provider, and the runtime PID / management endpoint.
Providers & Login Log in to Antigravity, Claude, Codex, or xAI; add API keys and custom providers; manage credential groups, enablement, and quota reset. Header shows connected/inactive credential counts at a glance.
Models Toggle which models reach Copilot Chat — per-provider and global, with search, live vision verification, and manual Vision overrides. Header summarizes enabled/total models across providers.
Usage Token usage by provider/model (sortable, filterable, with cost estimate) plus account and OAuth/API-key health, and a success-rate meter across all credentials.
Activity A live-ish "neuron" view of your models — each one lights up as it's hit, sourced from usage (near-live, typically within ~15s).
Logs Live tail of CLIProxyAPI's request log and the backend's process log, with search, copy, and download.
Config Raw config.yaml editor (hidden by default) and routing strategy (round-robin / fill-first).

The sidebar is a deliberate, focused summary — server status with Start/Stop/Restart, a one-line health line, the enabled-model count, and quick buttons for Sync Models / Copy API Key / Open Full Dashboard.


Settings

Setting Default What it does
rennCopilot.autoStartBackend true Spawn the backend when VS Code starts. Turn off to start it manually.
rennCopilot.autoStartServer true Once the backend is up, auto-start the CLIProxyAPI server (like clicking Start). Takes effect after the binary is installed once.
rennCopilot.autoSyncOnStartup true Sync enabled models into Copilot's BYOK setting on startup.
rennCopilot.backendUrl http://127.0.0.1:4317 Base URL the extension, webview, and backend share. Change only for advanced setups (e.g. a custom port).
rennCopilot.requireApiKey false Require VS Code to authenticate to the local proxy with its generated key. Off by default because some VS Code builds never show the key prompt. Enable only if your build prompts for and sends the key.

Commands

Command Purpose
Open Dashboard Open the dashboard as an editor tab.
Start / Stop Backend Manual control (handy when autoStartBackend is off).
Sync Models from Dashboard Re-sync the enabled model list into Copilot's BYOK setting.
Copy API Key to Clipboard Paste into VS Code's Chat: Manage Language Models dialog.
Show Provider Account Health Quick-pick status of every stored credential.
Enable / Remove RTK for Copilot (Global / Workspace) Wire (or unwire) the RTK token-saving hook for GitHub Copilot.

RTK — token savings for GitHub Copilot

RTK (Rust Token Killer) is a short-lived CLI that GitHub Copilot invokes through its official PreToolUse hooks to rewrite tool/bash output before it reaches the model, cutting token usage. It is not a daemon or a network proxy — there is no server to start or stop. RTK is distributed under Apache-2.0; Renn only downloads official release binaries and runs the official rtk init / rtk gain commands.

Open the RTK page in the dashboard to enable it in one click.

  • Platforms. Managed binaries are provided for Windows x64, macOS (x64 / arm64), and Linux (x64 / arm64). Other combinations (e.g. Windows arm64) show an unsupported platform notice since RTK ships no official build.
  • What Renn installs. A managed rtk binary under the extension's global storage, verified against the release checksums.txt (SHA-256) and validated before use. Archive entries are checked for path-traversal before extraction.
  • PATH ownership. Copilot's generated hook calls rtk by name, so the binary must be resolvable on PATH. On Windows, Renn adds its managed bin folder to your user PATH (a VS Code restart is then required). On macOS/Linux, Renn creates a ~/.local/bin/rtk symlink it owns — it never edits your shell profiles and never overwrites an existing non-Renn file there.
  • Scopes. Global wires Copilot everywhere (rtk init --global --copilot); Workspace wires only the current, trusted workspace (rtk init --copilot).
  • Conflicts. If a different executable named rtk is already on PATH, Renn uses/reports it but never modifies it.
  • Uninstall. Disable runs the official rtk init --uninstall to remove the Copilot hook and instructions. Delete managed binary removes only the binary Renn installed and the PATH entry / symlink Renn created — a user- or package-manager-installed rtk is never touched.
  • Analytics caveat. The savings percentages come from rtk gain and reflect reduction in the tool/bash output RTK processed — not your Copilot billing or subscription usage.

Vision capability detection

Renn Copilot doesn't ship a "complete" global list of vision models — such lists go stale fast and can't describe arbitrary custom providers. Instead it resolves image-input support in order:

  1. A per-model Vision / No vision manual override.
  2. A successful live verification — asks the model to identify a property of a small test image.
  3. Curated metadata for the handful of built-in models this project knows.
  4. Unknown for everything else.

The Models page checks availability without sending chat requests. A live vision check runs only when you click re-check or enable a model whose support is still unknown — it uses a small amount of real quota. Auth, rate-limit, quota, timeout, and upstream errors stay Unknown rather than being mislabeled No vision.

Each check has a 30-second deadline and runs with bounded concurrency. Models still marked Unknown are exported with vision: false; image attachments turn on only after positive evidence or an explicit override. For a custom provider, leave the selector on Auto, or pick Vision / No vision when its docs are definitive.


Building from source

Requires Node.js 18+.

# install dependencies (root, backend, webview)
npm install
npm install --prefix backend
npm install --prefix webview-ui

# build the .vsix (webview build + backend deps + vsce package)
npm run package

Install the generated .vsix, or press F5 with this repo open to run it in the VS Code Extension Development Host while iterating.

Tests

npm test --prefix backend       # backend capability / provider / migration tests
npm test --prefix webview-ui    # webview pure-util tests (e.g. Activity graph)
npm run compile                 # type-check the extension host
npm run webview:build           # build the dashboard

Run npm audit independently in the root, backend/, and webview-ui/.


Project layout

Path What it is
src/ The extension host — commands, status bar, backend lifecycle, and the dashboard's webview panel + sidebar.
backend/ A vendored Node/Express service. Installs and runs the CLIProxyAPI binary, bridges its Management API, and polls usage. Spawned automatically.
webview-ui/ The dashboard — a small React app rendered inside a VS Code webview, styled with VS Code theme variables, talking to backend/ over HTTP.

Troubleshooting

Logs page is empty for the "CLIProxyAPI" tab (400 logging to file disabled)

Harmless — CLIProxyAPI has request-logging-to-file turned off in its config.yaml. Either ignore it (the Backend tab still shows our own log), or enable it via the Config page by adding logging-to-file: true and saving.

A Claude model rejects temperature / top_p / top_k

CLIProxyAPI now normalizes these for Claude-family requests upstream (stripping temperature/top_p, plus top_k when extended thinking is active) before forwarding to Anthropic — no extra handling needed here. Make sure the backend is running and re-sync the affected model so its endpoint is current.


Known gaps

  • Gemini CLI / Qwen / iFlow OAuth aren't wired into the dashboard yet. CLIProxyAPI exposes ready-made OAuth endpoints for Antigravity, Anthropic, and Codex (and Renn Copilot implements xAI's device-code flow), but these three still need CLIProxyAPI's own CLI --login flags on the backend machine.
  • Custom OpenAI-compatible providers vary in metadata and error behavior. When a provider doesn't expose definitive vision metadata, use live verification or a manual override on the Models page.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft