Claude CLI Skill
Headless wrapper for Claude Code CLI. Invokes a separate Claude session via claude -p "PROMPT" --dangerously-skip-permissions . Provides isolated second opinions without sharing the current agent's context window.
When to Use
-
Second-opinion validation (isolated Claude session without shared context)
-
Cross-validation of current agent's reasoning
-
Delegated deep analysis that should not consume current context window
-
Multi-LLM consultation workflows (as one of the participating models)
-
Chairman synthesis in llm-council workflows
Usage
Ask a question
node .claude/skills/omega-claude-cli/scripts/ask-claude.mjs "What are the security implications of this auth design?"
Specify model
node .claude/skills/omega-claude-cli/scripts/ask-claude.mjs "Review this code" --model sonnet
JSON output (with text stripping)
node .claude/skills/omega-claude-cli/scripts/ask-claude.mjs "Analyze dependencies" --json
With timeout
node .claude/skills/omega-claude-cli/scripts/ask-claude.mjs "Deep security review of auth.ts" --timeout-ms 300000
Availability Check
node .claude/skills/omega-claude-cli/scripts/verify-setup.mjs
Exit 0 = available (CLI found)
Exit 1 = not available
Scripts
Script Purpose
ask-claude.mjs
Core headless wrapper — prompt as positional arg to -p
parse-args.mjs
Argument parser (--model, --json, --sandbox, --timeout-ms)
verify-setup.mjs
Availability check with npx fallback
format-output.mjs
Output normalization with extractJsonResponse()
Flags
Flag Description
--model MODEL
opus (Opus 4.6), sonnet (4.5), haiku (4.5), or full model ID
--json
JSON output (strips conversational text via extractJsonResponse)
--sandbox
Code execution sandbox mode
--timeout-ms N
Timeout in milliseconds (exit code 124 on expiry)
Exit Codes
Code Meaning
0 Success
1 Error (CLI failure, auth issue)
124 Timeout (--timeout-ms exceeded)
Anti-Patterns & Iron Laws
-
ALWAYS use --dangerously-skip-permissions for headless mode (built into wrapper)
-
NEVER expect to share context between this CLI session and the current agent
-
ALWAYS use format-output.mjs to strip conversational text wrapping from JSON
-
ALWAYS set --timeout-ms for production usage
-
NEVER invoke on security-critical tasks without acknowledging the risk
Integration Notes
-
Auth: Claude Code subscription or ANTHROPIC_API_KEY env var
-
Models: opus, sonnet, haiku, or full model IDs
-
Security: --dangerously-skip-permissions allows all tool execution; intended for trusted automation only
-
Platform: Full cross-platform (Windows uses cmd.exe /d /s /c wrapper)
Memory Protocol
Before work: Read .claude/context/memory/learnings.md
After work: Append findings to learnings or issues as needed.
Note: Use pnpm search:code to discover references to this skill codebase-wide.