|
|
2 тижнів тому | |
|---|---|---|
| plugins | 2 тижнів тому | |
| website | 2 тижнів тому | |
| README.md | 2 тижнів тому |
A Chatto platform adapter plugin for Hermes Agent. Connects your self-hosted Chatto server to Hermes so you can interact with the agent through chat rooms and DMs.
GetThreadEvents for thread replies, auto-thread creation, proper threadRootEventId handlingrequire_mention (default true) with free_response_channels for no-tag roomsmessage_posted, mention_notification, new_dm_notification, session_terminated (force reconnect), message_retracted, user_left_room, room_created, user_joined_room# Clone into your Hermes plugins directory
git clone https://github.com/jrimmer/hermes-chatto-plugin.git /tmp/chatto-plugin
# Copy the plugin into place
cp -r /tmp/chatto-plugin/plugins/platforms/chatto ~/.hermes/plugins/platforms/chatto
Or if you're using a profile:
cp -r /tmp/chatto-plugin/plugins/platforms/chatto ~/.hermes/profiles/<profile>/plugins/platforms/chatto
Add your Chatto credentials to ~/.hermes/.env:
CHATTO_URL=https://chat.example.com
CHATTO_LOGIN=max
CHATTO_PASSWORD=your-password
CHATTO_HOME_CHANNEL=REljMv5Pgolo6Y9
Then enable the plugin in ~/.hermes/config.yaml:
plugins:
enabled:
- platforms/chatto
gateway:
platforms:
chatto:
enabled: true
extra:
url: https://chat.example.com
require_mention: true
home_channel: REljMv5Pgolo6Y9
free_response_channels: []
Restart the gateway:
hermes gateway restart
| Variable | Required | Description |
|---|---|---|
CHATTO_URL |
Yes | Base URL of your Chatto server |
CHATTO_LOGIN |
Yes | Chatto username |
CHATTO_PASSWORD |
Yes | Chatto password |
CHATTO_HOME_CHANNEL |
No | Room ID for cron/notification delivery (defaults to first watched room) |
CHATTO_CHANNELS |
No | Comma-separated room IDs to watch (default: all joined rooms) |
CHATTO_REQUIRE_MENTION |
No | Only respond to @mentions in rooms (default: true). DMs always respond. |
CHATTO_AUTO_THREAD |
No | Auto-create threads for replies in rooms (default: true) |
CHATTO_FREE_RESPONSE_CHANNELS |
No | Comma-separated room IDs where bot responds without being tagged |
CHATTO_ALLOWED_USERS |
No | Comma-separated Chatto logins allowed to talk to the bot |
CHATTO_ALLOW_ALL_USERS |
No | Allow any Chatto user to talk to the bot (true/false) |
| Key | Default | Description |
|---|---|---|
url |
— | Chatto server URL |
require_mention |
true |
Only respond to @mentions in public rooms |
home_channel |
first room | Room ID for cron delivery |
free_response_channels |
[] |
Rooms where the bot responds without being tagged |
channels |
all joined | List of room IDs to watch |
The adapter connects to Chatto via two channels:
/api/realtime) — receives realtime events (messages, mentions, DMs, room changes) as binary protobuf frames/api/connect/) — sends messages, fetches room events, joins rooms, manages presenceWhen a message is received:
message_posted event, the message body is fetched via REST (GetRoomEvents or GetThreadEvents for thread replies)CreateMessage with proper threadingChatto v0.4.19. Protocol version 1 (binary protobuf over WebSocket).
MIT