xiaohongshu
xiaohongshu
claude-headless-mode
Guide for using claude CLI in headless mode with --print, output formats, and JSON schema
Full skill instructions
Use claude -p (or --print) for non-interactive execution in scripts, CI, and automation.
# Simple prompt
claude -p "Summarize this repo"
# With file input
claude -p "Review this code" < file.py
# Pipe output
claude -p "List all functions" | grep "def "
| Format | Flag | Use Case |
|---|---|---|
| Text | --output-format text | Human-readable (default) |
| JSON | --output-format json | Single JSON result |
| Stream JSON | --output-format stream-json --verbose | Real-time streaming |
claude -p "What is 2+2?"
# Output: 4
claude -p "What is 2+2?" --output-format json
Returns wrapper with metadata:
{
"type": "result",
"subtype": "success",
"result": "4",
"duration_ms": 1234,
"total_cost_usd": 0.01,
"session_id": "...",
"structured_output": null
}
Extract just the result:
claude -p "What is 2+2?" --output-format json | jq -r '.result'
claude -p "Long analysis" --output-format stream-json --verbose
--verbose flagExtract final result:
claude -p "Analyze code" --output-format stream-json --verbose \
| tee /dev/stderr \
| tail -1 \
| jq -r '.result'
Force Claude to return data matching a specific schema:
claude -p "Extract function names from auth.py" \
--output-format json \
--json-schema '{
"type": "object",
"properties": {
"functions": { "type": "array", "items": { "type": "string" } }
},
"required": ["functions"]
}'
Result appears in structured_output field:
{
"result": "...",
"structured_output": {
"functions": ["login", "logout", "verify_token"]
}
}
Simple object:
{
"type": "object",
"properties": {
"answer": { "type": "integer" }
},
"required": ["answer"]
}
Task result (success/failure):
{
"type": "object",
"properties": {
"status": { "type": "string", "enum": ["success", "failure"] },
"summary": { "type": "string" },
"files_changed": { "type": "array", "items": { "type": "string" } },
"error_category": { "type": "string" },
"suggestion": { "type": "string" }
},
"required": ["status", "summary"]
}
Extract from schema result:
OUTPUT=$(claude -p "$PROMPT" --output-format json --json-schema "$SCHEMA")
STATUS=$(echo "$OUTPUT" | jq -r '.structured_output.status')
SUMMARY=$(echo "$OUTPUT" | jq -r '.structured_output.summary')
| Option | Description |
|---|---|
-p, --print | Headless mode (required) |
--output-format | text, json, stream-json |
--json-schema | Enforce output schema |
--verbose | Required for stream-json |
--model | Select model (sonnet, opus, haiku) |
--max-turns | Limit agentic turns |
--permission-mode | bypassPermissions, plan, etc. |
--allowedTools | Restrict available tools |
# Skip all permission prompts (trusted environments only)
claude -p "Fix all linting errors" --permission-mode bypassPermissions
# Plan mode (read-only exploration)
claude -p "Analyze architecture" --permission-mode plan
# Run tests and get structured result
RESULT=$(claude -p "Run tests and report results" \
--output-format json \
--json-schema '{"type":"object","properties":{"passed":{"type":"boolean"},"failures":{"type":"array","items":{"type":"string"}}},"required":["passed"]}')
if [ "$(echo $RESULT | jq '.structured_output.passed')" = "true" ]; then
echo "Tests passed"
else
echo "Tests failed"
exit 1
fi
for file in src/*.py; do
claude -p "Review $file for security issues" \
--output-format json \
--json-schema '{"type":"object","properties":{"issues":{"type":"array"}},"required":["issues"]}' \
| jq ".structured_output.issues"
done
# Each invocation is independent (no conversation history)
claude -p "Task 1: Create migration" --output-format json
claude -p "Task 2: Add model" --output-format json
claude -p "Task 3: Write tests" --output-format json
Share TaskList across headless invocations using CLAUDE_CODE_TASK_LIST_ID.
# All invocations share the same TaskList
export CLAUDE_CODE_TASK_LIST_ID="my-project"
claude -p "Use TaskCreate to add: Setup database"
claude -p "Use TaskCreate to add: Write migrations"
claude -p "Use TaskList to show all tasks" # Shows both tasks
TASK_LIST_ID="epic-$(date +%Y%m%d)"
export CLAUDE_CODE_TASK_LIST_ID="$TASK_LIST_ID"
# Orchestrator creates tasks
claude -p "Use TaskCreate for each: Task 1, Task 2, Task 3"
# Workers execute (each sees shared TaskList)
for task_id in 1 2 3; do
claude -p "Use TaskUpdate to mark task #$task_id as in_progress, implement it, then mark completed"
done
# Check final state
claude -p "Use TaskList to show status"
| Tool | Purpose |
|---|---|
TaskCreate | Create new task with subject, description |
TaskList | List all tasks with status |
TaskUpdate | Update task status (in_progress, completed) or add blockedBy |
TaskGet | Get full details of a specific task |
# Task 2 depends on Task 1
claude -p "Use TaskUpdate on task #2 to set blockedBy: [1]"
Tasks persist to ~/.claude/tasks/ and survive session restarts.
-p invocation starts fresh (no context from previous runs)--output-format json for programmatic parsingstructured_output field contains schema-validated dataresult field contains raw text response--verbose flagtotal_cost_usdxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience