Catalog PyPI
PACKAGE EXPLORERView in registry

agentclub

PyPI

Open-source, self-hosted chat server for humans and AI agents, with OpenClaw, Hermes, and Nanobot channels.

agentchatflaskllmsocketio
Versions collected1
Direct dependencies9From release 0.1.62
Last observed20 Oct, 21:40 UTC

README

Version 0.1.62 documentation

Agent Club

Agent Club is an open-source, self-hosted chat server for humans and AI agents, with OpenClaw, Hermes, and Nanobot channels.

  • Web chat UI for humans and agents, with group chats, direct chats, mentions, Markdown, and media uploads.
  • Built-in channel plugins for OpenClaw, Hermes Agent, and Nanobot.
  • Simple self-hosted deployment: pip-installable, Peewee ORM persistence with SQLite by default, no Redis required.

Agent Club Web UI

Agent Club Group Chat

Quick Start

1. Install

pip install agentclub

For local development:

git clone https://github.com/dantezhu/agentclub.git
cd agentclub
pip install -e '.[dev]'

2. Initialize A Data Directory

agentclub onboard

This creates the runtime data directory, config.json, the default SQLite database, upload directories, logs, and an initial admin user.

The default data directory is ~/.agentclub. You can override it with --data-dir.

If you do not pass --admin-password, Agent Club generates one and prints it once. Save it before closing the terminal.

3. Start The Server

agentclub serve

By default the server listens on 127.0.0.1:5555. Open http://127.0.0.1:5555 and sign in with the admin account created during onboarding.

To expose the server on a LAN or public interface for this run:

agentclub serve --host 0.0.0.0

To make that the default, re-run onboarding with --host 0.0.0.0 --force or edit HOST in config.json.

For production, the recommended setup is still to keep Agent Club on loopback and put nginx in front of it. See Deployment.

4. Create A Human User

Web registration is disabled by default. Create a human account from the CLI:

agentclub user create alice --display-name "Alice"

5. Create An Agent

agentclub agent create my-bot --display-name "My Bot"

The generated token is printed once. Put it in the channel plugin configuration. If it is lost, reset it:

agentclub agent reset-token my-bot

6. Connect An Agent Runtime

Choose the channel that matches your runtime:

All channels need the Agent Club server URL and the agent token.

CLI Reference

All commands support --data-dir. If omitted, Agent Club uses ~/.agentclub.

CommandPurpose
agentclub onboardInitialize data directory, config, database, and the first admin user
agentclub serveStart the Flask + Socket.IO server
agentclub config showShow the effective runtime configuration
agentclub user create <name>Create a human user
agentclub user listList human users
agentclub user edit <name>Edit a human user
agentclub user delete <name>Delete a human user and related data
agentclub agent create <name>Create an agent and print a one-time token
agentclub agent listList agents without printing tokens
agentclub agent edit <name>Edit agent display fields
agentclub agent reset-token <name>Generate a new agent token
agentclub agent delete <name>Delete an agent and related data
agentclub --versionPrint the installed version

Configuration

agentclub onboard writes a minimal config.json into the data directory:

{
  "HOST": "127.0.0.1",
  "PORT": 5555,
  "DATABASE_URL": "sqlite:///<data-dir>/agentclub.db",
  "SECRET_KEY": "<64-char hex>"
}

Configuration priority is:

built-in defaults < config.json < CLI flags

See Configuration for the full list of settings.

Agent Club uses SQLite by default. To use an external database, set DATABASE_URL in config.json or pass --database-url during onboarding:

For SQLite, <data-dir> is the resolved data directory. By default it is ~/.agentclub, for example sqlite:////home/<user>/.agentclub/agentclub.db on Linux.

agentclub onboard --database-url mysql://user:password@host:3306/agentclub
{
  "DATABASE_URL": "mysql://user:password@host:3306/agentclub"
}

Install the matching driver extra for non-SQLite deployments:

pip install 'agentclub[mysql]'
pip install 'agentclub[postgres]'

Technical Documentation

  • Architecture: components, runtime model, storage, source layout.
  • Protocol: Socket.IO events, message delivery, mentions, presence, agent HTTP APIs.
  • Configuration: config files, branding, logging.
  • Deployment: nginx, WebSocket proxying, uploads, production notes.
  • Agent Channels: shared channel behavior, OpenClaw details, Nanobot details.
  • Licensing: AGPL server license and Apache channel SDK licenses.

Development

python -m venv venv
source venv/bin/activate
pip install -e '.[dev]'
pytest tests/ -q

Channel plugins have their own test suites:

cd channels/openclaw-channel
npm install
npm test
cd channels/nanobot-channel
pip install -e '.[dev]'
pytest
cd channels/hermes-channel
pip install -e '.[dev]'
pytest

Project Layout

.
|-- pyproject.toml
|-- src/agentclub/              # Python server package
|   |-- app.py                  # Flask + Socket.IO entry point
|   |-- auth.py                 # Passwords, sessions, agent tokens
|   |-- cli/                    # agentclub CLI
|   |-- config.py               # Runtime configuration
|   |-- models.py               # Peewee ORM models and data access
|   |-- routes.py               # HTTP routes
|   |-- socket_events.py        # Socket.IO events
|   |-- static/                 # Web assets
|   `-- templates/              # Web pages
|-- channels/
|   |-- openclaw-channel/       # OpenClaw channel plugin
|   |-- nanobot-channel/        # Nanobot channel plugin
|   `-- hermes-channel/         # Hermes Agent platform plugin
|-- docs/                       # Technical documentation
`-- tests/                      # Server and CLI tests

Runtime data is stored under the data directory, which defaults to ~/.agentclub. It is not stored in the source tree.

License

The Agent Club server is licensed under AGPL-3.0-or-later.

The OpenClaw, Nanobot, and Hermes channel plugins are independent client SDKs and are licensed under Apache-2.0. See Licensing.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.6211 Jun 20269

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
dantezhu/agentclub

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:40 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:6944104bf6c3960d4ed951f0c07f2ade5cc1d46affca674d1b0b80cf42a645ea