toolcontroller (2.0.0)
Installation
registry=https://git.hg-int.dev/api/packages/toolctrl-labs/npm/npm install toolcontroller@2.0.0"toolcontroller": "2.0.0"About this package
ToolController
Die autonome Coding-Plattform, die deine gesamte Dev-Toolchain ersetzt.
Ein Befehl. Weggehen. Wiederkommen. Projekt ist gebaut.
tc — von ToolCTRL Labs
Was ist das?
ToolController ist eine selbst-gehostete Coding-Orchestrierungsplattform, die kleinen Teams die Schlagkraft einer 10-Personen-Engineering-Abteilung gibt. Sie verbindet KI-Agenten direkt mit deiner Codebase, deinem Git-Server und deiner Infrastruktur — und lässt sie autonom planen, ausführen, verifizieren und shippen.
Kein Chatbot. Kein Code-Assistent. Eine Execution Engine, die ein Ziel entgegennimmt und funktionierenden Code liefert — getestet und committed.
Ein Binary. Ein Befehl. Echte Ergebnisse.
tc # Web-UI starten (Standard)
tc --tui # Terminal-UI
tc headless "bau die API" # CI/CD-Modus — kein UI, nur Ergebnisse
Warum nicht einfach X benutzen?
GSD2 — der nackte Motor ohne Karosserie
GSD2 ist der Open-Source-Agent von dem ToolController den Kern übernommen hat. Und das war's dann auch schon mit den Gemeinsamkeiten. GSD2 ist ein CLI-Tool für Einzelkämpfer. Kein Login, kein Multi-User, kein Web-UI. Jeder kocht seine eigene .env-Suppe, Provider-Bloat mit 10+ Anbietern von denen die Hälfte keiner braucht, und wenn dein Kollege am gleichen Repo arbeiten will — viel Glück.
| GSD2 | ToolController | |
|---|---|---|
| Wer nutzt es? | Ein Typ alleine im Terminal | Ganze Teams parallel |
| Auth | Keine. Jeder ist root. | Login, RBAC, Gitea-Anbindung |
| Keys | Jeder pflegt eigene .env | Admin-Vault, zentral, sicher |
| Git | Du machst alles selbst | Auto-Branch pro User, PR-Workflow |
| UI | Nur TUI | Web-UI + TUI |
| Provider | 10+ Stück, Hälfte broken | 5 kuratierte die funktionieren |
| Deployment | Nur lokal | Server mit PostgreSQL, Multi-User |
| Repos | Nur pwd |
Multi-Repo via Gitea |
GSD2 ist ein Motor auf einem Holzbock. ToolController ist das fertige Fahrzeug.
BMAD — Rollenspiel ohne Hände
BMAD (Build Manage Architect Deploy) klingt erstmal beeindruckend. Dann schaut man rein und merkt: Es ist eine Markdown-Sammlung. Rollen, Personas, Workflow-Templates — alles als Textdateien, die man in Claude oder ChatGPT reinkopiert und hofft, dass der Agent sich dran hält.
Kein Runtime. Keine Tools. Kein Git. Keine Verifikation. Der Agent "plant" in einer Chat-Bubble und du darfst den Output selbst in Dateien kopieren. Wenn was schiefgeht, fängst du von vorne an, weil Sessions nicht persistiert werden.
| BMAD | ToolController | |
|---|---|---|
| Was ist es? | Prompt-Sammlung in Markdown | Plattform mit echtem Runtime |
| Ausführung | Du kopierst Output in Dateien | Agent schreibt direkt ins Repo |
| Tools | Keine. Nur Text. | Bash, Read, Write, Edit, Grep, Find + 20 Extensions |
| Git | Mach selbst | Automatisch — Branch, Commit, PR |
| Verifikation | Du liest und hoffst | Agent verifiziert seine eigene Arbeit |
| Sessions | Weg nach Browser-Refresh | Persistiert, Resume, History |
| Multi-User | Nein | Ja, mit Rollen und isolierten Branches |
BMAD gibt dem Agenten eine Visitenkarte. ToolController gibt ihm einen Arbeitsplatz mit Werkzeug.
Claude Code / Cursor / Copilot — teuer, fremdgehostet, limitiert
Diese Tools haben einen gemeinsamen Nenner: Du gibst deine Daten an Dritte, zahlst Pro-Seat-Lizenzen, bist an einen Anbieter gekettet, und hast null Kontrolle über die Infrastruktur.
Cursor? Schick, aber dein Code geht durch deren Server. Claude Code? An Anthropic gebunden, ein Modell, kein Team-Feature. GitHub Copilot Workspace? Microsoft entscheidet was du darfst und was nicht. Keines dieser Tools lässt dich Repos zentral verwalten, Keys zentral speichern, oder User mit Rollen versehen.
| Claude Code / Cursor | ToolController | |
|---|---|---|
| Deine Daten | Bei denen. Cloud. | Bei dir. Dein Server. |
| Multi-User | Einzelplatz | Team mit Admin-Panel |
| Modelle | Nimm was wir haben | 5 Provider, frei wechselbar |
| Kosten | $20-40/Monat/Seat | Nur API-Kosten. Keine Plattformgebühr. |
| Git | Basic | Auto-Branch + PR pro User |
| Admin | Gibt's nicht | Key-Vault, RBAC, Audit-Trail |
| Erweiterbar | Kaum | 20+ Extensions, MCP-Server, RPC |
| Offline | Vergiss es | Ollama = komplett lokal, zero Cloud |
Die anderen sind SaaS-Produkte bei denen du Mieter bist. ToolController ist dein Eigentum.
So funktioniert's
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Web-UI │────▶│ Agent Engine │────▶│ Deine Codebase │
│ (Next.js) │ │ (LLM + Tools) │ │ (Git-Repos) │
└─────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
│ ┌──────┴──────┐ │
│ │ │ │
▼ ▼ ▼ ▼
┌─────────┐ ┌───────────┐ ┌──────────┐ ┌────────────┐
│ Auth & │ │ Provider │ │ Tool │ │ Branch pro │
│ RBAC │ │ Router │ │ Suite │ │ User + PR │
│ (PG) │ │ (5 LLMs) │ │ (12+) │ │ Workflow │
└─────────┘ └───────────┘ └──────────┘ └────────────┘
Der Agent-Loop
- Du beschreibst was du willst — im Web-UI, TUI oder Headless-Modus
- Der Agent plant — zerlegt die Aufgabe in Schritte, identifiziert Dateien, mappt Abhängigkeiten
- Der Agent führt aus — schreibt Code, führt Befehle aus, liest Output, iteriert
- Der Agent verifiziert — prüft seine eigene Arbeit gegen das Ziel, führt Tests aus
- Der Agent committed — saubere Git-History auf deinem Branch, bereit für PR
Der Agent hat echte Tools: Bash, Read, Write, Edit, Grep, Find, Ls — er halluziniert keine Dateiinhalte, er liest sie. Er rät nicht bei Fehlern, er führt den Code aus.
KI-Provider
ToolController ist nicht an ein Modell gebunden. Frei wechselbar:
| Provider | Modelle | Einsatz |
|---|---|---|
| Anthropic | Claude Opus, Sonnet, Haiku | Primärer Coding-Agent |
| OpenAI | GPT-4.1, o3, o4-mini | Alternatives Reasoning |
| Ollama | Llama, Qwen, DeepSeek, etc. | Lokal/privat, kostenlos |
| OpenRouter | 200+ Modelle | Zugriff auf alles |
| Claude Code | Via lokales CLI | OAuth-basiert, kein API-Key nötig |
Alle Keys werden in einem zentralen Admin-Vault gespeichert — User sehen oder verwalten keine API-Keys.
Plattform-Features
Multi-User & Zugriffskontrolle
- Login-geschütztes Web-UI — kein anonymer Zugang, Admin erstellt Accounts
- Rollenbasierter Zugriff — Admin / User / Viewer mit Berechtigungsgrenzen
- Gitea-Integration — jeder Account wird an eine git.tool-ctrl.de Identität gebunden
- Branches pro User — paralleles Arbeiten ohne sich ins Gehege zu kommen
Repository-Verwaltung
- Repos klonen von deinem Gitea-Server direkt im Admin-Panel
- Sync auf Knopfdruck — neueste Änderungen mit einem Klick ziehen
- Branch-Isolation — jeder User bekommt seinen eigenen Branch pro Aufgabe
- PR-Workflow — Merge nach Main über Pull Requests, nicht direkte Pushes
Admin-Panel
- User-Verwaltung — Accounts erstellen, Rollen zuweisen, Gitea-Usernamen verknüpfen
- API-Key-Vault — zentralisierte Credential-Speicherung für alle Provider
- Repository-Config — Repos hinzufügen, syncen und verwalten an einem Ort
Agent-Fähigkeiten
- Session-Persistenz — da weitermachen wo du aufgehört hast, Session-History mit Suche
- Worktree-Isolation — Agenten in Git-Worktrees für konfliktfreies paralleles Arbeiten
- Extension-System — Browser-Tools, Background Shell, Subagenten, Voice, Suche
- MCP-Server-Modus — ToolController als Tools für externe Agenten bereitstellen
- RPC-Modus — JSON-RPC über stdin/stdout für programmatische Steuerung
- Headless-Modus — CI/CD-ready, Tasks reinpipen, strukturierten Output bekommen
Sicherheit & Guardrails
- Approval Gates — Hochrisiko-Operationen pausieren für menschliche Bestätigung
- Quality Checkpoints — konfigurierbare Verifikation vor Commits
- Audit Trail — jeder Tool-Call, jede LLM-Interaktion, jeder Credential-Zugriff geloggt
- Token-Tracking — pro-Session Kosten- und Nutzungsmetriken mit Provider-Aufschlüsselung
- Key Rotation — Credential-Lifecycle-Management mit Health Signals
Architektur
toolcontroller/
├── bin/tc # CLI-Einstiegspunkt
├── tc-engine/ # Agent Engine (Loop, Streaming, Tools, Sessions)
│ ├── cli.ts # CLI-Befehlsrouter
│ ├── loader.ts # Bootstrap & Umgebungssetup
│ ├── web-mode.ts # Web-Server-Launcher
│ └── resources/ # Extensions, Prompts, Skills, Agenten
├── packages/
│ ├── pi-ai/ # KI-Provider-Abstraktion (5 Provider)
│ ├── pi-agent-core/ # Agent-Loop, Tool-Ausführung, Session-Management
│ ├── pi-coding-agent/ # Coding-spezifischer Agent mit Resource-Loading
│ ├── pi-tui/ # Terminal-UI (Ink-basiert)
│ ├── native/ # Rust N-API Bindings (Grep, Parser, Git)
│ ├── mcp-server/ # MCP-Server für externe Agent-Integration
│ ├── rpc-client/ # Standalone RPC-Client SDK
│ └── daemon/ # Hintergrundprozess für Monitoring
├── src/ # ToolController Business Layer
│ ├── core/ # Auth, RBAC, Audit, Keys, Guardrails, Workflow
│ ├── server/ # PostgreSQL, Server-Auth, Migrationen
│ └── web/ # Web-Service-Layer (Bridge, Settings, etc.)
└── web/ # Next.js 16 Web-UI
├── app/ # Seiten: Login, Dashboard, Admin, Workspace
├── components/tc/ # UI-Komponenten (Dashboard, Chat, Files, Logo)
└── lib/ # Auth-Context, Workspace-Store, Utilities
Schnellstart
# Voraussetzungen: Node.js >= 22, Git
# Klonen
git clone git@git.tool-ctrl.de:toolctrl-labs/ToolController.git
cd ToolController
# Abhängigkeiten installieren
npm install
cd web && npm install && cd ..
# Starten
./bin/tc # Web-UI (Standard)
./bin/tc --tui # Terminal-UI
./bin/tc --version # 2.0.0-dev
Server-Modus (Multi-User)
# Benötigt PostgreSQL
export __TC_SERVER=true
export TC_DB_HOST=localhost
export TC_DB_PORT=5432
export TC_DB_NAME=toolcontroller
export TC_DB_USER=tc
export TC_DB_PASSWORD=secret
# Starten
./bin/tc --web
Der erste im Admin-Panel erstellte User wird automatisch Admin. Alle weiteren Accounts werden von Admins provisioniert.
Tech-Stack
| Schicht | Technologie |
|---|---|
| Runtime | Node.js 22+ (ESM, Type Stripping) |
| KI-Engine | Custom Agent-Loop mit Streaming und paralleler Tool-Ausführung |
| Web-UI | Next.js 16, React 19, Tailwind CSS 4, Motion |
| Datenbank | PostgreSQL (Server-Modus), SQLite (Lokal-Modus) |
| Native | Rust via N-API (Grep, Parser, Git-Operationen) |
| CLI | TypeScript, tsx Loader |
| Auth | Session-Tokens, RBAC (Admin/User/Viewer), Cookie + Bearer |
Zahlen
- 574K Zeilen Code
- 2.600+ Dateien
- 314 Commits
- 8 Core-Packages
- 5 KI-Provider
- 12+ Agent-Tools
- 20+ Extensions
Gebaut von ToolCTRL Labs
Schneller shippen. Weniger breaken.
Dependencies
Dependencies
| ID | Version |
|---|---|
| @anthropic-ai/sdk | ^0.73.0 |
| @google/genai | ^1.49.0 |
| @mariozechner/jiti | ^2.6.5 |
| @modelcontextprotocol/sdk | ^1.29.0 |
| @playwright/test | ^1.59.1 |
| @silvia-odwyer/photon-node | ^0.3.4 |
| @sinclair/typebox | ^0.34.49 |
| ajv | ^8.18.0 |
| ajv-formats | ^3.0.1 |
| better-sqlite3 | ^12.8.0 |
| bullmq | ^5.73.3 |
| chalk | ^5.6.2 |
| chokidar | ^5.0.0 |
| diff | ^8.0.4 |
| express | ^5.2.1 |
| extract-zip | ^2.0.1 |
| file-type | ^22.0.0 |
| get-east-asian-width | ^1.5.0 |
| glob | ^13.0.6 |
| hosted-git-info | ^9.0.2 |
| ignore | ^7.0.5 |
| ioredis | ^5.10.1 |
| keytar | ^7.9.0 |
| marked | ^18.0.0 |
| mime-types | ^3.0.2 |
| minimatch | ^10.2.5 |
| oclif | ^4.23.0 |
| open | ^10.2.0 |
| openai | ^6.34.0 |
| openid-client | ^6.8.2 |
| pg | ^8.20.0 |
| playwright | ^1.59.1 |
| proper-lockfile | ^4.1.2 |
| proxy-agent | ^6.5.0 |
| sql.js | ^1.14.1 |
| strip-ansi | ^7.2.0 |
| undici | ^7.24.7 |
| ws | ^8.20.0 |
| yaml | ^2.8.3 |
| zod | ^4.3.6 |
| zod-to-json-schema | ^3.25.2 |
Development Dependencies
| ID | Version |
|---|---|
| @types/better-sqlite3 | ^7.6.13 |
| @types/express | ^5.0.6 |
| @types/node | ^24.0.0 |
| @types/pg | ^8.20.0 |
| @types/supertest | ^7.2.0 |
| @types/ws | ^8.18.1 |
| discord.js | ^14.26.2 |
| supertest | ^7.2.2 |
| tsx | ^4.21.0 |
| typescript | ^6.0.2 |
| vitest | ^4.1.3 |
