TaskMonkey Handbuch

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 Chatpublic.php:

<?php
return [
    'public.tools' => [
        'sayHello',
    ],
];

In einem Assistantassistants/<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

Zuletzt aktualisiert: 2026-04-28