Skip to main content

exoclaw-nanobot

Full-stack exoclaw bundle — wires provider, conversation, all workspace/cron/message/spawn/MCP tools, subagent manager, CLI channel, and heartbeat into a single ready-to-run agent.

Install

pip install exoclaw-nanobot

CLI

exoclaw-nanobot

Reads config from ~/.nanobot/config.json (or NANOBOT_* env vars). Drops into an interactive REPL.

Programmatic usage

import asyncio
from exoclaw_nanobot.app import create, ExoclawNanobot

async def main() -> None:
    bot: ExoclawNanobot = await create()
    await bot.run()

asyncio.run(main())

create() accepts an optional pre-built Config or config_path. It returns an ExoclawNanobot whose run() method starts the cron service, heartbeat, agent loop, and CLI REPL, and tears everything down cleanly on exit.

Nanobot wires a persistent DBOS steering inbox by default. If a user sends a follow-up while their session is waiting on a model or tool, the current turn receives it at the next safe boundary instead of processing it only after the turn completes.

Adding channels (Slack, Telegram, Discord, Email, Matrix, WhatsApp)

Each channel lives in its own package — install only what you need:

pip install 'exoclaw-nanobot[slack]'
pip install 'exoclaw-nanobot[slack,telegram,discord]'
pip install 'exoclaw-nanobot[all-channels]'

Then enable each channel in your config:

{
  "channels": {
    "slack": {
      "enabled": true,
      "botToken": "xoxb-...",
      "appToken": "xapp-...",
      "allowFrom": ["U01ABC..."]
    },
    "telegram": {
      "enabled": true,
      "token": "123456:abcdef...",
      "allowFrom": ["123456789"]
    }
  }
}

create() reads config.channels.<name> for each section, instantiates the matching channel class, and starts it alongside the CLI. If a channel is enabled: true but its package isn't installed, startup fails with a clear pointer to the right pip install command.

Per-channel config fields live in exoclaw_nanobot.config.schemaSlackConfig, TelegramConfig, DiscordConfig, EmailConfig, MatrixConfig, WhatsAppConfig.

Where these packages live

We publish to two indexes: PyPI (the default pip install source, which hosts the bundle and the other Clause-Logic packages it depends on) and a self-hosted PEP 503 index at clause-logic.github.io/registry (which hosts everything PyPI does plus the six channel packages — slack/telegram/discord/email/matrix/whatsapp — that hit PyPI's new-project creation rate limit on initial publish and only live on the registry for now).

Third-party deps (pydantic, structlog, etc.) only live on PyPI — they're not republished here.

To prefer the registry, add to your project's pyproject.toml:

[[tool.uv.index]]
name = "clause-logic"
url = "https://clause-logic.github.io/registry/pypi/simple/"

uv checks clause-logic first for every package and falls through to PyPI for anything not there.

Pip users: pip install --extra-index-url https://clause-logic.github.io/registry/pypi/simple/ 'exoclaw-nanobot[slack]'. With pip this adds the registry as an additional source rather than promoting it ahead of PyPI; that works for the channel packages today because they aren't on PyPI yet.

Release files for exoclaw-nanobot 0.34.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exoclaw-nanobot 0.34.0
File Size Uploaded
exoclaw_nanobot-0.34.0.tar.gz 61.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exoclaw-nanobot 0.34.0
File Interpreter ABI Platform
exoclaw_nanobot-0.34.0-py3-none-any.whl Python 3 none any Details

Total release size: 85.1 kB

Release files / exoclaw_nanobot-0.34.0.tar.gz

Download URL exoclaw_nanobot-0.34.0.tar.gz
Size 61.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d03a82f2274bf9b36ef261b927dd41d23d208c750f53717354d668fbb83e2a08
BLAKE2b-256 checksum
How to use checksums
84371ae35c38ccf291599c82c1aa81f94a88cbf6781e7d3d05bce70669f06266
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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":true}

Release files / exoclaw_nanobot-0.34.0-py3-none-any.whl

Download URL exoclaw_nanobot-0.34.0-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bd8ba9e3fb16c329233f82dfaf288a84a4a6d6ba2b48626e00bfb9e0ace098e1
BLAKE2b-256 checksum
How to use checksums
ef34bbdc322a471d863da649e5dc43a1aa93981e18a6e7d1cfae0a41f7aef1c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","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":true}

Release history Release notifications | RSS feed

This release

0.34.0 This release

2 release files

0.33.1

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.28.0

2 release files

0.27.2

2 release files

0.27.1

2 release files

0.27.0

2 release files

0.26.0

2 release files

0.25.0

2 release files

0.24.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.10.7

2 release files

0.10.6

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

1 release file

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page