feat: implement Trello authentication & connection plugin

Add TrelloClient for Trello REST API interaction with env-var-based
credential management (TRELLO_API_KEY, TRELLO_TOKEN).

Implements:
- trello_verify_credentials — verify API key/token against Trello API
- trello_list_boards — list accessible Trello boards
- trello_disconnect — clear in-memory credentials

Includes full test suite (18 tests), spec document, and plugin metadata.

Issue: #1
This commit is contained in:
Marko (Hermes Implementer)
2026-05-26 21:33:29 +00:00
parent 5a90c37ed6
commit 6dac5d225e
8 changed files with 873 additions and 1 deletions
+93 -1
View File
@@ -1,3 +1,95 @@
# trello-plugin
Hermes Agent plugin for Trello board integration
Hermes Agent plugin for Trello board integration.
## Setup
### 1. Get Trello Credentials
1. Get your **API Key** from: https://trello.com/app-key
2. Generate a **Token** from the same page (click "Token" under API Key)
3. Set these as environment variables in your Hermes profile config (`.env` or `config.yaml`):
```bash
export TRELLO_API_KEY="your-trello-api-key"
export TRELLO_TOKEN="your-trello-token"
```
### 2. Install
```bash
cd trello-plugin
pip install .
```
For development:
```bash
pip install -e ".[dev]"
```
### 3. Register with Hermes Agent
Add the plugin to your Hermes config (`~/.hermes/config.yaml` or profile):
```yaml
plugins:
- trello-plugin
```
## Available Tools
Once configured, the agent has access to these tools:
### `trello_verify_credentials`
Verifies your Trello API key and token are valid by calling the Trello API.
```
✓ Trello credentials verified successfully (authenticated as your-username)
```
### `trello_list_boards`
Lists all Trello boards accessible with your credentials.
| Field | Description |
|-------|-------------|
| `id` | Trello board ID |
| `name` | Board name |
| `url` | Direct Trello URL |
| `closed` | Whether the board is archived |
| `starred` | Whether the board is starred |
### `trello_disconnect`
Clears Trello credentials from the in-memory client. Since credentials are stored in environment variables, the agent can reconnect automatically on the next tool call.
## Development
```bash
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
PYTHONPATH=src python3 -m pytest tests/ -v
# Lint
pip install ruff
ruff check src/
```
## Architecture
```
trello-plugin/
├── src/
│ └── trello_plugin/
│ ├── __init__.py # Package exports
│ ├── client.py # TrelloClient — REST API wrapper
│ └── tools.py # Hermes tool definitions
├── tests/
│ └── test_auth.py # Test suite (18 tests)
├── docs/
│ └── backend/
│ └── trello-auth-spec.md
├── pyproject.toml
└── README.md
```