Skip to main content

A lightweight terminal-based AI coding assistant

Project description

nanocode

A lightweight terminal-based AI coding assistant.

nanocode is used to help building itself, including features such as @file path completion.

Pre-1.0 note: nanocode is still evolving quickly. Functionality, commands, configuration, and behavior may change incompatibly before a 1.0 release.

Screenshots

Screenshot 1 Screenshot 2

Features

  • Constrained Output: Force model replies into auditable action frames.
  • Verified Edits: Reject stale range edits before they touch files.
  • Autonomous Loop: Chain reading, editing, running, and verification.
  • Live Telemetry: Stream tool intent, token use, and status.

Install

uv tool install nanocode-cli

Upgrade an existing install:

uv tool upgrade nanocode-cli

For local development:

uv sync --extra dev
uv run nanocode

Usage

Start nanocode:

nanocode

Show available commands:

/help

Ask a source-aware question about nanocode itself:

/help how does compact work?

CLI arguments:

  • --yolo: Skip tool execution confirmations.
  • --plan: Plan changes without editing files or running commands.
  • --debug: Write request prompts to the current session directory under ~/.nanocode/sessions/.
  • --config <path>: Path to config file (default: ~/.nanocode/config.toml).
  • --init-config: Create a default config file.
  • -v, --version: Show program version.

Safety

nanocode does NOT provide sandbox protection. It can run shell commands and edit files in the environment where you start it.

If you do not fully trust the model, tools, prompts, or workspace, run nanocode inside your own sandbox, container, VM, or other isolated environment.

USE AT YOUR OWN RISK.

Tools

  • File: Read, LineCount, ListDir, Search.
  • Edit: Edit, ReplaceRange.
  • Shell: Bash, Git.
  • Memory: Recall reads stored tool results by key.

Commands

  • Info: /help [question], /status, /rules, /knowledge, /compact.
  • Config: /config, /set <key> <value>, /model [model_name], /reason, /provider [name], /plan [on|off|question], /yolo.
  • Maintenance: /clean.
  • Exit: /exit, /quit.

Selectors support j/k, arrows, /keyword, Enter, and Esc. /model lists configured models before discovered ones, then prompts for reasoning; /model <name> and /reason are direct shortcuts.

Configuration

Run nanocode --init-config to create ~/.nanocode/config.toml.

  • Provider config: [provider] active = "<name>" plus [provider.<name>] url, key, model, available_models, and model options. reasoning_payload controls whether effort is sent as reasoning, reasoning_effort, or not sent.
  • Path config: [paths] data_dir = "~/.nanocode".
  • Runtime config: [runtime].
  • Session data: debug prompts and tool-result logs are stored under ~/.nanocode/sessions/<session_id>/.
  • Tool-result logs from inactive sessions are auto-cleaned after runtime.auto_clean_recent (default 3d; use off to disable). /clean removes inactive session logs immediately.
  • Project data: user rules are stored under ~/.nanocode/projects/<project_key>/.

Status

  • Status bar: active model, reasoning, active yolo/plan modes, conversation context, current-turn tool calls, tokens, elapsed time, and active model-call time.
  • /status: active provider, model state, session id, runtime state, conversation/tool counters, per-model calls/tokens, task, goal, and verification.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nanocode_cli-0.3.35.tar.gz (79.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nanocode_cli-0.3.35-py3-none-any.whl (77.6 kB view details)

Uploaded Python 3

File details

Details for the file nanocode_cli-0.3.35.tar.gz.

File metadata

  • Download URL: nanocode_cli-0.3.35.tar.gz
  • Upload date:
  • Size: 79.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nanocode_cli-0.3.35.tar.gz
Algorithm Hash digest
SHA256 bf70c5ae4f7a0fa9024ede3d8aab3e2920c43f61b47330ecb12f17d647543aae
MD5 c1d197535cbf85736ff19ff9ad636cfa
BLAKE2b-256 52a29c3bacbc1de3e5bb9a3cd07851f0504dc90a1ebc7081759e9679c9e7fe76

See more details on using hashes here.

File details

Details for the file nanocode_cli-0.3.35-py3-none-any.whl.

File metadata

  • Download URL: nanocode_cli-0.3.35-py3-none-any.whl
  • Upload date:
  • Size: 77.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nanocode_cli-0.3.35-py3-none-any.whl
Algorithm Hash digest
SHA256 509e84cfbe3571457ba77ccbc1d0c4c995589cd5621cbffd764e6a934005e19e
MD5 9490719395ae4649f33be6da642e8adb
BLAKE2b-256 1f96139331c3990ab1548298ee085a506e68af818397d4d727d1a1cc0ac3e9e8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page