Nanocoder v1.29.0 is out. The headline is a native VS Code GUI powered by the Agent Client Protocol: the extension now spawns and drives nanocoder --acp itself, so there is nothing to run in a terminal. Alongside that: you can press Ctrl+S to attach to a running subagent session and watch what it is doing in real time, a new PrivacyContext scrubs sensitive content out of prompts before they leave your machine, and each development mode can now have its own provider and model.
Built by the Nano Collective, a community collective building AI tooling not for profit, but for the community.
Full changelog and docs at https://github.com/Nano-Collective/nanocoder.
Native VS Code GUI
The biggest change in this release is that the VS Code extension now ships a full sidebar chat, not a companion window. The extension spawns and manages nanocoder --acp itself, so the only thing in the terminal is whatever you were already doing. Responses stream into a sidebar webview with collapsible thinking sections, tool activity renders as live cards, and file edits open in VS Code's diff viewer.
Behind the scenes this is the Agent Client Protocol (ACP) plumbing added in v1.28.0, now with a real editor on top. Concretely:
Sessions persist to disk. New Chat, a session history view with resume and delete, and full thread replay (including thinking and completed tool cards) on resume. A resumed thread looks like the conversation you left, not an empty screen.
Provider, model, and mode switching from dropdowns in the chat header. The model list refreshes when you switch provider.
Slash commands work in the GUI. /help, /clear, and any custom commands from .nanocoder/commands. CLI-only commands explain themselves rather than failing silently. Messages that start with file paths are not mistaken for commands.
Interactive tools render properly. ask_user questions render with one button per answer. Tool approvals show Approve/Deny inline instead of a terminal prompt.
Live progress. Subagent runs stream token and tool counts onto their card. The task tool (write_tasks) renders as a live checklist via ACP plan updates, which also lights up in other ACP clients like Zed.
Cancellation works end to end. Stop ends the whole turn: the current tool aborts, queued tools are skipped, and no follow-up model request is issued.
Robust CLI spawning. The extension resolves the login shell's PATH (nvm-friendly when VS Code launches from the Dock), runs the CLI in the workspace folder, validates nanocoder.cliPath, and surfaces the last stderr line in the crash dialog. A silent --acp startup crash when the working directory was unwritable is fixed.
Legacy WebSocket companion mode is now opt-in (nanocoder.autoConnect defaults to off), and the extension docs have been rewritten around the GUI.
Thanks to @akramcodez and @Dhirenderchoudhary for the build.
Attach to a running subagent
Subagents have been useful but opaque: they run in their own context and you only saw the result when they finished. v1.29.0 lets you attach to a running subagent from the terminal UI and inspect exactly what it is doing, including streaming text and reasoning, in real time.
Press Ctrl+S while a subagent is running to attach to it.
If multiple subagents are running in parallel, Ctrl+S cycles through them.
Press Esc to detach and return to the parent.
Under the hood this needed two fixes that were easy to miss. The attached-session transcript renders through Ink's append-only , so switching agents never printed the new agent's messages; the view is now remounted per agent with a terminal wipe (the same treatment /clear uses), and rapid Ctrl+S presses cycle reliably. Thanks to @llupRisinglll.
Privacy-aware prompt scrubbing
A new PrivacyContext scrubs sensitive content from prompts before they leave your machine. Tool arguments are rehydrated locally after the response comes back, so the model still sees the values it needs while the cloud provider only ever sees placeholders. There is also:
Privacy session support. Scrubbed placeholders stay stable within a session so re-prompts and follow-ups keep working.
A /privacy command to inspect what is being scrubbed in the current session, with the active rule pack and a sample of recent scrub events.
Automated scrubbing telemetry notifications so you see when something is being scrubbed rather than it happening silently.
Thanks to @akramcodez.
Mode-specific provider and model configuration
You can now bind a different provider and model to each development mode (normal, auto-accept, yolo, plan), so the cheap local model you use for chat is not the one you accidentally burn through with --mode yolo on a long refactor. The configuration lives in agents.config.json under a per-mode block and re-resolves live when you switch modes.
Closes #277. Thanks to @akramcodez.
Interactive questions in plan mode
Plan mode used to plan around ambiguity by guessing. v1.29.0 lets the agent ask structured questions via...