parent
29a0bdae77
commit
feaf25ba3b
@ -0,0 +1,61 @@ |
|||||||
|
# F3 Picoclaw XMPP |
||||||
|
|
||||||
|
An XMPP chatbot bridge that connects an XMPP account to a Nanobot AI backend via WebSocket. |
||||||
|
|
||||||
|
## Features |
||||||
|
|
||||||
|
- Listens for messages in XMPP chat rooms and direct messages |
||||||
|
- Responds when mentioned (`@botname`) in group chats |
||||||
|
- Replies to all direct messages automatically |
||||||
|
- Streams AI responses from Nanobot WebSocket API |
||||||
|
- Configurable logging levels |
||||||
|
|
||||||
|
## Requirements |
||||||
|
|
||||||
|
- Python >= 3.10 |
||||||
|
- [uv](https://docs.astral.sh/uv/) package manager |
||||||
|
|
||||||
|
## Setup |
||||||
|
|
||||||
|
```bash |
||||||
|
# Install dependencies |
||||||
|
uv sync |
||||||
|
|
||||||
|
# Configure environment |
||||||
|
cp .env.example .env |
||||||
|
# Edit .env with your XMPP credentials and Nanobot endpoint |
||||||
|
``` |
||||||
|
|
||||||
|
## Environment Variables |
||||||
|
|
||||||
|
| Variable | Description | |
||||||
|
|---|---| |
||||||
|
| `XMPP_USERNAME` | Full JID for the XMPP bot account | |
||||||
|
| `XMPP_PASSWORD` | XMPP account password | |
||||||
|
| `XMPP_ROOMS` | Comma-separated list of MUC rooms to join | |
||||||
|
| `NANOBOT_WS_ENDPOINT` | WebSocket URL of the Nanobot AI server | |
||||||
|
| `NANOBOT_WS_TOKEN` | Authentication token for the Nanobot | |
||||||
|
| `DEBUG` | Logging level: `debug`, `info`, `warn`, `error`, `critical` | |
||||||
|
|
||||||
|
## Usage |
||||||
|
|
||||||
|
```bash |
||||||
|
# Run the XMPP-to-Nanobot bridge |
||||||
|
uv run python -m src.server |
||||||
|
``` |
||||||
|
|
||||||
|
## Project Structure |
||||||
|
|
||||||
|
``` |
||||||
|
src/ |
||||||
|
├── server.py # Main entry point - bridges XMPP and Nanobot |
||||||
|
├── xmpp.py # XMPP bot client (slixmpp) |
||||||
|
├── nanobot.py # Nanobot WebSocket client |
||||||
|
└── log.py # Logging configuration |
||||||
|
``` |
||||||
|
|
||||||
|
## Tech Stack |
||||||
|
|
||||||
|
- Python 3.14 / asyncio |
||||||
|
- [slixmpp](https://github.com/poezio/slixmpp) for XMPP |
||||||
|
- [websockets](https://github.com/aaugustin/websockets) for WebSocket communication |
||||||
Loading…
Reference in new issue