tobihagemann/claude-print
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.
npx skills add https://github.com/tobihagemann/turbo --skill claude-print
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:
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>" < /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, write the context to .turbo/claude/<tag>-ctx.txt and pipe it:
mkdir -p .turbo/claude
cat .turbo/claude/<tag>-ctx.txt | 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>"
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. Write the context file with apply_patch so nothing is interpreted on the way in.
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.Take tobihagemann/claude-print from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.