Everything NanoAgent can do
A local-first AI coding agent built for real engineering work — from the terminal to the editor to your CI pipeline. Every capability below is sourced straight from the README and documentation, grouped so you can jump to what matters.
CLI experience
A keyboard-first agent that lives in your terminal via the nanoai command.
Interactive sessions
Full terminal UI with persistent conversation history and a live activity stream of every action and reasoning step.
Session resume
Pick up where you left off with --session <guid>; NanoAgent prints the resume command
on exit.
Rich CLI flags
-p/--prompt, -y/--yes, --stdin, --session,
--profile, --thinking, and --acp cover scripted and interactive
runs.
F2 model switch
Swap the active model mid-session from the terminal without breaking your flow.
Slash commands
Type / for inline suggestions — /help, /config,
/models, /profile, /clear, /exit and many more.
One-command install
Bash installer for macOS/Linux and a PowerShell installer for Windows — no build step required.
Terminal (TUI) shortcuts
- F2 Switch the active model with the arrow-key picker
- / Open inline slash-command suggestions
- ↑↓ Move through suggestions and picker options
- Enter Accept the highlighted command or model
- Esc Back out to the settings menu
- ! Run the line as a direct shell command
- !! Launch a live background terminal
Oneshot & headless
Non-interactive runs for scripts, pipelines, and automation.
One-shot prompts
Run a single query with nanoai -p "…" and capture the response — ideal for scripts and
cron jobs.
Piped stdin
Feed context straight from a pipe with --stdin so the agent reads from upstream commands.
Auto-approve
-y/--yes skips interactive prompts for fully unattended, fail-closed automation runs.
Env-var setup
Preseed everything with NANOAGENT_PROVIDER, NANOAGENT_MODEL,
NANOAGENT_THINKING, NANOAGENT_REASONING and NANOAGENT_API_KEY.
Shell & terminals
Run commands without leaving the conversation.
! direct shell
Prefix a line with ! to run a local shell command directly — no agent round-trip, no
approval gate.
!! background terminals
Launch a background terminal with !! whose output streams live while the session keeps
going.
Terminal management
Track running terminals with /terminals; concurrency and TTL limits are configurable per
session.
shell_command tool
The agent executes system commands through a permission-gated tool with sandbox enforcement.
File, search & web tools
The built-in toolset the agent uses to read your code and reach the web — every call permission-gated.
File operations
file_read, file_write, and file_delete read and edit workspace
files under your permission policy.
Navigate & search
directory_list, text_search, and search_files browse structure and
find code by content or path.
web_search
Network-gated web search lets the agent pull in current information when you allow it.
webfetch
Fetch a URL over HTTP with approval — bring docs, issues, or specs straight into the conversation.
headless_browser
Chromium-family browser automation for pages that need real rendering — covered by the
network permission.
.nanoignore aware
File tools respect .nanoignore so sensitive paths stay out of the agent's reach.
ACP — Agent Client Protocol
Drive the local CLI from any editor over a clean JSON-RPC channel.
nanoai --acp
Starts a stdio-based JSON-RPC server speaking line-delimited messages over stdin/stdout.
Purely local
No network transport — editors talk to the agent as a local child process, keeping data on your machine.
Session methods
session/new, load, prompt, cancel, and
close — one active session per process.
Optional token auth
Require a token via NANOAGENT_ACP_AUTH_TOKEN; client mcpServers merge with your
config.
MCP & Skills
Extend the agent with external tools and reusable playbooks.
MCP servers
Load Model Context Protocol servers over stdio or streamable HTTP, from user- or workspace-level config.
Tool filtering
enabledTools/disabledTools plus per-server startup and tool timeouts keep things
tight.
/mcp inspection
List active servers, custom providers, and the dynamic tools they expose at a glance.
Custom tools
Any language that reads JSON stdin and writes stdout becomes a tool exposed as
custom__<name>.
Skills
Drop task- or tool-specific playbooks in .nanoagent/skills (e.g. a dotnet or
code-review SKILL.md).
Custom slash commands
Save repeatable prompts in .nanoagent/commands with namespaces, front matter, and
$ARGUMENTS.
Repo memory
Team knowledge that lives in version control — reviewable, not hidden.
Reviewable memory files
Knowledge lives in .nanoagent/memory — architecture, conventions, decisions, known-issues,
and test-strategy markdown.
Lessons
lessons.jsonl can auto-capture failures and fixes, then inject relevant lessons back into
future prompts.
AGENTS.md instructions
Persistent project instructions via AGENTS.md, plus full or appended system-prompt
overrides.
Approval & redaction
Memory writes require approval by default, and secret-looking values are redacted before storage.
Model providers
Use the model that fits your budget and policy — subscription, API key, or fully local.
Subscription sign-in
OAuth into ChatGPT Plus/Pro and Anthropic Claude Pro/Max, plus device-code login for GitHub Copilot.
API-key providers
OpenAI, Anthropic, Google AI Studio, OpenRouter, Kilo Code, Cerebras, Groq, DeepSeek, and Ollama Cloud.
Local providers
Run on-device with Ollama (localhost:11434) or LM Studio for fully offline workflows.
OpenAI-compatible
Point at any custom base URL and API key to plug in third-party or self-hosted endpoints.
Model discovery
NanoAgent automatically discovers available models from your selected provider.
Provider profiles
Save and switch between provider configurations; onboarding fails closed and offers reconfiguration.
Model & reasoning controls
Tune how the model thinks and switch it on the fly.
Model switching
The /models picker, /use <model>, and F2 let you change models instantly.
Thinking mode
/thinking on|off toggles whether the provider's extended reasoning is shown.
Reasoning effort
/reasoning sets effort from minimal through low/medium/high up to
xhigh and max.
Token & cost tracking
Cached input tokens are tracked separately from standard input for accurate pricing.
Profiles & subagents
Right-sized agents for building, planning, reviewing, and delegating.
Primary profiles
build for edit-enabled implementation, plan for read-only investigation, and
review for findings-first code review.
Subagents
general handles delegated implementation; explore does fast, read-only codebase
discovery.
@subagent handoff
Mention a subagent directly — e.g. @explore How does auth work? — for a single-turn
handoff.
Delegate & orchestrate
agent_delegate hands off one focused task; agent_orchestrate coordinates
subtasks.
ask_question tool
The agent can ask you a question with options, multi-select, or free-form text when it needs a decision.
Custom agent prompts
Override any profile's prompt with markdown in .nanoagent/agents/*.md.
LSP & code intelligence
Real symbols, types, and diagnostics from language servers — not guesses.
Language Server Protocol
The code_intelligence tool gives the agent definitions, completions, diagnostics, and
read-only rename previews.
Multi-language
Built-in support for TypeScript/JavaScript, Python, C#, Rust, Go, and C/C++.
Server detection & status
Discovers servers from built-ins and workspace overrides, with health and install hints on demand.
/lsp commands
/lsp, /lsp refresh, and /lsp file <path> manage code
intelligence from the session.
Codebase indexing
Local embeddings for fast, relevant repository search.
Local embeddings
Lightweight per-file vectors are cached in .nanoagent/cache/codebase-index.json — entirely
on-device.
Incremental updates
Unchanged files are reused and only changed files re-indexed; optional auto-update runs after each turn.
Ignore-aware
Respects .gitignore, .nanoignore, and built-in exclusions.
/index commands
/index, update, status, rebuild, and list
control the index.
Permissions & sandboxing
You decide what runs automatically, what needs approval, and what's denied.
Allow / Ask / Deny
Per-tool permission modes gate file edits, shell commands, network, MCP tools, and memory writes.
Sandbox modes
ReadOnly, WorkspaceWrite, and DangerFullAccess scope what the agent
may touch.
OS-native sandboxing
bubblewrap on Linux, sandbox-exec on macOS, and a Windows sandbox runner for foreground commands.
Session overrides
/allow and /deny adjust rules on the fly; explicit deny patterns always win.
Undo / redo
Tracked file edits can be undone and redone with /undo and /redo.
Secret redaction
Pattern-based redaction protects credentials across output, memory, audit, and logs.
Editors & desktop
The same agent, wherever you work.
Desktop app
A visual workspace with chat, model controls, budget config, file-edit tracking, and per-workspace sections.
VS Code extension
rizwan3d.nanoagent docks a chat view and adds send-selection, review-file, review-diff,
plan, and apply-changes commands.
Visual Studio extension
NanoAgent.VS keeps a NanoAgent tool window inside Visual Studio 2022+.
JetBrains via ACP
Any ACP-capable editor drives the local nanoai CLI over the protocol.
Diff review & apply
Review Git diffs and apply suggested changes directly from the editor.
CI code reviews
Automated, findings-first reviews on every pull and merge request.
GitHub Actions
A ready-made workflow runs NanoAgent against PR diffs and posts a review comment.
GitLab CI
A pipeline + script reviews merge requests and comments back using your GitLab token.
Bitbucket Pipelines
The same review automation wired for Bitbucket with an access-token integration.
Review profile
A read-only pr-reviewer profile computes the diff, skips drafts, and retains artifacts for
14 days.
Developer experience
The tooling, transparency, and trust that make the agent practical day to day.
Budget controls
Optional local or cloud budgets with monthly USD caps, alert thresholds, and per-1M token pricing.
Lifecycle hooks
Run hooks around task, tool, file, shell, web, memory, permission, and delegation events with timeouts.
Tool audit log
Optionally record every tool call to .nanoagent/logs/tool-audit.jsonl for review.
Tool-output modes
full, compact, or preview rendering — set per-profile or with
/tooloutput.
/init scaffolding
Scaffold workspace-local .nanoagent files with recommended, minimal, or custom presets.
SDK on NuGet
Embed NanoAgent in your own .NET app via the NanoAgent package on NuGet.org.
Cross-platform builds
Windows x64 (installer + portable), macOS Apple Silicon & Intel, and Linux x64/arm64.
Verified releases
Every release ships SHA256SUMS and GitHub artifact attestations for SLSA build provenance.
In-place updates
/update checks for new versions and /update now installs immediately.
Local-first privacy
Workspace files, config, sections, index cache, and credentials stay on your machine — only prompts and selected context go to the provider.
Anonymous telemetry, opt-out
Aggregate, anonymous usage analytics only — turn it off entirely with /disableanalytics.
Task-based benchmarks
The benchmarks/ suite tracks bug-fixing, repo understanding, patch quality, security review,
and tool safety over time.
Ship with an agent that keeps you in control.
Local-first. Reviewable. Open source under Apache-2.0.