PicoCodeAi also PicoCode is an AI coding assistant for VS Code with inline completions, chat, code actions, provider profiles, and PicoCode+ execution controls.
Important Notice
PicoCode can suggest, run, and apply code changes, but you are responsible for reviewing and validating all generated output.
Before using PicoCode on important projects:
- create a backup or use version control
- review generated edits before keeping them
- run tests or verification commands after changes
The authors do not accept responsibility for code loss, regressions, data loss, or other damage resulting from use of this extension.
New in v3.3.2
Bug Fixes
- PicoCode Chat now automatically refreshes the active VS Code workspace/folder when folders are opened, removed, or when the active editor moves to another workspace folder.
- Stale workspace URIs are ignored before chat execution, so the assistant falls back to the active editor folder or first open workspace folder.
New in v3.3.1
Performance
- Ripgrep-powered indexing: PicoCode now detects
rgin PATH and uses it to enumerate workspace files and pre-compute keyword hit counts insidecollectFolderContext. On large repositories this replaces the recursivereaddirSyncwalk with a native,.gitignore-aware scan, reducing indexing time by an order of magnitude. - Ripgrep-accelerated file lookup:
locateFileByName(used by@filenamereferences and explicit file mentions) now consultsrg --files -g '**/<name>'first, with the JS walk as fallback. - New setting
picocode.useRipgrep(boolean, defaulttrue). Whenrgis not installed, PicoCode silently falls back to the original walker. - New command
PicoCode: Show Ripgrep Statusreports detected version or installation hint. - Status bar tooltip shows ripgrep availability at a glance.
New in v3.3.0
Bug Fixes
- Fixed crash in chat webview where the execution-mode dropdown referenced a missing element (
executionSel), which broke initial UI hydration and the change-listener wiring. - Fixed
ReferenceErrorin MCP snapshot capture when an MCP server failed to start (stderrChunkswas out of scope inside the catch block); the captured tail is now propagated viaerror.stderrTail. - Wired
TokenTracker.recordUsagefrom every API call so the "Show Token Stats" command reports real data (uses provider-reported usage when available, character estimate otherwise) with a debounced save. - Persisted chat history through
historyManager.appendHistory, so the new Export/Import commands operate on real data. importHistorynow deduplicates entries by hash instead of blindly merging duplicates.request()and Ollama generate URL now respect base URLs that include a sub-path (e.g.http://host/ollama) viabuildProviderUrl.- Streaming SSE parsing strips trailing
\rfor servers that emit\r\nline endings. - Captured per-provider circuit breaker state (was previously global, so one bad provider tripped all the others).
runWorkspaceCommandAndCapturenow uses a 50 MB exec buffer andwindowsHide, preventing failures on largenpm test/tscoutputs.runCurrentFilenow uses a portable runner per platform, supportstsx/ts-nodefallback, and quotes paths correctly on Windows and POSIX.sanitizeRunCommanddenylist now matches whole tokens / contiguous phrases per sub-command instead of substrings, removing false positives like a path containing "del ".adaptiveConfig.countWorkspaceFilesnow has a 250 ms scan budget, fan-out cap, and cache so activation does not stall on monorepos.
New Features
- Real Claude model listing -
listModelsnow calls Anthropic's/v1/models(with API key) and falls back to a curated list when offline. - Per-provider circuit breakers keyed by provider id/url for better isolation.
- Configurable MCP rounds - new
picocode.mcpMaxRoundssetting controls how many tool-call cycles a single chat turn can run. - Multi-loop rollback stack - up to 10 previous loop snapshots are kept under
rollback-stack/for selective undo (listRollbackStack,readRollbackByName). - GPT-4o Support - Added GPT-4o model to model capabilities.
- Multi-line Inline Completions - Support for multi-line code completions.
- Auto Language Detection - Automatic detection of user language (English/Romanian).
- History Export/Import - Export and import chat history.
- Token Usage Tracking - Track token usage and costs per model.
- Context Window Visualization - See context window usage.
- Improved Inline Completions - Better debounce and context handling.
Features
- Inline completions while you type
- Chat panel with workspace-aware context
- Fix, explain, review, and run commands from the editor
- Multi-provider model support
- PicoCode+ rules, execution policies, and auto-fix loop controls
- Local model support through Ollama and LM Studio
- Token usage tracking and statistics
- Chat history export/import
- Auto language detection (English/Romanian)
- Multi-line inline completions
Supported Providers
- Ollama-compatible endpoints
- LM Studio
- DeepSeek API
- Claude API (including Claude 3.5 Opus)
- OpenRouter API
- GPT-4o (via OpenAI-compatible endpoints)
Setup
- Install the extension from VSIX or Marketplace find PicoCodeAi.
- Open the PicoCodeAi provider configuration panel.
- Add a provider and select a model.
- Start chatting or use the editor actions.
Example LM Studio Configuration
{
"picocode.providers": [
{
"id": "lmstudio-local",
"name": "LM Studio",
"type": "lm-studio",
"url": "http://localhost:1234/v1",
"apiKey": "",
"models": [],
"defaultModel": ""
}
]
}
PicoCode+
PicoCode+ adds explicit rules and governed execution on top of the normal assistant flow.
picocode.rules: custom rules that PicoCode must always followpicocode.executionMode:auto,strict, oroff- workspace rules files are also supported
Supported workspace rules files:
.picocode/rules.md.picocode/rules.txtPICOCODE_RULES.md.picocode-rules.md
Example settings:
{
"picocode.plusMode": true,
"picocode.executionMode": "auto",
"picocode.executionAllow": ["npm run", "python -m pytest"],
"picocode.executionDeny": ["drop database", "Remove-Item -Recurse"],
"picocode.rules": [
"Never rename public APIs without confirmation.",
"Prefer minimal edits and preserve existing project style."
]
}
Commands
PicoCode: Open ChatPicoCode: Fix CodePicoCode: Explain CodePicoCode: Review / Check CodePicoCode: Run CodePicoCode: Reload ConfigPicoCode: Rollback Last LoopPicoCode: Export History(new)PicoCode: Import History(new)PicoCode: Clear History(new)PicoCode: Show Token Stats(new)PicoCode: Show Ripgrep Status(new in v3.3.1)
Build
npm install
npm run package