contenox

Ein offenes Agenten-Harness. Automatisierung, die du kontrollierst und besitzt.

Feuere Arbeit auf einen Agenten ab — unter einem Envelope, den du geschrieben hast. Häng dich aus. Unterbrochen wirst du nur, wenn der Envelope es sagt. Oder lass es headless über eine Aufgabenliste laufen, Zeile für Zeile, jede in sauberem Kontext.

$ curl -fsSL https://contenox.com/install.sh | sh
PS> irm https://contenox.com/install.ps1 | iex

Installiert contenox. Mit contenox init richtest du einen Workspace ein.

jedes Modell eine Binärdatei kein Konto SQLite deine Regeln in einer Datei, die du lesen kannst
GitHub stars Latest release Apache-2.0

Die Mission, live

Dreißig Sekunden, von Anfang bis Ende.

Ein Kommando feuert einen deklarierten Agenten auf eine Aufgabe ab, begrenzt durch eine Policy, die du geschrieben hast. Was passiert, nachdem du weggegangen bist, ist der Punkt.

# Mission unter strengem Envelope abfeuern
$contenox mission fire agent-reviewer "review the payment-retry PR for regressions" --wait
Mission gestartet · Envelope hitl-policy-strict.json
Die Unit liest den Diff, führt die Tests aus — erlaubte Regeln laufen still durch
⏸ Der Agent fragt: zwei Regressionen gefunden, Patch entworfen — auf den Branch anwenden?
keine Antwort: Run checkpointet, Ask gespeichert, Prozess freigegeben
# Laptop zu. Tage vergehen. Dann, aus jedem Terminal, das deine Modelle erreicht:
$contenox approvals list
Ask 8f3c · Patch anwenden? · Mission 01jm…
$contenox approvals respond 8f3c --answer "ja, anwenden"
Checkpoint fortgesetzt — genau einmal. Mission gelandet.
$contenox inbox list
Report · agent-reviewer: Befunde, Patch angewendet, Testergebnisse — warten auf dich

Kein Babysitten am Terminal, keine abgelaufenen Freigaben, keine stillen Änderungen. Der Envelope hat entschieden, was unbeaufsichtigt laufen darf, die Chain hat entschieden, wo ein Mensch das letzte Wort hat, und eine Antwort hat den Run genau einmal fortgesetzt.

Der Teil, den du nicht herunterladen kannst

Diese Maschine hast du längst benutzt. Nur die Kontrollen hattest du nie.

Wenn dir ein Assistent seine „Denkschritte“ zeigt, siehst du eine Orchestrierungs-Schleife: planen, Tool aufrufen, Ergebnis prüfen, Budget prüfen, neu entscheiden. Jedes große KI-Produkt läuft auf so einer Schicht — ereignisgetriebene Agenten-Choreografie unter Governance. Diese Schicht entscheidet, was das Modell darf, wann es pausiert und was es kostet. Der Anbieter konfiguriert sie. Du siehst sie nie — und ändern kannst du sie nicht.

Contenox ist diese Schicht, ausgeliefert als Produkt — mit dem Schaltpult in der Hand des Operators. Die Schleife ist eine Chain-Datei, die du schreibst. Die Grenzen sind ein Envelope, den du geschrieben hast. Der Zustand liegt auf deiner Platte. Der Unterschied ist nicht, die Maschine erfunden zu haben — sondern wer die Kontrollen hält.

Chain → Workflow → Agenten-Schleife

Ein Satz rein. Die Schleife, die dieser Satz verdient.

Eine Chain beginnt nicht mit einem Agenten. Sie beginnt mit einem route-Task, der die Anfrage liest, sie labelt und an die Schleife übergibt, die für dieses Label gebaut ist — mit eigener Instruktion, eigenem Tool-Umfang, eigenem Budget, eigenem Weg aus dem Fehlerfall. Die interaktiven Chains, die mit contenox kommen, sortieren jede Nachricht in coding_change, general oder review_change, bevor sonst irgendetwas läuft.

{
  "id": "classify_request",
  "handler": "route",
  "system_instruction": "Classify the user's latest message. Use 'coding_change'
    for requests to create, edit, refactor, fix, test or otherwise change
    code/files. Use 'general' for questions, explanations, setup help. Use
    'review_change' for requests to review, audit or assess code that already
    exists, where nothing is to be modified...",
  "execute_config": { "model": "{{var:alt_model|var:model}}", "tools": [] },
  "transition": {
    "on_failure": "acp_chat",
    "branches": [
      { "operator": "equals",  "when": "coding_change", "goto": "coding_chat" },
      { "operator": "equals",  "when": "general",       "goto": "acp_chat" },
      { "operator": "equals",  "when": "review_change", "goto": "review_chat" },
      { "operator": "default", "when": "",              "goto": "acp_chat" }
    ]
  }
}

Gekürzt aus der mitgelieferten chain-agent-acp.json. Der Klassifikator hat keine Tools, kann also nicht auf einer Anfrage handeln, die er noch nicht verstanden hat — und er darf auf einem günstigeren Modell laufen als die Schleifen, die er speist. Ein unbekanntes Label fällt in den default-Zweig: auf die schwächste Schleife, nie auf die stärkste. Welcher Zweig lief, steht im Run-Log — eine enttäuschende Antwort ist damit eine Frage, die eine Antwort hat.

Du schreibst die Regeln

Wie viel Agency? Das entscheidest du — schriftlich.

Jeder Run ist durch einen Envelope begrenzt: eine JSON-Policy, die benennt, was still durchläuft, was für einen Menschen pausiert und was verweigert wird — plus harte Obergrenzen für Tool-Aufrufe und Tokens und eine Festlegung, welche Modelle und Backends die Unit nutzen darf. Kein versteckter Prompt entscheidet für dich. Die Datei liegt in deinem Repo und wird reviewt wie jede andere Änderung.

{
  "default_action": "approve",
  "compute": { "maxToolCalls": 300, "maxTokens": 2000000, "onExhausted": "finish_stuck" },
  "rules": [
    { "tools": "local_fs", "tool": "*", "action": "deny",
      "when": [{ "key": "path", "op": "glob",
                 "value": "**/{.ssh,.aws,.kube,.config/gcloud}/**" }] },
    { "tools": "local_fs", "tool": "read_file", "action": "allow" },
    { "tools": "local_fs", "tool": "write_file", "action": "approve" },
    { "tools": "local_shell", "tool": "local_shell", "action": "allow",
      "when": [{ "key": "command", "op": "command_prefix_allowlist",
                 "value": "go test,go vet,ls,cat,grep,npm test,pytest" }] },
    { "tools": "local_shell", "tool": "local_shell", "action": "approve" }
  ],
  "attention": { "allowAgentAnswers": false }
}

Gekürzt aus dem mitgelieferten Default-Preset. Was keine Regel trifft, schlägt geschlossen fehl — es fragt einen Menschen. Sechs Presets kommen mit contenox init, und contenox vet prüft deine Policy, bevor irgendetwas unter ihr läuft.

Terminal-Demo: Ein destruktives rm-Kommando stoppt vor der Ausführung an einem Freigabe-Gate

Agentic Engineering

Vibecoding findet die Schleife. Loop Engineering behält sie.

Vibecoding ist echte Entdeckung — mit einem Agenten improvisieren, bis die Schleife funktioniert. Wir haben so Features gebaut und ehrlich aufgeschrieben, was es gekostet hat. Aber eine Schleife, die morgen laufen muss, in der CI, unbeaufsichtigt, ist kein Vibe mehr. Sie ist ein Artefakt.

Das ist Agentic Engineering: Die Schleife wird geschrieben, reviewt, versioniert und begrenzt — und welche Schleife läuft, wird ebenfalls geschrieben. Jede Stufe in einer contenox-Chain entstand aus einem benannten Fehlermodus, unter einer Disziplin: Verwirrung darf nie unbeaufsichtigt in Mutation kippen.

Ein Harness, überall

Einmal schreiben. Laufen lassen, wo die Arbeit ist.

Derselbe agentische Workflow, derselbe Envelope, derselbe Sitzungszustand hinter jeder Oberfläche — was du im Editor freigegeben hast, ist das, was aus dem Cron läuft.

Dein Terminal

contenox new öffnet eine frische Session für Chat, Plan und Shell; contenox resume öffnet die letzte wieder, mit ihrem Transkript. Zustandsbehaftete Tools behalten ihren Zustand über die Turns, und eine Freigabe ist eine Ein-Tasten-Karte im Transkript.

Dein Editor

Der komplette Agent in Zed, JetBrains, AionUi oder OpenClaw — Freigaben laufen über die Oberfläche des Editors, und der Workflow bleibt in der Chain-Datei, nicht im Plugin.

Deine Skripte und Pipelines

contenox run führt eine Chain nicht-interaktiv aus — aus Cron, CI oder einem Shell-Skript. Tool-lastige Jobs sind das Heimspiel: Release-Evidenzpakete, Request-Processing-Chains, schmale API-Wrapper mit Freigabe für jeden schreibenden Aufruf.

Nicht vertraute Treiber

Eine headless acpx-Session bekommt das gehärtete Profil: Shell, Writes und Netzwerk werden verweigert — statt zur Freigabe angeboten.

contenox new im Terminal: eine Aufgabe in natürlicher Sprache, contenox liest das Repo und antwortet in derselben Session

Derselbe Platz, zwei Besetzungen

Copilot hilft dir beim Tippen. Contenox fährt die Schicht, während du weg bist.

Die KI, die bei der Arbeit für dich arbeitet, ist ein Platz — und es gibt zwei Arten, ihn zu besetzen. Der Agent des Anbieters läuft auf deiner Arbeit: Verhalten wird in Redmond entschieden, Regeln, die du nicht lesen kannst, gesteuert vom Tenant-Admin, deine Nutzung fließt in fremde Telemetrie.

Contenox ist der andere Weg: dein Agent unter deinem Envelope — Regeln, die du geschrieben hast, Zustand auf deiner Platte, Modelle, die du gewählt hast. Keine zwei Kategorien. Eine Kategorie, von zwei Enden her besetzt.

Standardmäßig deins

Dein Rechner, dein Zustand, deine Modelle.

Optional: das gehostete Relay

Deine Session, auf deinem Handy.

Alles oben läuft ohne Konto. Wenn eine laufende Session von woanders erreichbar sein soll, pairst du den Rechner mit dem gehosteten Relay: ein getippter Schlüssel aus der contenox-App, kein Browser auf der Maschine. Der Rechner baut die Verbindung selbst nach außen auf und sendet genau zwei Dinge — den Schlüssel und seinen Hostnamen. Danach liest du das Transkript und beantwortest Freigaben vom Handy. Kostenlos für dich und drei Teamkollegen, je eine Maschine — und eine Installation, die nie pairt, kontaktiert kein Relay.

Wir können contenox-Agenten auch für dich provisionieren und betreiben — managed, zu deinen Bedingungen — und suchen dafür frühe Design-Partner: sprich mit uns.

Außerdem an Bord

Es liest Go wie der Compiler

Definition, References, Implementations, Symbols, Diagnostics — beantwortet in-process vom echten Type-Checker, warm in Mikrosekunden. Kein Language-Server zu installieren oder zu pflegen.

Frag das Repo, bekomm zitierte Zeilen

contenox index baut einen hybriden Volltext-plus-Embedding-Index in lokalem SQLite; contenox search antwortet mit file:line-Zitaten und markiert einen Treffer als veraltet, sobald sich seine Datei ändert.

Loslegen

Feuere deine erste Mission ab.

$ curl -fsSL https://contenox.com/install.sh | sh
PS> irm https://contenox.com/install.ps1 | iex

Fragen? hello@contenox.com · Issues und PRs auf GitHub

Baut auf

Lokale Modelle laufen über Ollama oder vLLM und deren lokale APIs; gehostete Provider über ihre öffentlichen APIs. Keine mitgelieferte Inferenz-Runtime, keine GPU-Treiber im Paket.

Esc to close