NIM Code
AI coding assistant for VS Code, powered by NVIDIA NIM.
Chat, explain, refactor, and fix code with state-of-the-art models — all routed through a single NVIDIA API key. Switch between Qwen, Kimi, Nemotron, GLM, DeepSeek, and more without leaving your editor.
No API key? Start instantly with Auto mode — 30 free requests per day, no sign-up required.

Features
✦ Auto mode — free tier, no key needed
Start chatting immediately without an NVIDIA API key. Auto mode uses a built-in proxy powered by Llama 3.1 8B via the NIM Code infrastructure.
| Detail |
Value |
| Model |
Llama 3.1 8B Instruct |
| Daily limit |
30 free requests (resets at midnight UTC) |
| API key required |
No |
| Capabilities |
Chat only |
| Counter |
Shown live in the chat bar: X/30 free today |
Note: Auto mode is a Beta feature. For agent tools, file operations, and the full model library, switch to Chat or Agent mode with your own NVIDIA NIM key.
Multi-model chat
Pick any NVIDIA NIM model from the dropdown. Add your own model IDs through the + button — no extension update required.
Agent mode
Let NIM Code act autonomously on your workspace. It reads, searches, writes, and refactors files; runs terminal commands; queries git; runs code reviews; tracks its own progress; and opens files directly in your editor.
16 built-in agent tools:
| Category |
Tool |
What it does |
| Files |
read_file |
Read any file in your workspace |
| Files |
list_files |
List files and folders in a directory |
| Files |
write_file |
Create or overwrite a file with generated content |
| Files |
edit_file |
Make a targeted edit by replacing an exact snippet of a file's content |
| Files |
delete_file |
Delete a file from the workspace |
| Files |
rename_file |
Rename or move a file within the workspace |
| Search |
search_codebase |
Ripgrep-powered search — returns file paths, line numbers, and matching content |
| Search |
search_codebase_semantic |
Natural-language search over a local embedding index of your workspace |
| Terminal |
run_terminal |
Execute any shell command (30 s timeout) |
| Git |
git_status |
Show modified, staged, and untracked files |
| Git |
git_diff |
Show uncommitted changes, optionally scoped to one file or staged only |
| Git |
git_log |
Show recent commit history |
| Review |
review_code |
Run a focused review (general or security) over a file or the current diff |
| Editor |
get_diagnostics |
Read VS Code errors and warnings from the Problems panel |
| Editor |
open_file_in_editor |
Open a file and jump to a specific line number |
| Planning |
todo_write |
Maintain a structured todo list, shown to you as a live checklist while the agent works |
Right-click code actions
Select any code, then right-click (or press Ctrl+. for the Quick Fix lightbulb) to jump straight into Explain, Fix, Review, Refactor, Generate Tests, or Document — each opens the chat panel with the matching slash command pre-filled using your selection.
MCP (Model Context Protocol) support
Connect your own local MCP servers (stdio transport) via nimcode.mcpServers in Settings. Each server's tools are merged into Agent mode's tool roster, namespaced as mcp__<server>__<tool>, so the agent can call out to your own tools alongside the 16 built-ins. See Configuration.
Choose how much confirmation Agent mode needs before acting — Manual, Edit automatically, Auto, or Plan (read-only investigation with no file/shell access) — via the approval-mode dropdown next to the model picker. File writes show a VS Code diff editor to review before applying.
Live agent task list
For multi-step tasks, the agent maintains a visible todo checklist (via the todo_write tool) that updates in place as it works through each step, so you can follow along without reading every tool call.
Reasoning effort control
For reasoning-capable models, pick Low, Medium, or High effort from the dropdown next to the model picker to trade off response speed against depth of reasoning.
Semantic codebase search
Run NIM Code: Index Codebase for Semantic Search from the Command Palette to build a local embedding index of your workspace (via nimcode.embeddingModel). Once built, the agent's search_codebase_semantic tool can find relevant code by meaning, not just keyword — useful for "where do we handle X" style questions.
Image attachments (vision)
Paste a screenshot directly into the chat input to attach it to your message — handy for sharing UI bugs, error dialogs, or design mockups. Requires a model with the vision capability (built-in or added via customModels); up to 4 images per message.
AI-generated commit messages
Click the sparkle icon in the Source Control view's title bar (or run NIM Code: Generate Commit Message) to fill the commit message box with a Conventional Commits message generated from your staged (or working-tree) diff.
Slash commands
Type / in the chat input to trigger context-aware prompts using your active editor selection:
| Command |
Alias |
Description |
/explain |
|
Explain what the selected code does |
/fix |
|
Find and fix bugs in the selection |
/review |
|
Code-review the selection for quality and correctness |
/refactor |
/ref |
Restructure code for readability and maintainability |
/optimize |
/opt |
Improve performance and reduce complexity |
/test |
|
Generate unit tests for the selection |
/document |
/doc |
Write JSDoc / docstring comments for the selection |
/debug |
|
Diagnose an error or stack trace |
/commit |
|
Generate a conventional commit message for the current diff |
/summary |
|
Summarize what a file or directory does |
/security |
|
Review code for security vulnerabilities |
/migrate |
|
Migrate code to a new version or framework |
/pr |
|
Generate a pull request title and description |
Streaming responses
Responses stream token-by-token so you see output immediately, with full cancel support mid-stream.
Copy code blocks
Every code block in the chat output has a Copy button always visible in the header bar. Click it to copy the code to your clipboard in one click, or use Insert (appears on hover) to paste it directly at the cursor.
Token budget indicator
A context-window usage bar appears below the message list, showing how much of the model's context has been consumed by the current conversation. Color shifts from green → amber → red as you approach the limit.
Secure API key storage
Your NVIDIA NIM API key is stored in the OS keychain via VS Code SecretStorage — never in settings files or workspace storage.
Persistent sessions
All conversations are saved locally and accessible from the session list (☰). Rename, delete, or switch between sessions at any time.
Quick Start
Option A — No API key (Auto mode)
- Install NIM Code from the VS Code Marketplace.
- Click the N icon in the Activity Bar (or press
Ctrl+Shift+N).
- The mode toggle defaults to ✦ Auto — start typing and press Enter to send.
You get 30 free requests per day. The counter in the chat bar shows how many remain.
Option B — Full access (Chat & Agent modes)
1. Get an NVIDIA NIM API key
- Sign up at build.nvidia.com
- Go to API Keys → Generate Personal Key
- Copy the key (starts with
nvapi-)
2. Install NIM Code
Search "NIM Code" in the Extensions panel (Ctrl+Shift+X) or install from the VS Code Marketplace.
3. Set your API key
Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) and run:
NIM Code: Set NVIDIA NIM API Key
Paste your nvapi-… key when prompted.
4. Start chatting
Click the N icon in the Activity Bar, or press Ctrl+Shift+N / Cmd+Shift+N.
Modes
| Mode |
Icon |
API key |
Model |
Tools |
Best for |
| Auto |
✦ |
Not required |
Llama 3.1 8B (built-in) |
Chat only |
Quick questions, 30 free/day |
| Chat |
💬 |
Required |
Any NIM model |
Chat only |
Q&A, explanations, code review |
| Agent |
⚡ |
Required |
Any NIM model |
All 16 tools (+ MCP) |
Multi-step tasks, file edits |
Switch modes with the segmented toggle in the chat bar. The mode hint below the toggle summarises the current capabilities.
Agent Mode
Switch the mode toggle in the chat input to ⚡ Agent. NIM Code will plan and execute multi-step tasks autonomously, showing each tool call as it runs.
Example prompts:
- "Search for all
TODO comments in .ts files and fix them one by one"
- "Run
pnpm run lint, find the errors with get_diagnostics, and fix them all"
- "Show me
git_diff, then write a conventional commit message for these changes"
- "Read
src/api/users.ts, add Zod input validation, and open the file when done"
- "List all
.test.ts files, find untested functions with search_codebase, and write the missing tests"
Tip: Use 💬 Chat mode for questions and explanations. Use ⚡ Agent for tasks that require reading or changing files.
The Mode dropdown next to the model picker (visible in Agent mode) controls how much confirmation the agent needs before acting:
| Mode |
File edits (write/rename) |
Deletes & terminal commands |
| Manual |
Asks for approval |
Asks for approval |
| Edit automatically |
Applies immediately |
Asks for approval |
| Auto |
Applies immediately |
Asks for approval |
| Plan |
Blocked — read-only |
Blocked — read-only |
When a confirmation is required, NIM Code opens a VS Code diff editor (for file writes) or a prompt describing the action, with Accept/Reject buttons — reject and the agent reports it and adjusts its approach. Plan mode never touches the filesystem or shell; the agent investigates and proposes a plan as text instead.
Supported Models
NIM Code ships with six curated models. Add any model from build.nvidia.com via the + button or Settings → NIM Code → customModels — no extension update needed.
| Model |
ID |
Context |
Best for |
| Llama 3.1 8B (Auto mode) |
Built-in proxy |
128K |
Free tier — no key needed |
| GLM 5.2 |
z-ai/glm-5.2 |
131K |
ZhipuAI — strong reasoning and code |
| Nemotron Super 120B |
nvidia/nemotron-3-super-120b-a12b |
131K |
NVIDIA-tuned reasoning and code |
| Qwen3 Next 80B (default) |
qwen/qwen3-next-80b-a3b-instruct |
131K |
Fast MoE — coding and reasoning |
| Kimi K2.6 |
moonshotai/kimi-k2.6 |
131K |
Long-context multilingual model |
| DeepSeek V4 Flash |
deepseek-ai/deepseek-v4-flash |
131K |
Fast, efficient coding assistant |
| Llama 3.2 11B Vision |
meta/llama-3.2-11b-vision-instruct |
131K |
Understands pasted screenshots and images |
Popular models to add via customModels:
| Model ID |
Context |
Best for |
meta/llama-3.3-70b-instruct |
128K |
Latest Llama, strong coding |
qwen/qwen2.5-coder-32b-instruct |
32K |
Code generation |
deepseek-ai/deepseek-r1 |
64K |
Step-by-step reasoning |
nvidia/llama-3.1-nemotron-70b-instruct |
128K |
NVIDIA-tuned Nemotron 70B |
mistralai/mistral-large-2-instruct |
128K |
Multilingual, strong tool use |
Commands & Keyboard Shortcuts
| Command |
Shortcut (Win/Linux) |
Shortcut (Mac) |
Description |
NIM Code: Open Chat |
Ctrl+Shift+N |
Cmd+Shift+N |
Open or focus the NIM Code chat panel |
NIM Code: New Chat Session |
Ctrl+Shift+L |
Cmd+Shift+L |
Start a fresh conversation |
NIM Code: Set NVIDIA NIM API Key |
— |
— |
Save your API key securely |
NIM Code: Clear NVIDIA NIM API Key |
— |
— |
Remove the stored key |
NIM Code: Generate Commit Message |
— |
— |
Fill the SCM commit box from the current diff |
NIM Code: Index Codebase for Semantic Search |
— |
— |
Build the local embedding index for search_codebase_semantic |
| Explain / Fix / Review / Refactor / Generate Tests / Document |
— (right-click or Ctrl+.) |
— |
Run a slash command on the current editor selection |
| Send message |
Enter |
Enter |
Send the typed message |
| New line in message |
Shift+Enter |
Shift+Enter |
Insert a line break without sending |
| Browse history |
↑ / ↓ |
↑ / ↓ |
Navigate previously sent messages |
All commands are also accessible via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) — search "NIM Code".
Configuration
Open Settings (Ctrl+,) and search "NIM Code", or edit settings.json:
{
// Base URL for the NVIDIA NIM API — change for on-premise deployments
"nimcode.baseUrl": "https://integrate.api.nvidia.com/v1",
// Fallback default model, overridden by defaultChatModel / defaultAgentModel
"nimcode.defaultModel": "qwen/qwen3-next-80b-a3b-instruct",
// Model selected automatically when Chat mode is active
"nimcode.defaultChatModel": "qwen/qwen3-next-80b-a3b-instruct",
// Model selected automatically when Agent mode is active — use a strong tool-use model
"nimcode.defaultAgentModel": "qwen/qwen3-next-80b-a3b-instruct",
// Per-request timeout in milliseconds (default: 120 000 = 2 min)
// Increase to 300 000 for reasoning models like DeepSeek R1
"nimcode.requestTimeoutMs": 120000,
// Automatic retry attempts on transient errors (0–5)
"nimcode.maxRetries": 2,
// Sampling temperature — lower = more deterministic (0–2)
"nimcode.temperature": 0.2,
// In Agent mode, auto-include the active file (path + cursor snippet) as
// context when no explicit selection is attached (default: true)
"nimcode.agentIncludeActiveFile": true,
// Embedding model used to build the local semantic codebase index
// ("NIM Code: Index Codebase" command) and the search_codebase_semantic tool
"nimcode.embeddingModel": "nvidia/nv-embedqa-e5-v5",
// Additional models shown in the picker
"nimcode.customModels": [
{
"id": "meta/llama-3.3-70b-instruct",
"label": "Llama 3.3 70B",
"contextWindow": 128000,
"capabilities": ["chat", "tools"]
}
]
}
On-premise / self-hosted NIM
"nimcode.baseUrl": "http://localhost:8000/v1"
Everything else — API key, model IDs, streaming, tool use — works identically against a local NIM deployment.
NIM Code opens in the left Activity Bar by default. To place it on the right (like GitHub Copilot Chat):
- Right-click the N icon in the Activity Bar
- Select Move to Secondary Side Bar
VS Code remembers this permanently.
Privacy & Security
| Concern |
How NIM Code handles it |
| API key |
Stored in the OS keychain (VS Code SecretStorage). Never written to disk or settings files. |
| Auto mode key |
Baked into the extension bundle at build time. Routed only through the NIM Code proxy — your traffic is not logged or stored. |
| Chat data |
Sent only to integrate.api.nvidia.com (or your custom baseUrl) in Chat/Agent mode. No telemetry collected. |
| Webview |
Runs under a strict Content Security Policy — no external network requests from the UI layer. |
| Agent file access |
All file operations are scoped to your VS Code workspace root. |
Troubleshooting
"Set your NVIDIA NIM API key to start" banner
This banner only appears in Chat or Agent mode. Switch to ✦ Auto mode to start chatting immediately with no key, or run NIM Code: Set NVIDIA NIM API Key from the Command Palette.
Auto mode daily limit reached
The 30-request counter resets at midnight UTC. Switch to 💬 Chat mode with your own NVIDIA NIM API key for unlimited usage.
Slow or no response with large models (Nemotron Super 120B, Kimi K2.6)
Increase nimcode.requestTimeoutMs to 300000 in Settings — large models can take several minutes on complex prompts.
Rate limit errors
NIM Code retries automatically with exponential backoff. Persistent errors indicate you have reached your NVIDIA NIM free-tier limit.
search_codebase fails
NIM Code uses VS Code's bundled ripgrep (rg) binary — no separate installation is needed.
Agent writes unexpected content
Use 💬 Chat mode with /review first to validate the model understands your codebase before switching to ⚡ Agent.
Requirements
- VS Code 1.90.0 or later
- An NVIDIA NIM API key for Chat and Agent modes (Auto mode requires no key)
- Node.js 20+ (development only)
Contributing
Bug reports and feature requests: vjwarboy13@gmail.com
Local development
pnpm install # install all dependencies
pnpm run build # compile extension + webview
# Press F5 in VS Code to launch the Extension Development Host
For incremental development, run these in two separate terminals:
pnpm run watch:webview # Vite --watch for the React UI
pnpm run watch:extension # esbuild --watch for the extension host
Scripts
| Script |
Purpose |
pnpm run build |
Full production build (webview + extension host) |
pnpm run watch:webview |
Rebuild webview on file changes |
pnpm run watch:extension |
Rebuild extension host on file changes |
pnpm run typecheck |
Type-check both tsconfigs without emitting |
pnpm run lint |
Run ESLint across all source files |
pnpm run format |
Auto-format with Prettier |
pnpm run test |
Run unit tests (Vitest) |
pnpm run test:e2e |
Run end-to-end tests (Playwright) |
pnpm run package |
Build and pack a .vsix installable file |
pnpm run publish |
Publish to the VS Code Marketplace |
License
MIT © 2026 Vijay