tstack installieren und nutzen: Theos 9 Agent-Skills in Claude Code und Codex getestet, sol-loop läuft mit demselben Key auf GPT-6.1 Sol

Theo hat tstack veröffentlicht, die 9 Agent-Skills, die er jeden Tag nutzt. Wir haben sie in Claude Code 2.1.310 und Codex 0.164.0 mit einem einzigen API Key dieser Seite getestet: Installation in etwa 3 s; sol-loop lief in Codex 2 Runden in 62 s, in Claude Code nach dem Anlegen eines Sol-Subagenten 2 Runden in 70 s. Auf beiden Seiten fand gpt-6.1-sol einen Bug durch Ganzzahldivision. Außerdem: warum full-send den Agenten PRs selbst mergen lässt und mit welcher Konfiguration Sie das Mergen in beiden Clients blockieren.

8 分钟阅读
tstack installieren und nutzen: Theos 9 Agent-Skills in Claude Code und Codex getestet, sol-loop läuft mit demselben Key auf GPT-6.1 Sol

Kurz gesagt: tstack ist eine Sammlung von 9 Agent-Skills, die Theo (t3dotgg) am 26. Oktober als Open Source veröffentlicht hat. Installiert wird, indem man die Ordner nach ~/.claude/skills/ oder ~/.codex/skills/ kopiert. Wir haben Claude Code und Codex mit demselben API Key dieser Seite verbunden. Ergebnisse:

  • Installation (Repo klonen + in beide Clients kopieren): etwa 3 s;
  • In Codex 0.164.0 genügte „sol loop“, und es startete einen gpt-6.1-sol-Subagenten für das Review: 2 Runden, 62 s, dabei wurde ein Bug durch Ganzzahldivision gefunden und behoben;
  • Claude Code 2.1.310 kann sol-loop nicht direkt ausführen und meldet ehrlich „kein Weg kann Sol ausführen“; nach dem Anlegen eines Subagenten mit model: gpt-6.1-sol lief es in 2 Runden, 70 s;
  • full-send lässt den Agenten PRs selbst mergen. Wir haben auf beiden Seiten eine Regel gegen gh pr merge eingerichtet, und beide haben den Befehl im Test blockiert.

API Key erstellen und Claude Code und Codex mit einem Key verbinden →

Was ist tstack

Laut Theos Ankündigungspost auf X ist tstack „die Skills, die ich jeden Tag nutze“, aufgeräumt und veröffentlicht. Als wir diesen Text schrieben, hatte der Post etwa 440.000 Aufrufe und das GitHub-Repo etwa 2.000 Sterne, unter MIT-Lizenz. Laut README funktioniert es in Claude Code und in Codex; manche Skills nutzen Funktionen von T3 Code, wenn vorhanden, und greifen sonst auf die eingebauten Werkzeuge des Clients zurück.

Die 9 Skills und ihre Auslöser (laut README des Repos):

SkillSagenWas er tut
full-sendfull sendUnbeaufsichtigt: Änderung fertigstellen, belegen, reviewen, PR einreichen, CI beobachten und dann selbst mergen
full-stopfull stopWie full-send, hält aber bei „bereit zum Mergen“ an und merged nicht
councilcouncilLässt drei Modelle verschiedener Anbieter reviewen, bis sie sich einig sind
sol-loopsol loopLässt GPT Sol die Änderung in einer Schleife reviewen, bis beide Agenten zustimmen
file-prfile a PRReicht einen kurzen PR ein, der mit dem Problem beginnt statt mit einer Liste der Änderungen
takeovertake overBringt den PR, Branch oder Agent-Thread eines anderen zu Ende und nennt ihn weiter als Urheber
babysit-prbabysitBegleitet einen PR durch CI und Review-Bots und behebt echte Befunde
modernizemodernizeRebased einen alten PR und entscheidet, ob er noch existieren sollte
leaving-pr-commentsautomatischLegt das Format für Kommentare fest, die der Agent in Ihrem Namen schreibt

Die Skills hängen voneinander ab: full-send nutzt sol-loop, file-pr und babysit-pr; full-stop nutzt full-send. Am einfachsten ist es, alle zu installieren.

Schritt 1: Claude Code und Codex einrichten

Beide Clients können denselben Key dieser Seite verwenden.

Für Claude Code in die globale ~/.claude/settings.json:

json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.aicodewith.ai",
    "ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY"
  },
  "model": "claude-sonnet-5-5"
}

Die Adresse ist https://api.aicodewith.ai, ohne /v1. Alle Schritte finden Sie unter Claude Code mit einer Drittanbieter-API verbinden.

Für Codex in die globale ~/.codex/config.toml:

toml
model = "gpt-6.1-sol"
model_provider = "aicodewith"

[model_providers.aicodewith]
name = "aicodewith"
base_url = "https://api.aicodewith.ai/chatgpt/v1"
wire_api = "responses"
experimental_bearer_token = "YOUR_API_KEY"

Was jedes Feld bedeutet, steht unter Codex config.toml erklärt.

Schritt 2: tstack installieren

bash
git clone https://github.com/t3dotgg/tstack
mkdir -p ~/.claude/skills ~/.codex/skills
cp -R tstack/skills/* ~/.claude/skills/   # Claude Code
cp -R tstack/skills/* ~/.codex/skills/    # Codex

Diese Schritte dauerten im Test etwa 3 s. Danach zeigt Claude Code die Skills beim Start an, und Codex liest die passende SKILL.md, sobald Sie einen Auslöser sagen. Was Skills sind und wo sie liegen, steht unter Skills in KI-Agenten nutzen.

Zwei weitere Voraussetzungen: Skills, die PRs einreichen, etwa full-send und babysit-pr, brauchen eine angemeldete GitHub CLI (gh); das Warteskript von babysit-pr braucht python3.

Schritt 3: GPT Sol mit demselben Key aufrufen und sol-loop starten

Prüfen Sie zuerst, ob der Key Sol erreicht. Die Modellliste dieser Seite enthält gpt-6.1-sol. Wir haben einen Satz an den Responses-Endpunkt geschickt und nach etwa 4 s HTTP 200 erhalten:

bash
curl https://api.aicodewith.ai/chatgpt/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-6.1-sol","input":"Reply with exactly: SOL_OK"}'

Das Testprojekt ist winzig: calc.py in average() bekam eine Prüfung auf leere Listen, aber dieselbe Änderung machte aus / auch //. Die vorhandenen Tests prüfen nur einen ganzzahligen Mittelwert, also bleiben sie grün. Diesen Bug soll Sol finden.

In Codex

Im Projektordner ausführen:

bash
codex exec --sandbox workspace-write "sol loop: review the current uncommitted changes (no remote, use HEAD as the base). After approval, do not commit or push."

Nach 62 s war es fertig. Das Sitzungsprotokoll zeigt: Codex suchte zuerst delegate_task von T3 Code, fand es nicht und startete mit dem eingebauten spawn_agent einen Subagenten mit "model":"gpt-6.1-sol". Ablauf:

  • Runde 1: Sol wies darauf hin, dass average([1, 2]) den Wert 1 statt 1.5 liefert;
  • Der Haupt-Agent stellte / wieder her, fügte einen Test test_average_fractional hinzu und prüfte, dass dieser Test am alten Code scheitert;
  • Runde 2: Sol gab die Freigabe. Es wurde nichts committet oder gepusht.

Abschlussbericht von Codex (aus dem Original übersetzt):

text
2 Runden sol-loop abgeschlossen. GPT-6.1 Sol hat final freigegeben; nichts ist offen.
- S1 behoben: Ganzzahldivision verfälschte nicht ganzzahlige Mittelwerte; / wiederhergestellt, Behandlung leerer Listen beibehalten, Regressionstest ergänzt.
Nicht committet, nicht gepusht; die Änderungen bleiben im Arbeitsverzeichnis.

In Claude Code

Sagt man nur „sol loop“, verweigert Claude Code die Ausführung. Antwort nach 11 s (aus dem Original übersetzt):

text
Das Sol-Review konnte nicht laufen, daher hat diese Änderung das Review nicht bestanden.
Blocker: Hier gibt es keinen Weg, Sol auszuführen... Nach den Regeln von sol-loop ersetze ich Sol nicht durch ein anderes Modell und werte ein fehlendes Review nicht als Freigabe.

Das ist eine Regel des Skills selbst: In Claude Code läuft er nur mit einem Subagenten, der Sol ausführen kann, und er darf nicht auf ein anderes Modell wechseln. Die Lösung ist, ~/.claude/agents/sol-reviewer.md anzulegen:

markdown
---
name: sol-reviewer
description: Read-only code reviewer running GPT Sol. Use for the sol-loop skill.
model: gpt-6.1-sol
tools: Read, Grep, Glob, Bash
---
You are a read-only code reviewer. Never edit, commit, or push. Follow the review brief you are given and reply in its exact format.

Der Anthropic-kompatible Endpunkt dieser Seite kann ebenfalls gpt-6.1-sol aufrufen, also nutzt dieser Subagent denselben Key. Noch einmal ausführen:

bash
claude -p "sol loop: review the current uncommitted changes (no remote, use HEAD as the base). After approval, do not commit or push." --permission-mode acceptEdits

70 s und 2 Runden, gleiches Ergebnis wie in Codex: In Runde 1 lieferte Sol VERDICT: CHANGES und wies auf das Divisionsproblem hin; nach dem Fix lieferte Runde 2 VERDICT: APPROVE. Die Nutzungsstatistik in der Ausgabe listet sowohl claude-sonnet-5-5 (Haupt-Agent) als auch gpt-6.1-sol (Review-Subagent), also hat wirklich Sol das Review gemacht.

Beim Start gibt Claude Code einen Hinweis unrecognized_model aus, weil es den Namen gpt-6.1-sol nicht kennt. Den können Sie ignorieren, er beeinträchtigt den Lauf nicht. Mehr zur Einrichtung von Subagenten unter Subagenten in Claude Code konfigurieren.

SzenarioErgebnisDauer
Klonen + in beide Clients kopierenErfolgreichetwa 3 s
sol-loop in Codex 0.164.02 Runden, Sol gibt frei62 s
Claude Code 2.1.310, ohne Sol-SubagentMeldet Blocker, kein Review11 s
Claude Code 2.1.310 mit sol-reviewer2 Runden, Sol gibt frei70 s

API Key erstellen und sol-loop in Claude Code und Codex ausführen →

Das Risiko von full-send: Sie erlauben dem Agenten, selbst zu mergen

full-send: Die SKILL.md ist deutlich. Wenn Sie „full send“ sagen, schauen Sie dem Thread nicht zu, und der Agent bringt die Änderung bis zum Merge in den Hauptbranch. Er gibt dem Agenten ausdrücklich drei Rechte:

  • Sobald das Merge-Gate erfüllt ist, den PR selbst mergen;
  • Nach einem Rebase den eigenen Branch des PR mit --force-with-lease force-pushen;
  • Regeln im Projekt wie „frag mich vor solchen Tests“ überspringen und die Tests direkt ausführen.

Es gibt Grenzen: kein --admin, um Branch-Schutz zu umgehen, und Daten löschen oder an Produktion arbeiten erfordert weiterhin eine Rückfrage bei einem Menschen. Aber für den Merge selbst fragt er Sie nicht mehr. Wenn Ihr Repo bei jedem Merge deployt, heißt „full send“, dass der Agent selbst in Produktion geht.

Der Skill sagt: „Wenn der Nutzer nicht klar full send verlangt hat, keine volle Autonomie annehmen.“ Das bleibt aber dem Urteil des Agenten überlassen und ist kein harter Schalter. Solange der Skill installiert ist, kann er versehentlich ausgelöst werden.

Abschalten oder begrenzen

Von leicht bis streng:

Option 1: full-send nicht installieren

Wenn Sol nur Code reviewen soll, kopieren Sie nur den Ordner sol-loop (er hängt von keinem anderen Skill ab) und lassen full-send und full-stop weg.

Option 2: full-stop stattdessen nutzen

Gleicher Ablauf, aber Halt bei „bereit zum Mergen“, und Sie klicken selbst auf Merge.

Option 3: den Merge-Befehl in Claude Code sperren

In die globale ~/.claude/settings.json eintragen:

json
{
  "permissions": {
    "deny": ["Bash(gh pr merge:*)", "Bash(gh api:*)"]
  }
}

gh api muss ebenfalls gesperrt werden, sonst kann der Agent direkt über die GitHub-API mergen. Als wir Claude Code gh pr merge 1 --squash ausführen ließen, wurde der Befehl innerhalb von 5 s blockiert, und das Feld permission_denials im Ergebnis hielt ihn fest.

Option 4: den Merge-Befehl in Codex sperren

Legen Sie ~/.codex/rules/default.rules an:

python
prefix_rule(
    pattern = ["gh", "pr", "merge"],
    decision = "forbidden",
    justification = "Merging a PR must be done by a human",
)

Im Test innerhalb von 8 s abgelehnt, im Log steht rejected: Merging a PR must be done by a human. Mehr zu Sandbox- und Freigabe-Einstellungen unter Sandbox-Berechtigungen in Codex erklärt.

Option 5: Branch-Schutz auf GitHub einschalten

Verlangen Sie vor dem Merge eine Freigabe. Laut GitHub-Dokumentation kann der Autor eines PR seinen eigenen PR nicht freigeben; der Agent nutzt Ihr gh-Konto und kann die Freigabe daher nicht selbst beschaffen. Diese Ebene hängt nicht von der Client-Konfiguration ab und ist die zuverlässigste.

Wir haben full-send nicht bis zum Merge in einem echten Repo laufen lassen; getestet haben wir nur das zugrunde liegende sol-loop und die beiden Sperrregeln oben.

Häufige Fragen

Geht tstack auch ohne T3 Code?

Ja. Wir haben T3 Code nie installiert. Codex nutzt seine eingebauten Subagenten; Claude Code braucht einen Sol-Subagenten wie oben beschrieben.

Kann sol-loop mit einem anderen Modell reviewen?

Der Skill sagt ausdrücklich, das Modell nicht zu wechseln und einen Blocker zu melden, wenn Sol nicht verfügbar ist. Wer das ändern will, bearbeitet SKILL.md selbst; das README ermutigt auch dazu, sie „zu Ihren eigenen zu machen“.

Was braucht council?

Laut README braucht council Flaggschiff-Modelle von drei verschiedenen Anbietern, die gleichzeitig reviewen, etwa Claude Opus, GPT Sol und Gemini Pro. Die Liste dieser Seite enthält claude-opus-5-5, gpt-6.1-sol und gemini-4-argon, Sie können also für jedes einen Subagenten nach dem Muster von sol-reviewer anlegen. council haben wir hier nicht getestet.

Reviewt sol-loop in Codex nur nicht committete Änderungen?

Nein. Mit einem Remote nutzt es git merge-base, um die Basis zu finden, und reviewt den ganzen Branch; nur ohne Remote nimmt es HEAD. Wenn Sie nur Änderungen im Arbeitsverzeichnis reviewen wollen, können Sie auch das eingebaute Review von Codex nutzen; siehe Codex-Review für nicht committete Änderungen.

Testumgebung

  • Claude Code 2.1.310, Codex CLI 0.164.0, Linux;
  • tstack-Commit 92e38e2 (2026-10-27);
  • Hauptmodelle: claude-sonnet-5-5 für Claude Code und gpt-6.1-sol für Codex; Review-Modell gpt-6.1-sol;
  • Alle Anfragen liefen über denselben API Key dieser Seite. Konfiguration und Logs mit dem Key haben wir nach dem Test gelöscht.

API Key erstellen und mit tstack loslegen →

相关文章

Warum sperrt Claude Konten? Die Community-These vom „Punktesystem“ und Claude Code ohne Kontowechsel

Warum sperrt Claude Konten? Die Community-These vom „Punktesystem“ und Claude Code ohne Kontowechsel

Seit dem 28. Oktober haben zwei Beiträge, laut denen „Claude Konten nach einem Punktesystem sperrt“, auf X zusammen rund 770.000 Aufrufe erreicht. Wir trennen die Community-Behauptungen von dem, was Anthropic tatsächlich zu Sperren und Einsprüchen veröffentlicht, und testen Claude Code 2.1.310 mit einem API Key unserer Seite: Einfache Anfragen kamen nach etwa 1,4–1,7 Sekunden zurück, eine kleine Aufgabe mit Bugfix und Tests war nach 8,5 Sekunden erledigt. Dazu Einrichtung von Codex und Cursor sowie Fehlerbehebung bei 401/429.

Kann eine AGENTS.md im Downloads-Ordner Codex und Claude Code kapern? config.toml und settings.json prüfen, vorbeugen und den Key tauschen (mit Prüfbefehlen)

Kann eine AGENTS.md im Downloads-Ordner Codex und Claude Code kapern? config.toml und settings.json prüfen, vorbeugen und den Key tauschen (mit Prüfbefehlen)

Laut einem Bericht von Forever Security kann eine in ~/Downloads abgelegte AGENTS.md Codex dazu bringen, einen MCP-Server in die globale config.toml einzutragen und ein bösartiges npm-Paket zu installieren; eine gezielt gebaute CLAUDE.md kann Claude Code dazu bringen, ANTHROPIC_BASE_URL auf den Server eines Angreifers umzubiegen. Dieser Leitfaden liefert Prüfbefehle für macOS/Linux und PowerShell, zeigt eine korrekte AICodeWith-Konfiguration, berichtet unsere trust_level-Tests und erklärt, wie Sie nach einem Vorfall den Key tauschen.

Von Claude Code zu Codex wechseln: Regeln, Skills, MCP und Hooks mit /import übernehmen — bleibt model_provider nach dem Import erhalten? (getestet mit einem Drittanbieter-API Key)

Von Claude Code zu Codex wechseln: Regeln, Skills, MCP und Hooks mit /import übernehmen — bleibt model_provider nach dem Import erhalten? (getestet mit einem Drittanbieter-API Key)

Mit /import der Codex CLI lassen sich CLAUDE.md, settings.json, Hooks, Skills, MCP, Subagents und letzte Unterhaltungen aus Claude Code nach Codex übernehmen. Im Test blieb das vorhandene model_provider = "aicodewith" unverändert, Aufrufe funktionierten nach dem Import normal; der Key aus settings.json landet aber in der Shell-Umgebung von Codex und muss von Hand entfernt werden.