Skills
Enhancement Official

Atomic Chat

Add the Atomic Chat desktop app as an MCP tool. Claude offloads work to local models served by Atomic Chat's OpenAI-compatible API.

What it does

  • Claude can list and invoke local models running in Atomic Chat
  • OpenAI-compatible API — works with any model Atomic Chat serves
  • stdio MCP server, no extra service to manage
  • Lazy model loading — Atomic Chat warms models on first call
  • Optional API key for proxied / authenticated setups

What you'll need

  • NanoClaw installed and running
  • Atomic Chat installed (macOS — atomic-chat.dmg)
  • Atomic Chat's Local API Server enabled on port 1337
  • At least one model downloaded in Atomic Chat

Install

/add-atomic-chat-tool

How it works

The /add-atomic-chat-tool skill adds a stdio-based MCP server that exposes models running in the local Atomic Chat desktop app as tools for the container agent. Claude stays the orchestrator — it plans, decides, and uses tools — but it can offload work to local models when that fits.

Atomic Chat is a fork of Jan that serves an OpenAI-compatible API at http://127.0.0.1:1337/v1. The MCP server speaks to that API and exposes two tools to Claude:

  • atomic_chat_list_models — list available models (GET /v1/models)
  • atomic_chat_generate — run a prompt against a specified model (POST /v1/chat/completions)

Model management — downloads, deletes, library — is done in the Atomic Chat UI. The skill doesn’t try to wrap that.

Setup

  1. Install Atomic Chat from the latest release (macOS only for now).
  2. Open the app and download at least one model in the Hub tab. Send any message in the UI to warm it up.
  3. Confirm the Local API Server is enabled in Settings → Local API Server (port 1337).
  4. Run /add-atomic-chat-tool. The skill copies the MCP server source into container/agent-runner/src/, registers it in the agent-runner’s mcpServers map, adds mcp__atomic_chat__* to the tool allowlist, forwards the ATOMIC_CHAT_* env vars from host into the container, and surfaces [ATOMIC] log lines at info level.

By default, the MCP server connects to http://host.docker.internal:1337 with a fallback to localhost. Override via ATOMIC_CHAT_HOST if needed.

What you get

  • Offload to local models — say “use atomic chat to summarize this log” and the agent picks a model from list_models, calls generate, and uses the result.
  • Privacy — the prompt and response never leave your machine.
  • Logs[ATOMIC] Listing models..., [ATOMIC] >>> Generating with <model>, [ATOMIC] <<< Done: <model> | Xs | N tokens show up in logs/nanoclaw.log.

Tips

  • The first call is slow — Atomic Chat lazy-loads models. Subsequent calls against the same model are fast because the model stays in memory.
  • The model ID passed to atomic_chat_generate must match exactly what list_models returned. If the agent guesses, ask it to list first.
  • When the agent picks the wrong model, be explicit: “use the atomic_chat_generate tool with llama3.2-3b-instruct to…”
  • No API key is needed for a local install — Atomic Chat doesn’t require auth. Only set ATOMIC_CHAT_API_KEY if you’ve put it behind a reverse proxy.
  • For very large inputs, pass max_tokens explicitly when invoking atomic_chat_generate or pick a model with a bigger context window in the Atomic Chat UI.