Skip to main content

nanoinfra Documentation

Use these docs to get a working agent first, then open a task guide only when you need the next capability. Source-level design and extension details are kept in the contributor section.

Repository docs follow the current source tree and can be newer than the latest package release. For published release docs, visit nanoinfra.wiki.

Start Here

Your situationRead thisYou are done when...
Terminals, Python, or API keys are new to youBeginner walkthroughThe browser can send Hello! and receive a reply
You are comfortable running commandsInstall and Quick Startnanoinfra status is healthy and the WebUI or CLI can get one reply
Something already failedTroubleshootingYou have isolated the problem to install, config, model, gateway, channel, or tool access

The recommended first-run path is:

  1. Install nanoinfra.
  2. Let the installer open nanoinfra webui on a fresh local desktop.
  3. Configure a provider and model in Settings → Models.
  4. Send Hello! before configuring anything else.

Most people do not need to edit JSON for the first run. The WebUI handles the initial provider, model, and local browser settings. SSH, headless, existing-config, and older-release installs retain nanoinfra onboard --wizard as a terminal fallback. After the WebUI opens, use Settings for models and built-in capabilities, Settings → Channels for chat apps, and Apps for CLI App or MCP integrations.

Add One Capability

Pick the row that matches what you want to accomplish next:

GoalGuide
Learn the browser workbenchWebUI
Connect Telegram, Discord, Slack, Feishu, WeChat, Email, or another chat appChat Apps
Choose a hosted, OAuth, company, or local modelProvider Cookbook
Add model fallbacksConfigure Model Fallback
Enable web searchConfigure Web Search
Add an MCP tool serverConfigure MCP Tools
Generate imagesImage Generation
Store credentials and let the agent connect to a server (SSH, Ansible, SSM, API)Secrets and Servers
Schedule work or create a local triggerAutomations
Understand and manage long-term memoryMemory
Run nanoinfra continuouslyDeployment
Run separate bots or workspacesMultiple Instances
Call nanoinfra from PythonPython SDK
Expose an OpenAI-compatible endpointOpenAI-Compatible API

For shorter, outcome-focused walkthroughs, browse the task guide index.

Operate nanoinfra

NeedRead
Commands and flagsCLI Reference
In-chat slash commandsIn-Chat Commands
Config, workspace, gateway, sessions, tools, and memory in plain languageConcepts
Provider/model matching and selectionProviders and Models
Setup and runtime diagnosisTroubleshooting
Older development highlightsRelease Archive

Reference

Use reference pages to look up an exact option after you know what you are trying to configure:

AreaReference
Every configuration field and defaultConfiguration
Provider and model behaviorProviders and Models
Chat channel prerequisites and manual JSONChat Apps
WebSocket authentication and wire protocolWebSocket
Python SDK classes, events, sessions, and hooksPython SDK
OpenAI-compatible HTTP routes and payloadsOpenAI-Compatible API
Runtime self-inspection and tuningMy Tool

Configuration examples are usually snippets to merge into ~/.nanoinfra/config.json, not complete replacement files. The docs use camelCase because nanoinfra writes config that way. Keep real API keys, bot tokens, and passwords out of issues and public logs.

Extend or Contribute

These pages explain implementation and extension points. You do not need them to install or operate nanoinfra.

GoalRead
Understand source ownership and runtime flowArchitecture
Set up a development environmentDevelopment and CONTRIBUTING.md
Add a channel packageChannel Package Guide
Build the WebUI sourceWebUI Development

If a command or screen no longer matches these docs, please open an issue with your nanoinfra version, operating system, and the page that needs correction.