Skip to main content

Full-stack exoclaw bundle — config, provider registry, and one-line wiring

Project description

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.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.

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

exoclaw_nanobot-0.33.0.tar.gz (61.5 kB view details)

Uploaded Source

Built Distribution

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

exoclaw_nanobot-0.33.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file exoclaw_nanobot-0.33.0.tar.gz.

File metadata

  • Download URL: exoclaw_nanobot-0.33.0.tar.gz
  • Upload date:
  • Size: 61.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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}

File hashes

Hashes for exoclaw_nanobot-0.33.0.tar.gz
Algorithm Hash digest
SHA256 080ed37bd53fd3f0e4c47ce6ace3e6f5333d552d8dbbd6520cdc45fb49f00395
MD5 f91953ef9524e4dbb5231d57e3537cfb
BLAKE2b-256 e5ed2ef8a068b3e29d642f36c4530f04f8f35b69a81bfacdff99687ff376d844

See more details on using hashes here.

File details

Details for the file exoclaw_nanobot-0.33.0-py3-none-any.whl.

File metadata

  • Download URL: exoclaw_nanobot-0.33.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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}

File hashes

Hashes for exoclaw_nanobot-0.33.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d9900e8953c6fc7fcc5e29970bec3813f5a0c86025c65e5a4ef589573885b30
MD5 ddbf9479d914bf68419593036eb12fba
BLAKE2b-256 1671d4ee0e60616cbbc5e5d745c384bf2dc4d40b2803c17cb2e39c3b4de89fbe

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