coding-backend-claude-code

SkillAI & models

Runtime prompt layer for Claude Code coding agent runs.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the coding-backend-claude-code skill

What this skill tells your AI

The instructions your AI receives, as published by ahmadrosid/nakama in packages/core/src/skills/bundled/coding-backend-claude-code/SKILL.md and read by ahel’s review.

You are preparing a coding agent run for Claude Code (Anthropic's autonomous coding agent CLI), orchestrated via terminal/process tools. Claude Code v2.x can read files, write code, run shell commands, spawn subagents, and manage git workflows autonomously.

When to Use

  • Building features
  • Refactoring
  • PR reviews
  • Batch issue fixing
  • Multi-turn iterative coding sessions

Prerequisites

  • Install: npm install -g @anthropic-ai/claude-code.
  • Auth: run claude once to log in (browser OAuth for Pro/Max, or set ANTHROPIC_API_KEY).
  • Console auth: claude auth login --console for API key billing.
  • SSO auth: claude auth login --sso for Enterprise.
  • Check status: claude auth status (JSON) or claude auth status --text (human-readable).
  • Health check: claude doctor — checks auto-updater and installation health.
  • Version check: claude --version (requires v2.x+).
  • Update: claude update or claude upgrade.

Two Orchestration Modes

Mode 1: Print Mode (-p) — Non-Interactive (PREFERRED for most tasks)

Print mode runs a one-shot task, returns the result, and exits. No PTY needed. No interactive prompts. This is the cleanest integration path.

claude -p 'Add error handling to all API calls in src/' --allowedTools 'Read,Edit' --max-turns 10

Use print mode for one-shot coding tasks, CI/CD automation, structured data extraction (--json-schema), piped input processing, and any task where you don't need multi-turn conversation. Print mode skips ALL interactive dialogs — no workspace trust prompt, no permission confirmations.

Mode 2: Interactive PTY via tmux — Multi-Turn Sessions

Interactive mode gives a full conversational REPL for follow-up prompts, slash commands, and real-time monitoring. Requires tmux orchestration.

# Start a tmux session
tmux new-session -d -s claude-work -x 140 -y 40

# Launch Claude Code inside it
tmux send-keys -t claude-work 'cd /path/to/project && claude' Enter

# Wait for startup, then send your task
sleep 5 && tmux send-keys -t claude-work 'Refactor the auth module to use JWT tokens' Enter

# Monitor progress by capturing the pane
sleep 15 && tmux capture-pane -t claude-work -p -S -50

# Send follow-up tasks
tmux send-keys -t claude-work 'Now add unit tests for the new JWT code' Enter

# Exit when done
tmux send-keys -t claude-work '/exit' Enter

Use interactive mode for multi-turn iterative work (refactor → review → fix → test), human-in-the-loop decisions, exploratory coding, and slash commands (/compact, /review, /model).

PTY Dialog Handling (CRITICAL for Interactive Mode)

Claude Code presents up to two confirmation dialogs on first launch. Handle these via tmux send-keys:

Dialog 1: Workspace Trust (first visit to a directory)

Default selection is "Yes, I trust this folder" — just press Enter.

Dialog 2: Bypass Permissions Warning (only with --dangerously-skip-permissions)

Default is "No, exit" (WRONG choice). Must navigate DOWN first, then Enter:

tmux send-keys -t <session> Down && sleep 0.3 && tmux send-keys -t <session> Enter

After the first trust acceptance for a directory, the trust dialog won't appear again. Only the permissions dialog recurs each time you use --dangerously-skip-permissions.

CLI Subcommands

SubcommandPurpose
claudeStart interactive REPL
claude "query"Start REPL with initial prompt
claude -p "query"Print mode (non-interactive, exits when done)
cat file | claude -p "query"Pipe content as stdin context
claude -cContinue the most recent conversation in this directory
claude -r "id"Resume a specific session by ID or name
claude auth loginSign in (--console for API billing, --sso for Enterprise)
claude auth statusCheck login status (JSON; --text for human-readable)
claude mcp add <name> -- <cmd>Add an MCP server
claude mcp listList configured MCP servers
claude doctorRun health checks on installation and auto-updater
claude update / claude upgradeUpdate Claude Code to latest version

Print Mode Deep Dive

Structured JSON Output

claude -p 'Analyze auth.py for security issues' --output-format json --max-turns 5

Returns a JSON object with session_id (for resumption), num_turns (agentic loop count), total_cost_usd (spend tracking), and subtype (success, error_max_turns, error_budget).

Streaming JSON Output

claude -p 'Write a summary' --output-format stream-json --verbose --include-partial-messages

Returns newline-delimited JSON events for real-time token streaming.

Piped Input

cat src/auth.py | claude -p 'Review this code for bugs' --max-turns 1
git diff HEAD~3 | claude -p 'Summarize these changes' --max-turns 1

JSON Schema for Structured Extraction

claude -p 'List all functions in src/' --output-format json --json-schema '{...}' --max-turns 5

Claude validates output against the schema before returning.

Session Continuation

# Start a task
claude -p 'Start refactoring the database layer' --output-format json --max-turns 10

# Resume with session ID
claude -p 'Continue and add connection pooling' --resume <id> --max-turns 5

# Or resume the most recent session in the same directory
claude -p 'What did you do last time?' --continue --max-turns 1

# Fork a session (new ID, keeps history)
claude -p 'Try a different approach' --resume <id> --fork-session --max-turns 10

Bare Mode for CI/Scripting

claude --bare -p 'Run all tests and report failures' --allowedTools 'Read,Bash' --max-turns 10

--bare skips hooks, plugins, MCP discovery, and CLAUDE.md loading. Fastest startup. Requires ANTHROPIC_API_KEY (skips OAuth).

Fallback Model for Overload

claude -p 'task' --fallback-model haiku --max-turns 5

Complete CLI Flags Reference

Session & Environment

FlagEffect
-p, --printNon-interactive one-shot mode (exits when done)
-c, --continueResume most recent conversation in current directory
-r, --resume <id>Resume specific session by ID or name
--fork-sessionWhen resuming, create new session ID instead of reusing original
--add-dir <paths...>Grant Claude access to additional working directories
-w, --worktree [name]Run in an isolated git worktree at .claude/worktrees/<name>
--tmuxCreate a tmux session for the worktree (requires --worktree)
--from-pr [number]Resume session linked to a specific GitHub PR

Model & Performance

FlagEffect
--model <alias>sonnet, opus, haiku, or full name like claude-sonnet-4-6
--effort <level>Reasoning depth: low, medium, high, max, auto
--max-turns <n>Limit agentic loops (print mode only; prevents runaway)
--max-budget-usd <n>Cap API spend in dollars (print mode only)
--fallback-model <model>Auto-fallback when default model is overloaded (print mode only)

Permission & Safety

FlagEffect
--dangerously-skip-permissionsAuto-approve ALL tool use (file writes, bash, network, etc.)
--permission-mode <mode>default, acceptEdits, plan, auto, dontAsk, bypassPermissions
--allowedTools <tools...>Whitelist specific tools (comma or space-separated)
--disallowedTools <tools...>Blacklist specific tools

Output & Input Format

FlagEffect
--output-format <fmt>text (default), json (single result object), stream-json (newline-delimited)
--input-format <fmt>text (default) or stream-json (real-time streaming input)
--json-schema <schema>Force structured JSON output matching a schema
--verboseFull turn-by-turn output
--include-partial-messagesInclude partial message chunks as they arrive (stream-json + print)

System Prompt & Context

FlagEffect
--append-system-prompt <text>Add to the default system prompt (preserves built-in capabilities)
--append-system-prompt-file <path>Add file contents to the default system prompt
--system-prompt <text>Replace the entire system prompt
--bareSkip hooks, plugins, MCP discovery, CLAUDE.md, OAuth (fastest startup)
--mcp-config <path>Load MCP servers from JSON file (repeatable)
--strict-mcp-configOnly use MCP servers from --mcp-config, ignoring all other MCP configs
--settings <file-or-json>Load additional settings from a JSON file or inline JSON

Tool Name Syntax for --allowedTools / --disallowedTools

Read                    # All file reading
Edit                    # File editing (existing files)
Write                   # File creation (new files)
Bash                    # All shell commands
Bash(git *)             # Only git commands
Bash(git commit *)      # Only git commit commands
Bash(npm run lint:*)    # Pattern matching with wildcards
WebSearch               # Web search capability
WebFetch                # Web page fetching
mcp__<server>__<tool>   # Specific MCP tool

Settings & Configuration

Settings Hierarchy (highest to lowest priority)

  1. CLI flags — override everything
  2. Local project: .claude/settings.local.json (personal, gitignored)
  3. Project: .claude/settings.json (shared, git-tracked)
  4. User: ~/.claude/settings.json (global)

Memory Files (CLAUDE.md) Hierarchy

  1. Global: ~/.claude/CLAUDE.md — applies to all projects
  2. Project: ./CLAUDE.md — project-specific context (git-tracked)
  3. Local: .claude/CLAUDE.local.md — personal project overrides (gitignored)

Use the # prefix in interactive mode to quickly add to memory: # Always use 2-space indentation.

Interactive Session: Slash Commands

Session & Context

CommandPurpose
/helpShow all commands (including custom and MCP commands)
/compact [focus]Compress context to save tokens; CLAUDE.md survives compaction
/clearWipe conversation history for a fresh start
/contextVisualize context usage as a colored grid with optimization tips
/costView token usage with per-model and cache-hit breakdowns
/resumeSwitch to or resume a different session
/rewindRevert to a previous checkpoint in conversation or code
/exit or Ctrl+DEnd session

Development & Review

CommandPurpose
/reviewRequest code review of current changes
/security-reviewPerform security analysis of current changes
/plan [description]Enter Plan mode with auto-start for task planning
/loop [interval]Schedule recurring tasks within the session
/batchAuto-create worktrees for large parallel changes (5-30 worktrees)

Configuration & Tools

CommandPurpose
/model [model]Switch models mid-session (arrow keys adjust effort)
/effort [level]Set reasoning effort: low, medium, high, max, auto
/initCreate a CLAUDE.md file for project memory
/memoryOpen CLAUDE.md for editing
/permissionsView/update tool permissions
/agentsManage specialized subagents
/mcpInteractive UI to manage MCP servers
/add-dirAdd additional working directories (useful for monorepos)

Interactive Session: Keyboard Shortcuts

General Controls

KeyAction
Ctrl+CCancel current input or generation
Ctrl+DExit session
Ctrl+RReverse search command history
Ctrl+BBackground a running task
Ctrl+VPaste image into conversation
Ctrl+OTranscript mode — see Claude's thinking process
Esc EscRewind conversation or code state / summarize

Mode Toggles

KeyAction
Shift+TabCycle permission modes (Normal → Auto-Accept → Plan)
Alt+PSwitch model
Alt+TToggle thinking mode
Alt+OToggle Fast Mode

Input Prefixes

PrefixAction
!Execute bash directly, bypassing AI (e.g., !npm test)
@Reference files/directories with autocomplete (e.g., @./src/api/)
#Quick add to CLAUDE.md memory (e.g., # Use 2-space indentation)
/Slash commands

Pro Tip: "ultrathink"

Use the keyword "ultrathink" in your prompt for maximum reasoning effort on a specific turn, regardless of the current /effort setting.

PR Review Pattern

Quick Review (Print Mode)

cd /path/to/repo && git diff main...feature-branch | claude -p 'Review this diff for bugs, security issues, and style problems. Be thorough.' --max-turns 1

Deep Review (Interactive + Worktree)

tmux new-session -d -s review -x 140 -y 40
tmux send-keys -t review 'cd /path/to/repo && claude -w pr-review' Enter
sleep 5 && tmux send-keys -t review Enter   # Trust dialog
sleep 2 && tmux send-keys -t review 'Review all changes vs main. Check for bugs, security issues, race conditions, and missing tests.' Enter
sleep 30 && tmux capture-pane -t review -p -S -60

PR Review from Number

claude -p 'Review this PR thoroughly' --from-pr 42 --max-turns 10

Parallel Claude Instances

Run multiple independent Claude tasks simultaneously in separate tmux sessions:

# Task 1: Fix backend
tmux new-session -d -s task1 -x 140 -y 40 && tmux send-keys -t task1 'cd ~/project && claude -p "Fix the auth bug in src/auth.py" --allowedTools "Read,Edit" --max-turns 10' Enter

# Task 2: Write tests
tmux new-session -d -s task2 -x 140 -y 40 && tmux send-keys -t task2 'cd ~/project && claude -p "Write integration tests for the API endpoints" --allowedTools "Read,Write,Bash" --max-turns 15' Enter

# Task 3: Update docs
tmux new-session -d -s task3 -x 140 -y 40 && tmux send-keys -t task3 'cd ~/project && claude -p "Update README.md with the new API endpoints" --allowedTools "Read,Edit" --max-turns 5' Enter

# Monitor all
sleep 30 && for s in task1 task2 task3; do echo '=== '$s' ==='; tmux capture-pane -t $s -p -S -5 2>/dev/null; done

Monitoring Interactive Sessions

Look for these indicators in tmux capture-pane output:

  • at bottom = waiting for your input (Claude is done or asking a question)
  • lines = Claude is actively using tools (reading, writing, running commands)
  • ⏵⏵ bypass permissions on = status bar showing permissions mode
  • ◐ medium · /effort = current effort level in status bar

Context Window Health

Use /context in interactive mode to see a colored grid of context usage:

  • < 70% — Normal operation, full precision
  • 70-85% — Precision starts dropping, consider /compact
  • > 85% — Hallucination risk spikes significantly, use /compact or /clear

Environment Variables

VariableEffect
ANTHROPIC_API_KEYAPI key for authentication (alternative to OAuth)
CLAUDE_CODE_EFFORT_LEVELDefault effort: low, medium, high, max, auto
MAX_THINKING_TOKENSCap thinking tokens (set to 0 to disable thinking entirely)
MAX_MCP_OUTPUT_TOKENSCap output from MCP servers (e.g., 50000)

Cost & Performance Tips

  1. Use --max-turns in print mode to prevent runaway loops. Start with 5-10 for most tasks.
  2. Use --max-budget-usd for cost caps (minimum ~$0.05 for system prompt cache creation).
  3. Use --effort low for simple tasks (faster, cheaper); high or max for complex reasoning.
  4. Use --bare for CI/scripting to skip plugin/hook discovery overhead.
  5. Use --allowedTools to restrict to only what's needed (e.g., Read only for reviews).
  6. Use /compact in interactive sessions when context gets large.
  7. Pipe input instead of having Claude read files when you just need analysis of known content.
  8. Use --model haiku for simple tasks (cheaper) and --model opus for complex multi-step work.
  9. Use --fallback-model haiku in print mode to gracefully handle model overload.
  10. Start new sessions for distinct tasks — sessions last 5 hours; fresh context is more efficient.

Pitfalls & Gotchas

  1. Interactive mode REQUIRES tmux — Claude Code is a full TUI app. pty=true alone works but tmux gives capture-pane for monitoring and send-keys for input.
  2. --dangerously-skip-permissions dialog defaults to "No, exit" — send Down then Enter to accept. Print mode (-p) skips this entirely.
  3. --max-budget-usd minimum is ~$0.05 — system prompt cache creation alone costs this much.
  4. --max-turns is print-mode only — ignored in interactive sessions.
  5. Session resumption requires same directory--continue finds the most recent session for the current working directory.
  6. Trust dialog only appears once per directory — first-time only, then cached.
  7. Background tmux sessions persist — always clean up with tmux kill-session -t <name> when done.
  8. Slash commands only work in interactive mode — in -p mode, describe the task in natural language.
  9. --bare skips OAuth — requires ANTHROPIC_API_KEY env var or an apiKeyHelper in settings.
  10. Context degradation is real — output quality degrades above 70% context window usage. Monitor with /context and proactively /compact.

Rules

  1. Prefer print mode (-p) for single tasks — cleaner, no dialog handling, structured output.
  2. Use tmux for multi-turn interactive work — the only reliable way to orchestrate the TUI.
  3. Always set workdir — keep Claude focused on the right project directory.
  4. Set --max-turns in print mode — prevents infinite loops and runaway costs.
  5. Monitor tmux sessions — use tmux capture-pane -t <session> -p -S -50 to check progress.
  6. Look for the prompt — indicates Claude is waiting for input (done or asking a question).
  7. Clean up tmux sessions — kill them when done to avoid resource leaks.
  8. Report results to user — after completion, summarize what Claude did and what changed.
  9. Don't kill slow sessions — Claude may be doing multi-step work; check progress instead.
  10. Use --allowedTools — restrict capabilities to what the task actually needs.

Prompt Preparation Checklist

When preparing the coding agent instruction for Claude Code:

  • Give Claude Code a clear implementation goal plus any important constraints.
  • Ask it to inspect the relevant code paths before editing.
  • Encourage small, direct edits rather than broad rewrites unless the task requires them.
  • Ask for concise validation notes and a short explanation of any unresolved issues.
  • Prefer precise change requests over broad open-ended prompts.

Signals

GitHub stars
364
Forks
64
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
coding-backend-claude-code
Source
github.com/ahmadrosid/nakama