Nim Ext
An AI coding assistant for VS Code, powered by NVIDIA NIM.
Features
Chat sidebar — streaming responses, conversation history (search/pin/rename/delete/export/import), and an agentic tool-calling loop the model can use to:
- Read, create, and edit files in your workspace (
write_file and run_terminal_command always require your explicit approval before running — nothing touches disk or a shell without a click)
- Run terminal commands (builds, tests, installs, git)
- Attach an image (or paste one with Ctrl+V) — read directly by the model
- Attach a document (PDF, Word, PowerPoint, or plain text) — extracted and indexed into a local RAG index so the model can answer questions about it
- Search a RAG index built over your whole workspace (
Nim Ext: Index Workspace) for relevant code context automatically
20 one-shot AI commands, available from the Command Palette (and, where it makes sense, the editor right-click menu):
| Command |
What it does |
| Generate Code |
Writes code from a natural-language description |
| Explain Code |
Structured Purpose/Flow/Complexity/Suggestions breakdown |
| Fix Code |
Finds and fixes bugs, with a diff view and one-click Apply to File |
| Refactor Code |
Improves readability/performance/naming, same diff + Apply flow |
| Generate Unit Tests |
JUnit/TestNG/Mockito/Jest/PyTest, your choice |
| Generate Documentation |
README/JavaDoc/function comments/API docs |
| Review Code |
Security, performance, best practices, bug detection |
| Generate SQL |
Schema, queries, optimization, indexes |
| Generate Regex |
From a plain-language description |
| Generate Dockerfile |
For the current project |
| Generate Kubernetes YAML |
Deployment/service manifests |
| Generate Git Commit Message |
From the current diff, with an option to fill the SCM input box |
| Explain Stack Trace |
Paste a trace, get a plain-language explanation |
| Generate REST API |
Scaffold endpoints from a description |
| Generate GraphQL API |
Schema + resolvers from a description |
| Generate Selenium Automation |
Page Object Model, TestNG/JUnit/Playwright/Appium |
| Generate API Automation |
Rest Assured or Postman |
| Generate JMeter Script |
Load-test plan from a description |
| Generate XPath / CSS Selector |
From a description or HTML snippet |
| Set API Key / Clear API Key |
Manage your NVIDIA NIM key (stored in VS Code SecretStorage, never in settings.json) |
Architecture
src/extension/providers/ — AIProvider interface + NvidiaProvider (chat completions, embeddings, streaming, retry logic), selected via ProviderFactory.
src/extension/chat/ — the chat sidebar's webview provider: streaming, tool-call approval flow, RAG injection, image/document attachment.
src/extension/rag/ — local RAG index: chunking, embedding, cosine-similarity search, document text extraction (PDF/DOCX/PPTX).
src/extension/tools/ — the file/terminal tools exposed to the model during chat.
src/extension/commands/ — the 20 one-shot feature commands.
src/extension/config/ — settings + SecretStorage-backed API key management.
src/webview/ — the chat UI itself (vanilla TS, no framework), bundled separately from the extension host.
src/backend/ — an optional standalone Express REST API exposing the same chat/history/settings capabilities for non-VS-Code clients. Never bundled into the extension.
See docs/architecture.md for more detail, including diagrams.
Quick start
npm install
npm run build # bundles the extension host + webview
Press F5 in VS Code to launch an Extension Development Host with it loaded, or package it:
npx vsce package
code --install-extension nim-ext-0.1.0.vsix
Then run Nim Ext: Set API Key from the Command Palette and paste your NVIDIA NIM API key — it's stored in your OS keychain via VS Code SecretStorage, never written to disk in plain text.
Settings
| Setting |
Default |
Description |
aiCodingAssistant.provider |
nvidia |
Active AI provider (NVIDIA NIM is currently the only one) |
aiCodingAssistant.model |
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning |
NVIDIA NIM model identifier |
aiCodingAssistant.temperature |
0.2 |
Sampling temperature |
aiCodingAssistant.maxTokens |
4096 |
Max response tokens |
aiCodingAssistant.streaming |
true |
Stream chat responses |
aiCodingAssistant.systemPrompt |
"" |
Extra system prompt appended to every feature's built-in one |
See docs/installation.md, docs/deployment.md, and docs/security-notes.md for more.
Testing
npm test
Vitest unit + integration suite covering providers, storage, prompts, context formatting, RAG, and the backend REST API.
License
MIT — see LICENSE.
| |