NIM Code
AI coding assistant for VS Code, powered exclusively 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 Llama, Qwen, DeepSeek, Nemotron, and more without leaving your editor.

Features
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; and opens files directly in your editor.
12 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 |
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 |
| 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 |
| 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 |
Slash commands
Type / in the chat input to trigger context-aware prompts using your active editor selection:
| Command |
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 |
Restructure code for readability and maintainability |
/optimize |
Improve performance and reduce complexity |
/test |
Generate unit tests for the selection |
/document |
Write JSDoc / docstring comments for the selection |
Streaming responses
Responses stream token-by-token so you see output immediately, with full cancel support mid-stream.
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
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.
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.
Supported Models
NIM Code comes with one curated model. Add any model from build.nvidia.com via the + button or Settings → NIM Code → customModels — no extension update needed.
| Model |
Context |
Best for |
meta/llama-3.1-8b-instruct (default) |
131K |
Fast answers, low latency |
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 |
microsoft/phi-3.5-mini-instruct |
128K |
Lightweight, fast |
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 |
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",
// Default model for new sessions
"nimcode.defaultModel": "meta/llama-3.1-8b-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,
// 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. |
| Chat data |
Sent only to integrate.api.nvidia.com (or your custom baseUrl). 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
Run NIM Code: Set NVIDIA NIM API Key from the Command Palette.
Slow or no response with reasoning models (DeepSeek R1, Nemotron)
Increase nimcode.requestTimeoutMs to 300000 in Settings — reasoning 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 (free tier available)
- Node.js 20+ (development only)
Contributing
Bug reports and feature requests: GitHub Issues
See ROADMAP.md for the planned feature roadmap and gap analysis.
Local development
git clone https://github.com/vijayjanakiraman/nim-code
cd nim-code
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