Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run a non-interactive Claude Code print-mode call from Codex. Use when the user asks to "claude print", "ask claude", "run claude", "consult claude", or when a Codex Turbo skill needs Claude as an independent peer reviewer.
.claude/skills/tobihagemann-claude-print/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -32% | 0% |
Run a non-interactive Claude Code CLI print-mode call from Codex. This is the Codex edition's low-level Claude bridge for one-shot review and consultation prompts.
Default to read-only review:
bashclaude -p --permission-mode dontAsk --allowedTools="Read,Grep,Glob,Bash(git diff:*),Bash(git log:*),Bash(git show:*),Bash(git status:*),Bash(git rev-parse:*),Bash(git ls-files:*)" "<prompt>" < /dev/null
The Bash allow-list is restricted to read-only git subcommands so peer review cannot mutate the working tree, branches, or remotes. Use broader permissions only when the user explicitly asks Claude to perform write-capable work.
Keep the prompt compact and explicit:
For large context, print the absolute path of the context file first:
bashmkdir -p "$PWD/.turbo/claude" && echo "$PWD/.turbo/claude/<tag>-ctx.txt"
Write the context file to the printed path with apply_patch so nothing is interpreted on the way in, then substitute that same printed value for <printed-path> below. An earlier cd in a compound command leaves the session in a different directory, so a relative path resolves against that directory instead:
bashcat "<printed-path>" | claude -p --permission-mode dontAsk --allowedTools="Read,Grep,Glob,Bash(git diff:*),Bash(git log:*),Bash(git show:*),Bash(git status:*),Bash(git rev-parse:*),Bash(git ls-files:*)" "<prompt>"
A cat that fails does not stop the run: Claude executes on the bare prompt, burns the full wait, and returns nothing. Read the stderr for the cat error rather than waiting on the output.
Route text you did not author through this channel whatever its size — a diff, file contents, a code comment, a plan or spec, third-party feedback, command output. Keep backticks and $ out of the quoted argument even in text you wrote, since both stay live inside it.
Run Claude as a foreground command and wait for the result. Treat a returned session_id from the Codex shell harness as the still-running foreground command; keep polling that session until Claude exits, reaches a clear error, or has had roughly an hour for normal review work.
Do not background Claude print-mode calls, give up during quiet periods, or classify the run as empty while the shell session is still active. The parent workflow needs the complete output before evaluation.
When Claude reports an authentication, keychain, or session failure (for example, a Not logged in message) from a restricted execution context, do not conclude the user is logged out yet.
When the active harness exposes host execution, retry the same read-only command once from a fresh host-capable context. Use a fresh context rather than reusing one whose environment may stay restricted after its context changed. Retry only within the harness's existing permissions; do not bypass permission policy to reach the host.
If host execution is unavailable, or the fresh retry still fails, report the failure unchanged and let the active workflow decide the next step.
Treat Claude's output as a review signal, not as an authority. Cross-check actionable findings against the codebase before applying fixes.
Then call update_plan to mark this step completed and continue with the next step of the active workflow.
--dangerously-skip-permissions for peer review..turbo/claude/ for temporary prompt/context files.< /dev/null for non-piped invocations.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 6,568 | 6,059 | -8% | 1 | 1 | 0% | 951 | 1,316 | +38% | 0 | 0 | — |
case-02 | fail→fail | 11,112 | 7,165 | -36% | 1 | 1 | 0% | 1,672 | 1,519 | -9% | 0 | 0 | — |
case-03 | fail→fail | 10,030 | 20,067 | +100% | 1 | 1 | 0% | 1,183 | 3,368 | +185% | 0 | 0 | — |
case-04 | fail→pass | 12,384 | 19,112 | +54% | 1 | 1 | 0% | 1,959 | 1,966 | +0% | 0 | 0 | — |
case-09 | pass→pass | 7,741 | 4,324 | -44% | 1 | 1 | 0% | 1,340 | 1,742 | +30% | 0 | 0 | — |
case-05 | pass→pass | 13,081 | 2,881 | -78% | 1 | 1 | 0% | 2,182 | 1,395 | -36% | 0 | 0 | — |
case-06 | fail→pass | 11,236 | 18,676 | +66% | 1 | 1 | 0% | 1,645 | 1,600 | -3% | 0 | 0 | — |
case-07 | fail→pass | 12,532 | 1,915 | -85% | 1 | 1 | 0% | 1,948 | 1,231 | -37% | 0 | 0 | — |
case-08 | fail→fail | 16,594 | 5,562 | -66% | 1 | 1 | 0% | 2,428 | 1,874 | -23% | 0 | 0 | — |
case-10 | fail→pass | 13,862 | 6,573 | -53% | 1 | 1 | 0% | 2,281 | 1,981 | -13% | 0 | 0 | — |
case-11 | pass→pass | 14,147 | 7,057 | -50% | 1 | 1 | 0% | 2,272 | 2,156 | -5% | 0 | 0 | — |
case-12 | pass→pass | 13,003 | 5,290 | -59% | 1 | 1 | 0% | 2,065 | 1,865 | -10% | 0 | 0 | — |
case-13 | fail→pass | 14,446 | 3,155 | -78% | 1 | 1 | 0% | 2,198 | 1,489 | -32% | 0 | 0 | — |
case-14 | pass→pass | 9,376 | 2,959 | -68% | 1 | 1 | 0% | 1,449 | 1,427 | -2% | 0 | 0 | — |
case-15 | fail→pass | 13,767 | 1,930 | -86% | 1 | 1 | 0% | 2,024 | 1,255 | -38% | 0 | 0 | — |
case-16 | pass→pass | 15,210 | 3,156 | -79% | 1 | 1 | 0% | 2,214 | 1,527 | -31% | 0 | 0 | — |
case-17 | pass→pass | 14,386 | 8,733 | -39% | 1 | 1 | 0% | 2,190 | 2,262 | +3% | 0 | 0 | — |
case-18 | pass→pass | 20,714 | 2,100 | -90% | 1 | 1 | 0% | 872 | 1,267 | +45% | 0 | 0 | — |
case-19 | pass→pass | 22,688 | 5,259 | -77% | 1 | 1 | 0% | 1,619 | 1,468 | -9% | 0 | 0 | — |
case-20 | fail→fail | 16,210 | 1,668 | -90% | 1 | 1 | 0% | 2,419 | 1,164 | -52% | 0 | 0 | — |
case-21 | fail→pass | 11,287 | 4,500 | -60% | 1 | 1 | 0% | 1,805 | 1,709 | -5% | 0 | 0 | — |
case-22 | pass→pass | 8,442 | 2,337 | -72% | 1 | 1 | 0% | 1,250 | 1,359 | +9% | 0 | 0 | — |
case-23 | pass→pass | 6,868 | 5,342 | -22% | 1 | 1 | 0% | 1,095 | 1,739 | +59% | 0 | 0 | — |
case-24 | fail→fail | 15,091 | 5,297 | -65% | 1 | 1 | 0% | 2,494 | 1,193 | -52% | 0 | 0 | — |
case-25 | pass→pass | 11,376 | 7,619 | -33% | 1 | 1 | 0% | 1,662 | 2,306 | +39% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 22 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +28 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/21/2026 | +23% |
Other measured skills in the registry, with their headline benchmark lift.