claude-code-cli-for-openclaw
Install, authenticate, and use Claude Code CLI as a native coding tool for any OpenClaw agent system.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Install, authenticate, and use Claude Code CLI as a native coding tool for any OpenClaw agent system.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
One-command publish a Claude Code skill to ALL major marketplaces: GitHub (npx skills), ClawHub, and community marketplaces (composiohq/awesome-claude-skills, anthropics/skills, daymade/claude-code-skills, obra/superpowers-marketplace). Validates SKILL.md, auto-generates missing files, creates repos, publishes, and submits PRs to community directories.
Manage development environment containers (devboxes) with web-accessible VSCode, VNC, and app routing via Traefik or Cloudflare Tunnels. Use when the user asks to create, start, stop, list, or manage devboxes/dev environments, spin up a development container, set up a coding sandbox, or configure the devbox infrastructure for the first time (onboarding).
Launch OpenAI Codex CLI async in background with automatic delivery to Telegram/WhatsApp. Use for coding, refactoring, codebase research, file generation, and complex multi-step automations. NOT for quick one-off questions or real-time interactive tasks. Includes strict thread-safe routing + E2E operator validation workflow.
استنادا إلى تصنيف SOC المهني
| name | Claude Code CLI for OpenClaw |
| version | 1.0.0 |
| author | Matrix Zion (ProSkillsMD) |
| description | Install, authenticate, and use Claude Code CLI as a native coding tool for any OpenClaw agent system. |
| homepage | https://proskills.md |
| tags | ["claude-code","coding","cli","anthropic","agent-tools"] |
| openclaw | >=2026.2 |
This skill teaches OpenClaw agents how to install, authenticate, configure, and use Claude Code CLI as a coding tool. Claude Code is an official Anthropic CLI that provides file-based context efficiency, reducing token usage by 80-90% compared to raw API calls for coding tasks.
Key Benefits:
Use Cases:
pty: true with exec tool)npm install -g @anthropic-ai/claude-code
which claude && claude --version
Expected output:
/usr/bin/claude
2.1.75
Use the provided installation script:
cd /root/.openclaw/workspace/skills/claude-code
bash scripts/install.sh
The script handles:
Claude Code requires browser-based OAuth authentication using a Claude Max subscription. Raw API keys (sk-ant-api03-*) will NOT work.
Run this in a PTY terminal (requires TTY):
claude setup-token
Flow:
https://claude.ai/oauth/authorize?code=true&client_id=...&code_challenge=...
Paste code here if prompted >✓ Long-lived authentication token created successfully!sk-ant-oat01-xxxxx (valid for 1 year)The token must be available as the CLAUDE_CODE_OAUTH_TOKEN environment variable.
Option 1: Shell RC Files (Recommended)
echo "export CLAUDE_CODE_OAUTH_TOKEN=YOUR_OAUTH_TOKEN_HERE" >> /root/.bashrc
echo "export CLAUDE_CODE_OAUTH_TOKEN=YOUR_OAUTH_TOKEN_HERE" >> /root/.profile
source /root/.bashrc
Option 2: System-Wide
echo "CLAUDE_CODE_OAUTH_TOKEN=YOUR_OAUTH_TOKEN_HERE" >> /etc/environment
Option 3: OpenClaw Config Only
Add to your openclaw.json config patch (see next section) — the token will be available during OpenClaw backend calls but not direct CLI usage.
CRITICAL: Never commit your CLAUDE_CODE_OAUTH_TOKEN to version control.
.env* files to .gitignoreAdd to your .gitignore:
.env
.env.local
.env.*.local
openclaw.json
config.patch
echo $CLAUDE_CODE_OAUTH_TOKEN
# Should output: sk-ant-oat01-xxxxx
Integrate Claude Code as a CLI backend in OpenClaw, enabling it as a model option and fallback.
Create or append to ~/.openclaw/config.patch:
{
"agents": {
"defaults": {
"cliBackends": {
"claude-cli": {
"command": "/usr/bin/claude",
"env": {
"CLAUDE_CODE_OAUTH_TOKEN": "YOUR_OAUTH_TOKEN_HERE"
}
}
},
"models": {
"claude-cli/opus-4.6": {
"alias": "claude-cli-opus"
},
"claude-cli/sonnet-4.6": {
"alias": "claude-cli-sonnet"
}
}
},
"list": [
{
"id": "tank",
"model": {
"primary": "anthropic/claude-opus-4-5",
"fallbacks": [
"google/gemini-3-flash-preview",
"claude-cli/opus-4.6"
]
}
}
]
}
}
gateway config.patch
Verify in gateway logs or test by spawning a coding session.
claude-cli/sonnet-4.6 → Claude Sonnet 4.6 (fast, general coding)claude-cli/opus-4.6 → Claude Opus 4.6 (complex reasoning, architecture)Use as primary model, fallback, or invoke directly via exec.
Critical: Every project using Claude Code should have a CLAUDE.md file in its root directory. This is the "project brain" — Claude Code reads it automatically at session start.
# Project: [Name]
## Overview
[1-2 sentence project description]
## Tech Stack
- Language: [e.g., TypeScript, Python, Rust]
- Framework: [e.g., Next.js, FastAPI, Supabase]
- Key Dependencies: [list major packages]
## Directory Structure
/ ├── src/ # Source code ├── public/ # Static assets ├── supabase/ # Database functions, migrations └── docs/ # Documentation
## Key Files
- `src/App.tsx` - Main app component, routing
- `src/lib/supabase.ts` - Database client
- `supabase/functions/` - Edge functions (24 total)
## Coding Standards
- Use TypeScript strict mode
- Functional components (React)
- Tailwind CSS for styling
- ESLint + Prettier configured
## Deployment
- Platform: Netlify (frontend), Supabase (backend)
- Deploy command: `npm run build`
- Environment: `.env.local` (never commit)
## Critical Rules
- Never commit API keys
- Always run `npm run build` before pushing
- All functions must have TypeScript types
## Testing
- `npm test` - Run Jest tests
- `npm run lint` - Check code style
Copy the provided template and customize:
cp /root/.openclaw/workspace/skills/claude-code/templates/CLAUDE.md.template /path/to/your/project/CLAUDE.md
# Edit with project-specific details
For MissionDeck project, we created:
/root/.openclaw/workspace/missiondeck/CLAUDE.mdStep 1: Sync Project
cd /path/to/project
git pull origin main
Step 2: Run Claude Code with Task
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Fix the signup redirect bug in src/pages/AuthVerify.tsx — users aren't being redirected to /dashboard after magic link verification"
Step 3: Review Proposed Changes
Claude Code will:
Step 4: Build Check
npm run build # or npm test, cargo build, etc.
Step 5: Commit and Push
git checkout -b agent/fix-signup-redirect
git add .
git commit -m "fix: redirect to /dashboard after magic link verification"
git push origin agent/fix-signup-redirect
Step 6: Create PR (Optional)
gh pr create --title "Fix signup redirect" --body "Fixes redirect bug in AuthVerify.tsx"
For agents using the exec tool:
exec({
command: `cd /path/to/project && CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Your task here"`,
workdir: "/path/to/project",
pty: false // PTY not needed for --print mode
})
Once ACP harness is configured:
sessions_spawn({
runtime: "acp",
agentId: "claude-code",
message: "Fix the navbar bug in components/Navbar.tsx",
label: "claude-code-navbar-fix"
})
Effective prompts yield better results. Here are proven patterns:
"Show me your plan first. List every file you'll touch and what changes you'll make. Wait for my approval before implementing."
Why: Prevents unwanted changes, gives you control
"Fix the authentication bug. After you're done, grill yourself — what edge cases did you miss? What could break?"
Why: Forces deeper reasoning, catches edge cases
For complex tasks, use 3 separate prompts:
Prompt 1 (Research):
"Research how the payment flow works. Show me all relevant files and how they connect."
Prompt 2 (Plan):
"Now plan how to add recurring billing. List the changes step-by-step."
Prompt 3 (Implement):
"Implement the plan. Make the changes."
Why: Breaks complexity into manageable phases
"In src/pages/AuthVerify.tsx, line 42, the redirect after magic link verification is broken. Expected behavior: redirect to /dashboard. Current behavior: stays on /verify. Fix it."
Why: Clear context = precise fixes
"Refactor src/lib/database.ts — extract the connection pool logic into a separate file src/lib/db-pool.ts"
Why: Claude Code excels at file-level operations
❌ Vague: "Make the app better"
❌ No context: "Fix the bug"
❌ Too broad: "Rewrite the entire codebase"
❌ Missing paths: "Update the config file" (which one?)
✅ Specific: "Fix the redirect bug in src/pages/AuthVerify.tsx — users should go to /dashboard after email verification"
✅ Scoped: "Refactor the authentication logic in src/lib/auth.ts to use async/await instead of promises"
✅ Clear paths: "Update the database connection pool size in src/config/database.ts from 10 to 20"
| Method | Tokens per Task | Cost Model |
|---|---|---|
| Raw API (full file dump) | 10,000 - 50,000 | Per-token ($) |
| Claude Code (tool-based) | ~500 | Flat-rate (Claude Max subscription) |
Savings: 80-90% reduction in token usage
Raw API Approach:
User: "Fix the bug in App.tsx"
Agent: [reads entire App.tsx] [dumps 5,000 tokens into context] [generates fix] [writes back]
Cost: ~7,000 tokens
Claude Code Approach:
User: "Fix the bug in App.tsx"
Claude Code: [uses file tool to read App.tsx] [analyzes in isolation] [generates fix] [uses edit tool]
Cost: ~500 tokens
Result: Same quality, 90% fewer tokens, flat-rate billing
"Remove the offer/discount banner from MissionDeck navbar"
Claude Code Execution:
cd /root/.openclaw/workspace/missiondeck
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Remove the discount banner from the navbar"
What Happened:
DiscountBanner component in src/components/Navbar.tsximport { DiscountBanner } from './DiscountBanner'<DiscountBanner /> JSX elementnpm run build ✓oracle/disable-discount-bannerToken Usage: ~450 tokens
Time: 30 seconds
Result: Precise, working, deployed
Cause: Token expired or invalid
Fix:
claude setup-token # Re-authenticate
# Update token in environment and OpenClaw config
Cause: NPM global bin not in PATH
Fix:
export PATH="$PATH:$(npm bin -g)"
echo 'export PATH="$PATH:$(npm bin -g)"' >> /root/.bashrc
Cause: Project missing CLAUDE.md file
Fix:
cp /root/.openclaw/workspace/skills/claude-code/templates/CLAUDE.md.template /path/to/project/CLAUDE.md
# Edit with project details
Cause: claude setup-token needs TTY
Fix (with OpenClaw exec):
exec({
command: "claude setup-token",
pty: true // Enable pseudo-terminal
})
Cause: Running Claude Code from wrong directory
Fix: Always cd into project root first
cd /path/to/project
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "your task"
Cause: Claude Code proposes changes, but requires approval in interactive mode
Fix: Use --print flag for non-interactive mode (outputs to stdout)
claude --print "your task" # No approval needed, just shows output
For interactive mode (approval required):
claude # Interactive, will wait for y/n approval
Process multiple tasks sequentially:
cd /path/to/project
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Task 1: Fix auth bug"
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Task 2: Add new endpoint"
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Task 3: Update tests"
Force specific model:
claude --model opus-4.6 --print "Complex architecture refactor"
claude --model sonnet-4.6 --print "Quick bug fix"
# Create feature branch
git checkout -b feature/claude-code-implementation
# Run Claude Code
CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN claude --print "Implement feature X"
# Review changes
git diff
# Commit
git add .
git commit -m "feat: implement X using claude-code"
# Push
git push origin feature/claude-code-implementation
git pull to avoid conflictsNext Steps:
npm install -g @anthropic-ai/claude-codeclaude setup-tokenconfig.patchCLAUDE_CODE_OAUTH_TOKEN=$token claude --print "your task"