Starten in 5 Minuten
Vom leeren Ordner zum eigenen Tool, das live im Chat antwortet — mit Claude Code als Co-Pilot.
Voraussetzungen: Login + Mandant + Node.js auf der Maschine. Außerdem Claude Code als Editor — die ganze Konfiguration ist PHP, also funktioniert jeder Editor, aber Claude versteht den Code-Style und kennt die Konventionen aus den anderen Tools.
1. TaskMonkey-CLI installieren
npm install -g taskmonkey-cli
Test:
tm --help
2. Ordner anlegen und reingehen
mkdir my-workspace && cd my-workspace
3. Git-Repo initialisieren
git init
git remote add origin <deine-repo-url>
Hinweis: Für Versionierung bist du selbst verantwortlich. TaskMonkey synct nur die Konfiguration zum Server — Backups und Historie sind dein eigenes Repo.
4. Einloggen, Config holen, Watcher starten
Fenster 1 — Setup:
tm login # E-Mail + Passwort, Mandant auswählen
tm pull # holt deine aktuelle Config (falls schon vorhanden) + Doku + Claude-Setup
Fenster 2 — Watcher (lass es offen):
tm watch
tm watch ist dein Live-Draht: jede Datei-Änderung wird automatisch zum Server gesynct, und du siehst direkt Tool-Calls, Logs und Errors deines Mandanten im Stream. So weißt du sofort, ob deine Änderung greift.
5. Mit Claude Code arbeiten
Starte Claude Code im Workspace:
claude
Ein Beispiel-Prompt, den du gleich ausprobieren kannst:
Lege ein Tool `sayHello` an. Es nimmt einen `name`-Parameter und gibt eine Begrüßung zurück.
Was Claude daraus macht, sieht ungefähr so aus — tools/sayHello.php:
<?php
return [
'tools.sayHello' => [
'description' => 'Gibt eine freundliche Begrüßung für den übergebenen Namen zurück.',
'parameters' => [
'type' => 'object',
'properties' => [
'name' => [
'type' => 'string',
'description' => 'Der Name der Person, die begrüßt werden soll.',
],
],
'required' => ['name'],
],
'handler' => function (array $results, array $args, array $ctx): array {
return [
'success' => true,
'greeting' => "Hallo, {$args['name']}! Schön, dich zu sehen.",
];
},
],
];
Sobald du speicherst, sieht Fenster 2 den Sync — neben der neuen Tool-Datei werden meistens auch der System-Prompt und apis.php mitsynced, weil Claude die Skelette gleich mit ausgefüllt hat:
+ tools/sayHello.php
✓ 3 files synced
apis.php
public.php
tools/sayHello.php
6. Tool für den Chat freigeben
Tools, die nicht explizit gelistet sind, sieht das Modell im Chat nicht. Es gibt zwei Stellen, an denen du sayHello freigeben musst — je nachdem, in welchem Chat du es nutzen willst:
Im öffentlichen Chat — public.php:
<?php
return [
'public.tools' => [
'sayHello',
],
];
In einem Assistant — assistants/<name>.php:
'tools' => [
'sayHello',
],
Speichern → tm watch synct → Tool ist sichtbar.
7. Im Chat live sehen
Direkter Tool-Call:
tm test-tool sayHello name=Max
✓ sayHello (19ms)
{
"success": true,
"greeting": "Hallo, Max! Schön, dich zu sehen."
}
Über den Chat ist es etwas kniffliger. Der Prompt muss so formuliert sein, dass das Modell das Tool wirklich braucht — sonst antwortet es einfach selbst:
tm test-chat "Begrüße Max bitte über die sayHello-Funktion"
Hallo, Max! Schön, dich zu sehen.
Das ist kein Bug, sondern Tool-Logik im Allgemeinen: ein LLM ruft ein Tool nur auf, wenn die Aufgabe ohne Tool nicht (oder schlechter) lösbar wäre. Eine simple Begrüßung schafft das LLM von alleine — also würde es sayHello ignorieren. Bei echten Tools (DB-Abfrage, externe API, Stammdaten-Lookup) gibt es dieses Problem nicht, weil das Modell die Daten ohne Tool nicht hat.
Oder visuell im Browser: https://app.taskmonkey.de/manage/testing → Tab Tools.
Cheatsheet
| Befehl | Was er tut |
|---|---|
tm login |
Server + Mandant + Token einrichten |
tm pull |
Server-Config nach lokal holen |
tm watch |
Auto-Sync + Live-Logs (Fenster offen lassen) |
tm sync |
Einmalig hochladen (statt watch) |
tm test-tool <name> key=value … |
Ein Tool isoliert ausführen |
tm test-chat "<message>" |
Einmalige Chat-Anfrage gegen das Live-System |
tm test-conversations |
Alle E2E-Conversation-Tests laufen lassen |
tm chat |
Interaktiver Chat-REPL |
tm tasks |
Verfügbare Assistenten listen |
tm history <task-id> |
Letzte Chat-Messages eines Tasks |
tm monitor |
Live-Stream aller Tool-Executions |
tm logs |
Server-Logs streamen (oder leeren mit --clear) |
Volle CLI-Referenz: 12-cli/overview.
Wo es weitergeht
- Eigene Tools strukturieren: Tools-Ordner
- Externe APIs anbinden: APIs in apis.php
- Assistenten definieren: Scheduled Tasks
- Prompts schreiben: System-Prompts