Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>InsiPilotNew to Visual Studio Code? Get it now.
InsiPilot

InsiPilot

Preview

Duong Kien

| (0) | Free
Your Code. Your Models. Your Control. A self-hosted AI coding assistant.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

InsiPilot

Your Code. Your Models. Your Control.

InsiPilot is a self-hosted AI coding assistant for Visual Studio Code. It runs against your own Ollama server, locally or on a remote GPU machine. Your code is never sent to a third-party service.

What it can do

Ask about the project you have open, or ask for a change. InsiPilot works the way a developer does, one step at a time, and each step appears as a card in the chat:

You ask InsiPilot
About the code ("what does totalWithDiscount do?") finds the code you named (or picks the relevant files), reads it, answers from it
For bugs ("any bugs in src/?") reads the code in scope, runs the tests as evidence, lists bugs with file:line
For a change ("fix…", "add…", "rename…") finds and reads the code, runs the tests, makes the change, runs the tests again and fixes what the change broke
To make the tests pass runs them, fixes the failures, runs them again (up to three rounds)

The model is asked only for the part of each step that needs it, with the tools that step needs. Small local models lose their way when they must plan everything themselves; one job at a time they do much better. The status line shows the current step. Set insipilot.workflow to agent to let the model drive every step itself instead.

A code map (the functions and classes of each source file, with line numbers) is part of what InsiPilot knows about the project from the start. The tools:

Tool What it does
list_files Shows the project layout, skipping node_modules, dist, .git and similar folders.
read_file Reads a file (up to 400 lines per call), including unsaved changes in open editors.
search_code Searches file contents with ripgrep and respects .gitignore.
git_diff Shows git status and your unstaged or staged changes.
get_diagnostics Shows the errors and warnings VS Code reports.
edit_file Changes part of a file (replaces one exact piece of text, or appends to the end).
write_file Creates a new file. It never overwrites an existing one.
run_command Runs a command in the project, such as the tests, and reads the output. Asks first.
update_plan Keeps a checklist for multi-step tasks. Only for models of 14B or more (see insipilot.planning).

Reviewing changes: every edit appears above the input box as a colored diff with Accept and Reject (and Open diff for VS Code's diff editor). Nothing is written until you accept. Changes go through the editor, so Cmd+Z works and a file with unsaved edits stays unsaved. Under each reply that changed files, Undo puts all of them back as they were before that reply. Set insipilot.autoApproveEdits to skip the review.

Running commands: before a command runs, it appears above the input box with Run, Always allow and Reject. Always allow remembers that exact command for the current workspace; insipilot.allowedCommands allows commands everywhere. A command allowed this way may add plain arguments (npm test -- cart) but never chain another command. Commands run in the workspace folder, stop after 2 minutes (or when you press Stop), and some are refused outright (sudo, deleting the root or home folder, formatting disks, shutting down). InsiPilot finds the usual test command (npm test, pytest, python3 -m unittest, go test, cargo test) and runs it to check its changes.

InsiPilot never writes inside .git or node_modules.

Project instructions: put your conventions in AGENTS.md (shared with other coding agents) or .insipilot/INSTRUCTIONS.md (InsiPilot only); both are read at the start of each chat.

History: every chat is saved in .insipilot/sessions/ of the workspace (in VS Code's storage when no folder is open). Open or delete earlier chats with the history button in the view's title bar. A .insipilot/.gitignore keeps the sessions out of git; HANDOFF.md can still be committed.

Long chats: the context window starts small and grows as the chat needs it (up to the model's maximum). When a chat fills most of it, older turns are summarized by the model, keeping the last two exchanges word for word.

Commands: type / at the start of the input box.

Command What it does
/handoff Writes a checkpoint of this session to .insipilot/HANDOFF.md in the workspace: goal, completed and in-progress work, decisions, findings and next steps. The repository state section and timestamp come from git, not from the model. The file is overwritten each time; nothing is committed.
/standup Reads .insipilot/HANDOFF.md and the current git state, reports where things stand (previous work, current state, pending, blockers, next task) and waits. The report stays in the conversation as context. Add a language, e.g. /standup tiếng Việt.
/clear Clears the conversation, like New Chat.

A typical day: /standup when you start, work, /handoff before you stop or clear the chat.

Context: the file in your active editor is sent with your message. If you selected code, the selection is sent; click its chip in the input box to leave it out. To attach more files, type @ (or click +) and pick a file from the list.

Model: pick the model from the menu at the bottom of the input box. Its dot shows whether Ollama is reachable, and the ring next to the send button shows how full the context window is.

Safety: tools can only reach files inside the open workspace folders, symlinks included. Files that often hold secrets (.env, private keys, .ssh, .npmrc, ...) are excluded from search, and reading one asks for your approval.

Without an open folder, InsiPilot works as plain chat.

Requirements

  • Install Ollama first. InsiPilot does not install it for you. You need Ollama 0.9.0 or newer, running locally (http://localhost:11434) or on a server you control. If Ollama is missing on this machine, the InsiPilot sidebar shows a Download Ollama button.
  • The model qwen2.5-coder:7b. InsiPilot checks for it on startup and keeps chat disabled until it is installed. Click Install in the InsiPilot sidebar to download it (several GB).

Settings

Setting Default Description
insipilot.endpoint http://localhost:11434 Ollama endpoint. Use a remote server for GPU inference.
insipilot.model qwen2.5-coder:7b Chat model. Must support tool calling.
insipilot.requiredModels ["qwen2.5-coder:7b"] Models that must be installed before chat is enabled.
insipilot.contextLength 0 (auto) Context window (num_ctx). 0 starts at 8192 and grows on demand up to the model's maximum, capped at 32768 (32768 for qwen2.5-coder:7b). A number fixes the window. See Using less memory.
insipilot.autoApproveEdits false Write changes without asking. Undo still works per reply.
insipilot.allowedCommands [] Commands that run without asking, in every workspace, e.g. npm test.
insipilot.keepAlive empty (5 min) How long Ollama keeps the model in memory after a reply, e.g. 1m or 0.
insipilot.workflow guided guided: step by step as above. agent: the model decides every step.
insipilot.planning auto Plan multi-step tasks as a checklist; auto means models of 14B or more.
insipilot.think false Let reasoning models such as qwen3 think before answering.

Using less memory

With qwen2.5-coder:7b, the model weights take about 4.7 GB. On top of that Ollama keeps a cache for the context window; measured on an M2 Pro at a 32768-token window:

Ollama settings Context cache
Default about 1.9 GB
OLLAMA_FLASH_ATTENTION=1, OLLAMA_KV_CACHE_TYPE=q8_0, OLLAMA_NUM_PARALLEL=1 about 1.1 GB

Generation speed was the same in both cases. Set all three: with flash attention and q8_0 alone, Ollama chose two parallel slots and the cache grew back to about 2 GB. (ollama ps shows a larger figure, 10.9 GB at 32768; that is Ollama's own estimate, not the memory it uses.)

These are settings of the Ollama server, not of InsiPilot. On macOS, set them for Ollama and restart it:

launchctl setenv OLLAMA_FLASH_ATTENTION 1
launchctl setenv OLLAMA_KV_CACHE_TYPE q8_0
launchctl setenv OLLAMA_NUM_PARALLEL 1
brew services restart ollama   # or quit and reopen the Ollama app

launchctl setenv lasts until you log out or restart. Other ways to save memory: a smaller fixed insipilot.contextLength (for example 16384), and a short insipilot.keepAlive (for example 1m) so the model leaves memory soon after you stop chatting.

Remote Ollama

Ollama has no authentication, so do not expose its port to untrusted networks. Use an SSH tunnel:

ssh -N -L 11435:localhost:11434 user@gpu-server

and set insipilot.endpoint to http://localhost:11435. Models you install from InsiPilot are then downloaded on the server.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft