# Für KI-Assistenten

Die Doku als reiner Text, damit dein Coding-Assistent die Anbindung für dich schreibt.

Die gesamte Dokumentation gibt es als reinen Text. So kann ein Coding-Assistent wie Claude Code oder Cursor sie lesen und die Anbindung für dich schreiben.

## Adressen für die KI

| Adresse | Inhalt |
|---|---|
| [/llms-full.txt](https://samy.sinio.io/llms-full.txt) | Die komplette Dokumentation in einer Datei. Im Zweifel diese. |
| [/llms.txt](https://samy.sinio.io/llms.txt) | Kurzes Inhaltsverzeichnis mit Links auf alle Seiten als Markdown. |
| `/docs/<seite>.md` | Jede einzelne Seite als Markdown, zum Beispiel [/docs/senden.md](https://samy.sinio.io/docs/senden.md). |

## Prompt zum Kopieren

Gib deinem Assistenten diesen Auftrag und ersetze den Teil in eckigen Klammern:

```text
Lies zuerst die Samy-Dokumentation unter https://samy.sinio.io/llms-full.txt.

Baue dann in dieses Projekt eine Anbindung an Samy ein:
- Eine Funktion, die eine Push-Nachricht über POST https://api-production-e537a.up.railway.app/v1/push schickt.
- Der Schlüssel kommt aus der Umgebungsvariable SAMY_KEY und steht nie im Code.
- Fehler (400, 401, 429) werden sichtbar gemeldet und nicht verschluckt.
- [Beschreibe hier, wann eine Nachricht kommen soll und welche Knöpfe sie hat.]

Wenn Knöpfe ohne url vorkommen: Baue zusätzlich einen Webhook-Endpunkt, der die
Signatur im Header X-Samy-Signature prüft und auf button_id reagiert.
```

## Das Wichtigste in Kürze

Für Assistenten, die nur diese Seite lesen:

- **Senden:** `POST https://api-production-e537a.up.railway.app/v1/push`, Header `Authorization: Bearer <SAMY_KEY>` und `Content-Type: application/json`.
- **Body:** `text` ist Pflicht (bis 10.000 Zeichen). Optional: `title` (bis 80), `url`, `image`, `priority` (`normal`, `high`, `silent`), `buttons` (bis 3).
- **Knopf:** `{"id": "…", "label": "…"}` meldet den Tipp per Webhook. Mit zusätzlichem `"url"` öffnet er einen Link.
- **Erfolg:** Status 200 mit `{"message_id": "…"}`.
- **Fehler:** 400 `invalid_body`, 401 `missing_key` oder `invalid_key`, 429 `rate_limited` (60 Aufrufe pro Minute und Schlüssel).
- **Webhook:** `POST` an die Webhook-URL des Packlets mit `message_id`, `packlet_id`, `button_id`, `pressed_at`. Signatur: `X-Samy-Signature: sha256=<HMAC-SHA256(Body, sha256_hex(SAMY_KEY))>`.

Die Einzelheiten stehen auf [Nachricht senden](https://samy.sinio.io/docs/senden.md), [Knöpfe](https://samy.sinio.io/docs/knoepfe.md) und [Webhook](https://samy.sinio.io/docs/webhook.md).
