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.
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.schema — SlackConfig, 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.33.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| exoclaw_nanobot-0.33.1.tar.gz | 61.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| exoclaw_nanobot-0.33.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.5 kB
Release files / exoclaw_nanobot-0.33.1.tar.gz
| Download URL | exoclaw_nanobot-0.33.1.tar.gz |
|---|---|
| Size | 61.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e00a02b3d0e6b5dc3f42035ecd4dbd2e33a22359e1bfd1b477788f2bfac9955
|
|
BLAKE2b-256 checksum How to use checksums |
c35de50695793c9337e7f3c38581fa9837583f794c6718a1c8ef06d8374471cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.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":true}
|
Release files / exoclaw_nanobot-0.33.1-py3-none-any.whl
| Download URL | exoclaw_nanobot-0.33.1-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72d3fc07cd67ae892a228a50ecf2b5b0e527f8e4f7b0f57dd88f089977043041
|
|
BLAKE2b-256 checksum How to use checksums |
c90641354516bc58a13e35d57ea298c753bb914dd7f4a19073037a700bc73523
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.7 {"installer":{"name":"uv","version":"0.12.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":true}
|