What's Changed
-
Added the ability to attach to a running subagent session from the terminal UI for interactive debugging. This feature allows users to inspect exactly what a subagent is doing in real-time, including streaming text and reasoning. You can press
Ctrl+Swhile a subagent is running to attach to it, cycle between multiple running subagents, and pressEscto detach. -
Added privacy-aware prompt scrubbing. A new
PrivacyContextscrubs sensitive content from prompts before they leave your machine, with tool-argument rehydration and privacy session support, a/privacycommand to inspect what is being scrubbed, and automated scrubbing telemetry notifications. Thanks to @akramcodez. -
Added an interactive questions system for plan mode, so the agent can ask structured questions while planning instead of guessing. Thanks to @akramcodez. Closes #96.
-
Added mode-specific provider and model configuration, so each development mode can use its own provider and model. Thanks to @akramcodez. Closes #277.
-
Added dual TUI screen modes, with a more reliable
/clearand graceful exit handling. Thanks to @llupRisinglll. -
Added multiline cursor navigation and word-jump in the input box. Thanks to @llupRisinglll.
-
Added
--resume/--continueCLI session flags.--continue(-c) resumes the most recent session for the current directory, and--resume [id](-r) resumes a session by id, list index, orlast, with a bare--resumeopening the session picker at startup. Thanks to @llupRisinglll. -
Added a fuzzy search filter to the
/modelpicker, with a capped, centered scrolling window so large model catalogs no longer overflow the terminal and the current model is preselected. Thanks to @rakshith1928. Closes #683. -
Added PDF and DOCX support to
read_filevia get-md, so those documents can be read directly. Thanks to @akramcodez. -
Added a
doctordiagnostic command that checks your setup and reports common configuration problems. Thanks to @Dhirenderchoudhary. Closes #609. -
Added a
retrycommand to re-run the last user turn. Thanks to @Dhirenderchoudhary. Closes #608. -
Added message queueing while the agent is busy so you can type ahead. Queued messages can be recalled before streaming, are truncated properly on narrow terminals, and no longer double-dispatch. Thanks to @Dhirenderchoudhary. Closes #597, #598.
-
Added estimated dollar cost tracking to
/usage, with a per-provider cost breakdown and a cumulative per-call cost history. Thanks to @rakshith1928. Closes #602. -
Added a
--jsonoutput flag to the non-interactive plain run path. Thanks to @OMEE-Y. -
Added a
diff_edittool for nano-profile models. Thanks to @Dhirenderchoudhary. Closes #604. -
Added automatic diagnostics after file edits, surfacing errors introduced by an edit right away. Thanks to @2409324124. Closes #538.
-
Added the foundation for semantic memory (storage layer and initial wiring), groundwork for upcoming memory features. Thanks to @Dhirenderchoudhary.
-
Reworked the client to a stateless API with history-boundary rehydration, improving conversation reliability. Thanks to @akramcodez.
-
Added a Together AI provider template and docs, and MiniMax Coding now defaults to MiniMax-M3. Thanks to @octo-patch. Added Atomic Chat local provider configuration docs. Thanks to @yanalialiuk.
-
Fix:
nanocoder.tuneloading and configuration precedence fromagents.config.jsonnow resolve correctly. Thanks to @rakshith1928. Closes #648. -
Fix: patch malformed SSE termination strings from providers, preventing stream parsing errors. Thanks to @akramcodez. Closes #614.
-
Fix: bound slash command completions so the menu no longer overflows. Thanks to @2409324124. Closes #624.
-
Fix: decouple console log verbosity from
NODE_ENVand quiet noisy LSP discovery logs. Thanks to @A-S-Manoj. Closes #606. -
Fix: removed the
strip-ansiruntime dependency. Thanks to @2409324124. Closes #643. -
Docs: added a Simplified Chinese README and Traditional Chinese translations, with fixes to the Simplified Chinese copy, plus a star-history chart. Thanks to @2409324124, @jason1015-coder, and @zerone0x.
-
Updated dependencies:
@ai-sdk/google,@ai-sdk/openai-compatible,undici,diff, andknip. -
The VS Code extension saw major work this cycle (ACP process manager and handshake, a chat sidebar webview with tool-permission and diff UI, session persistence, and Tailwind styling). It is versioned separately from the CLI. Thanks to @akramcodez and @Dhirenderchoudhary.
-
File tools now resolve relative paths against the shell's current working directory, and
cdin bash persists across commands — so relative reads and edits work after moving into a subdirectory or worktree. File tools also accept absolute paths that point inside the project, and can still reach the project root or a sibling worktree aftercd-ing into a subdirectory. -
Added a tabbed
/settingsdialog with searchable categories, so settings are easier to scan and filter from the TUI. Thanks to @llupRisinglll. Closes #471. -
Added a native VS Code GUI. The VS Code extension now ships a sidebar chat powered by the Agent Client Protocol (ACP): the extension spawns and manages
nanocoder --acpitself - nothing to run in a terminal. Responses stream with collapsible thinking sections, tool activity renders as live cards, and file edits open in VS Code's diff viewer. Thanks to @akramcodez. -
Sessions in the GUI: conversations persist to disk, with a New Chat action, a session history view with resume and delete, and full thread replay (including thinking and completed tool cards) on resume.
-
Provider, model, and mode switching from dropdowns in the chat header, with the model list refreshing on provider switch.
-
Slash commands in the GUI:
/help,/clear, and custom commands from.nanocoder/commands; CLI-only commands explain themselves, and messages starting with file paths are not mistaken for commands. -
Interactive tools in the GUI:
ask_userquestions render with one button per answer; tool approvals show Approve/Deny inline. -
Live progress: subagent runs stream token/tool counts onto their card, and the task tool (
write_tasks) renders as a live checklist via ACPplanupdates - which also lights up in other ACP clients like Zed. -
Cancellation: 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. Fixed a silent--acpstartup crash when the working directory was unwritable. -
Legacy WebSocket companion mode is now opt-in (
nanocoder.autoConnectdefaults to off); extension docs rewritten around the GUI. -
Fixed static vs. live content misalignment in
--alt-screen(fullscreen) mode. The chat transcript and the input/tools footer now share the same left column, so assistant messages, tool results, and the input line up cleanly. The fix moves the footer out to the transcript's padded column rather than pushing the transcript into the scroll viewport's clip window (which was clipping the first character of each line). -
Removed emoji badges from the
ask_usertool. Questions no longer render a question-type emoji next to the prompt, and the tool schema no longer advertises them to the model. -
ask_usernow always shows the answer. The tool result renders the full Question/Answer block even in compact tool display mode, instead of folding into the tool tally and hiding what was answered. -
Command suggestions now appear as soon as you type
/, and Tab selects the highlighted suggestion. Previously the menu was Tab-triggered and often failed to render, especially in alternate-screen mode. Recalling a/commandfrom history with the arrow keys no longer opens the menu, so ↑/↓ keep navigating history freely — the menu returns as soon as you type. -
Image attachments now leave an
[Image #N]placeholder in the message. Dragged or typed image paths are no longer silently stripped from the user message - each becomes a numbered[Image #N]placeholder (mirroring the[Paste #N]convention), numbered after any images already attached via Ctrl+V, and highlighted in the chat history like[@file]mentions. -
Fixed provider configuration loading so existing providers are preserved and startup falls back to a working provider instead of freezing. Thanks to @llupRisinglll.
-
Fixed Ctrl+S not cycling between multiple parallel subagent sessions. The attached-session transcript renders through Ink's append-only
<Static>, so switching agents never printed the new agent's messages; the view is now remounted per agent with a terminal wipe (same treatment as /clear), and rapid Ctrl+S presses cycle reliably. -
-adding typing svg in README.md showing "Meet Nanocoder" and "your private, local first ai coding assistant" Thanks to @jason1015-coder.
-
Added Thesean AI as a provider template. The
/setup-providerswizard now includes Thesean's Ship endpoint with Anthropic-compatible Claude models (ship-like/claude-opus-4-8,ship-like/claude-sonnet-5,ship-like/claude-haiku-4-5), plus a new docs page covering configuration and available models.
If there are any problems, feedback or thoughts please drop an issue or message us through Discord! Thank you for using Nanocoder.
Installation
npm install -g @nanocollective/nanocoderUsage
nanocoderFull Changelog: v1.28.1...v1.29.0