Fortify Development
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
Control OpenCode directly via the Agent Client Protocol (ACP).
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-control --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/opencode-acp-control-v2 .claude/skills/opencode-acp-control && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .claude/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-control --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/opencode-acp-control-v2 .agents/skills/opencode-acp-control && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .agents/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-control --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/opencode-acp-control-v2 .cursor/skills/opencode-acp-control && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .cursor/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/opencode-acp-control-v2--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-control --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/opencode-acp-control-v2 .gemini/skills/opencode-acp-control && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .gemini/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-controlInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/opencode-acp-control-v2 .github/skills/opencode-acp-control && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .github/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills opencode-acp-control --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/opencode-acp-control-v2 .opencode/skills/opencode-acp-control && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "opencode-acp-control" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/opencode-acp-control-v2 into .opencode/skills/opencode-acp-control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "opencode-acp-control", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
opencode-acp-controlControl OpenCode directly via the Agent Client Protocol (ACP).
Opencode Acp Control is an agent skill from LeoYeAI/openclaw-master-skills. Control OpenCode directly via the Agent Client Protocol (ACP). Start sessions, send prompts, resume conversations, and manage OpenCode updates. Includes automatic recovery, stuck detection, and session management.
Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `_meta.json`, `config.default.json` and `opencode-session.sh`).
It sits in Backend & APIs, covering Authentication. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Opencode Acp Control loads about 4.5k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 922 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 922 words, ~4,456 tokens.
.claude/skills/opencode-acp-control/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Control OpenCode directly via the Agent Client Protocol (ACP) with automatic recovery and stuck detection.
| Feature | Description |
|---|---|
| Auto-retry | Automatically retries on failure (max 3 attempts) |
| Stuck detection | Detects when OpenCode is not responding |
| Lock cleanup | Automatically removes stale lock files |
| Adaptive polling | Polls faster at start, slower when stable |
| Health checks | Periodic checks that OpenCode is alive |
| Configurable timeouts | Shorter timeouts with escalation |
| Session recovery | Can recover from crashes mid-task |
| Action | How |
|---|---|
| Start OpenCode | exec(command: "opencode acp --cwd /path", background: true) |
| Send message | process.write(sessionId, data: "<json-rpc>\n") |
| Read response | process.poll(sessionId) - adaptive polling |
| Health check | process.poll(sessionId, timeout: 5000) - only when no output >60s |
| Stop OpenCode | process.kill(sessionId) + cleanup locks |
| Clean locks | exec(command: "rm -f ~/.openclaw/agents/*/sessions/*.lock") |
| List sessions | exec(command: "opencode session list", workdir: "...") |
| Resume session | List sessions → session/load |
For most use cases, use this simple workflow:
1. exec(command: "opencode acp --cwd /path/to/project", background: true)
-> sessionId: "bg_42"
2. process.write(sessionId: "bg_42", data: initialize_json + "\n")
process.poll(sessionId: "bg_42", timeout: 10000)
3. process.write(sessionId: "bg_42", data: session_new_json + "\n")
process.poll(sessionId: "bg_42", timeout: 10000)
-> opencodeSessionId: "sess_xyz"
4. process.write(sessionId: "bg_42", data: prompt_json + "\n")
adaptivePoll(sessionId: "bg_42", maxWaitMs: 120000)
5. When done: process.kill(sessionId: "bg_42")
cleanupLocks()| File | Purpose |
|---|---|
SKILL.md | This file - main documentation |
config.default.json | Default configuration (copy to config.json to customize) |
templates.md | Prompt templates for common tasks |
All defaults are built-in. No config file needed.
Copy config.default.json to config.json in the same folder and modify:
cp config.default.json config.json
# Edit config.json with your preferencesConfig structure:
{
"timeouts": { "initialize": 10000, "prompt": {...} },
"retry": { "maxAttempts": 3, "initialDelay": 2000 },
"polling": { "initial": 1000, "active": 2000 },
"healthCheck": { "noOutputThreshold": 60000 },
"recovery": { "autoRecover": true },
"mcpServers": { "default": [], "supabase": ["supabase"] }
}| Operation | Default | Max | When to increase |
|---|---|---|---|
| Initialize | 10s | 30s | Slow machine |
| Session new | 10s | 30s | Large project |
| Prompt (simple) | 60s | 120s | Complex query |
| Prompt (complex) | 120s | 300s | Refactor, code gen |
| Health check | 5s | 10s | Network issues |
| Setting | Default | Description |
|---|---|---|
| Max retries | 3 | How many times to retry on failure |
| Retry delay | 2s | Initial delay between retries |
| Backoff multiplier | 2 | Delay doubles each retry |
| Max retry delay | 10s | Maximum delay between retries |
| Phase | Interval | Duration |
|---|---|---|
| Initial | 1s | First 10s |
| Active | 2s | 10s - 60s |
| Stable | 3s | 60s - 120s |
| Slow | 5s | 120s+ |
OpenCode is considered "stuck" when:
When stuck is detected:
1. Cancel current operation: session/cancel
2. Wait 2 seconds
3. If still stuck: process.kill
4. Clean up locks
5. Restart OpenCode
6. Resume from last known session (if available)Lock files can become stale when OpenCode crashes. Always clean up:
# Before starting a new session
exec(command: "find ~/.openclaw/agents -name '*.lock' -mmin +30 -delete")
# After killing a stuck process
exec(command: "rm -f ~/.openclaw/agents/*/sessions/*.lock")Before starting, verify environment:
# Check OpenCode is installed
exec(command: "opencode --version")
# Clean stale locks (older than 30 minutes)
exec(command: "find ~/.openclaw/agents -name '*.lock' -mmin +30 -delete")exec(
command: "opencode acp --cwd /path/to/project",
background: true,
workdir: "/path/to/project"
)
# Save sessionId for all subsequent operations// Send initialize
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1,"clientCapabilities":{"fs":{"readTextFile":true,"writeTextFile":true},"terminal":true},"clientInfo":{"name":"clawdbot","title":"Clawdbot","version":"2.0.0"}}}Retry logic:
for attempt in 1..3:
process.write(sessionId, initialize_json + "\n")
response = process.poll(sessionId, timeout: 10000)
if response contains protocolVersion:
break # Success
if attempt < 3:
sleep(2 * attempt) # Backoff: 2s, 4s
else:
# Recovery mode
process.kill(sessionId)
cleanupLocks()
restart from Step 2{"jsonrpc":"2.0","id":1,"method":"session/new","params":{"cwd":"/path/to/project","mcpServers":[]}}Same retry logic as initialize.
{"jsonrpc":"2.0","id":2,"method":"session/prompt","params":{"sessionId":"sess_xyz","prompt":[{"type":"text","text":"Your question here"}]}}Adaptive polling:
elapsed = 0
interval = 1000 # Start at 1s
maxWait = 120000 # 2 minutes for complex tasks
while elapsed < maxWait:
response = process.poll(sessionId, timeout: interval)
if response contains stopReason:
return response # Done
if response contains error:
handle_error(response)
break
# Adaptive interval
elapsed += interval
if elapsed < 10000:
interval = 1000 # First 10s: poll every 1s
elif elapsed < 60000:
interval = 2000 # 10-60s: poll every 2s
elif elapsed < 120000:
interval = 3000 # 60-120s: poll every 3s
else:
interval = 5000 # 120s+: poll every 5s
# Timeout reached - check if stuck
if is_stuck(sessionId):
recover(sessionId)⚠️ Don't poll constantly - wastes tokens!
Only do health checks when:
DO NOT health check when:
# Smart health check - only when needed
if time_since_last_output > 60000: # 60s
response = process.poll(sessionId, timeout: 5000)
if response contains new data:
last_output_time = now()
continue # Not stuck, just slow
if response is "Process still running" with no data:
# Still alive, just thinking - wait more
continue
if response is "No active session":
# Process died - recover
recover(sessionId)When done, always clean up:
process.kill(sessionId)
exec(command: "rm -f ~/.openclaw/agents/*/sessions/*.lock")| Error | Detection | Solution |
|---|---|---|
| Process died | process.poll returns "No active session" | Restart OpenCode, resume session |
| Stuck (no response) | No response after 2x timeout | Cancel, kill, clean locks, restart |
| Lock file exists | .lock file from previous run | Remove stale locks (>30min old) |
| JSON parse error | Malformed response | Skip line, continue polling |
| Timeout | elapsed >= maxWait | Check if stuck, retry or escalate |
| Rate limited | HTTP 429 from OpenCode | Exponential backoff, max 10s |
function recover(sessionId, opencodeSessionId):
# Step 1: Try to cancel gracefully
process.write(sessionId, cancel_json + "\n")
sleep(2000)
# Step 2: Check if recovered
response = process.poll(sessionId, timeout: 5000)
if response is valid:
return # Recovered!
# Step 3: Force kill
process.kill(sessionId)
# Step 4: Clean up
exec("rm -f ~/.openclaw/agents/*/sessions/*.lock")
# Step 5: Restart
newSessionId = startOpenCode()
initialize(newSessionId)
# Step 6: Resume if we had a session
if opencodeSessionId:
session_load(newSessionId, opencodeSessionId)
return newSessionIdOpenCode supports multiple concurrent sessions. Track them:
{
"sessions": {
"process_42": {
"processSessionId": "bg_42",
"opencodeSessionId": "sess_abc",
"project": "/path/to/project1",
"lastActivity": "2026-03-05T10:00:00Z",
"status": "active"
},
"process_43": {
"processSessionId": "bg_43",
"opencodeSessionId": "sess_def",
"project": "/path/to/project2",
"lastActivity": "2026-03-05T09:30:00Z",
"status": "idle"
}
}
}If OpenCode crashes mid-task:
1. Find the last opencodeSessionId
2. Start new OpenCode process
3. Initialize
4. session/load with the old sessionId
5. Continue from where it left offTrack these to detect problems early:
| Metric | Healthy | Warning | Critical |
|---|---|---|---|
| Response time | <5s | 5-15s | >15s |
| Polls without data | <10 | 10-30 | >30 |
| Lock file age | <5min | 5-30min | >30min |
| Consecutive errors | 0 | 1-2 | ≥3 |
Log important events for debugging:
[2026-03-05 10:00:00] Started OpenCode, sessionId=bg_42
[2026-03-05 10:00:02] Initialized successfully
[2026-03-05 10:00:03] Created session sess_abc
[2026-03-05 10:00:05] Sent prompt: "Refactor auth module"
[2026-03-05 10:00:15] Received update (thinking)
[2026-03-05 10:00:45] Received update (tool use)
[2026-03-05 10:01:30] Completed, stopReason=end_turn# State tracking
state = {
processSessionId: null,
opencodeSessionId: null,
messageId: 0,
retries: 0,
lastActivity: null
}
# Start with cleanup
cleanupStaleLocks()
# Start OpenCode
state.processSessionId = exec("opencode acp --cwd /path", background: true)
# Initialize with retry
for attempt in 1..3:
process.write(state.processSessionId, initialize())
response = process.poll(state.processSessionId, timeout: 10000)
if is_valid(response):
break
if attempt == 3:
throw Error("Failed to initialize after 3 attempts")
# Create session with retry
for attempt in 1..3:
process.write(state.processSessionId, session_new())
response = process.poll(state.processSessionId, timeout: 10000)
if is_valid(response):
state.opencodeSessionId = response.result.sessionId
break
if attempt == 3:
throw Error("Failed to create session after 3 attempts")
# Send prompt with adaptive polling
process.write(state.processSessionId, prompt(state.messageId, "Your task"))
elapsed = 0
interval = 1000
maxWait = 120000
while elapsed < maxWait:
response = process.poll(state.processSessionId, timeout: interval)
state.lastActivity = now()
if contains_stop_reason(response):
return parse_response(response)
elapsed += interval
interval = get_adaptive_interval(elapsed)
# Smart health check - only if no output for >60s
if elapsed > 60000 && no_recent_output:
if is_stuck(state.processSessionId):
state = recover(state)
# Re-send prompt
process.write(state.processSessionId, prompt(state.messageId, "Your task"))
elapsed = 0
# Timeout
throw Error("Operation timed out after ${maxWait}ms")# Remove locks older than 30 minutes
find ~/.openclaw/agents -name '*.lock' -mmin +30 -delete# Check if process is alive but not responding
response = process.poll(sessionId, timeout: 5000)
return response == "Process still running" && no_data_for_60sif elapsedMs < 10000: return 1000
if elapsedMs < 60000: return 2000
if elapsedMs < 120000: return 3000
return 5000See templates.md for pre-built prompts for common tasks:
| Category | Templates |
|---|---|
| Refactoring | Extract function, convert to TS, improve readability |
| Features | Add endpoint, add component, implement feature |
| Bug fixes | Debug and fix, TypeScript errors |
| Testing | Unit tests, integration tests |
| Documentation | JSDoc/TSDoc, README updates |
| Database | Migrations, RLS policies |
| Performance | Query optimization, bundle size |
| Security | Security audit |
Usage:
1. Read templates.md
2. Find appropriate template
3. Replace placeholders with your specifics
4. Send as prompt| Metric | How to track | Healthy | Warning | Critical |
|---|---|---|---|---|
| Avg response time | Log timestamps | <30s | 30-60s | >60s |
| Polls per request | Counter | <20 | 20-50 | >50 |
| Retry rate | Retries/requests | <5% | 5-15% | >15% |
| Stuck rate | Stucks/sessions | <1% | 1-5% | >5% |
| Success rate | Completed/started | >95% | 85-95% | <85% |
[2026-03-05 10:00:00] INFO: Started OpenCode, sessionId=bg_42
[2026-03-05 10:00:02] INFO: Initialized successfully
[2026-03-05 10:00:03] INFO: Created session sess_abc
[2026-03-05 10:00:05] INFO: Sent prompt (refactor)
[2026-03-05 10:00:15] DEBUG: Received update (thinking)
[2026-03-05 10:00:45] DEBUG: Received update (tool use)
[2026-03-05 10:01:30] INFO: Completed, stopReason=end_turn
[2026-03-05 10:01:31] INFO: Metrics: duration=91s, polls=15, retries=0ERROR - Failures, exceptions, stuck detectedWARN - Retries, slow responses, near-timeoutINFO - Start, complete, cleanupDEBUG - Detailed output, updates receivedopencode-acp-control-3/
├── SKILL.md # This file
├── opencode-session.sh # Helper script (executable)
├── config.default.json # Default configuration
├── templates.md # Prompt templates
├── _meta.json # Skill metadata
└── .clawhub/ # ClawHub metadataUse opencode-session.sh for automatic workflow:
# Simple usage
~/.openclaw/workspace/skills/opencode-acp-control-3/opencode-session.sh \
--project /path/to/project \
--prompt "Add error handling to the API"
# With template
opencode-session.sh \
--project ~/myapp \
--template "Add API endpoint" \
--prompt "POST /api/users with validation"
# Complex task
opencode-session.sh \
--project ~/myapp \
--timeout complex \
--mcp '["supabase"]' \
--prompt "Create migration for users table"| Option | Description |
|---|---|
--project PATH | Project directory (required) |
--prompt "TEXT" | Prompt to send (required if no template) |
--template NAME | Use template from templates.md |
--timeout TYPE | simple (60s) | medium (120s) | complex (300s) |
--mcp SERVERS | MCP servers as JSON array |
--verbose | Enable debug logging |
--dry-run | Show JSON-RPC without executing |
--help | Show help |
The script outputs a complete workflow with:
CYPHER should:
Version 2.2.0 - Released 2026-03-05 Changes: Added opencode-session.sh helper script
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files in skills/opencode-acp-control-v2 of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Opencode Acp Control next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Opencode Acp Control this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.5k | Automated safety check: Pass | MIT | |
| Fortify Developmentcoollabsio/coolify | 63k | 4 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Supabase Development and Debuggingsupabase/agent-skills | 2.7k | 3 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Better Auth Best Practiceslatitude-dev/latitude-llm | 4.7k | 7 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Supabasecurvenote/curvenote | 169 | 5 repos | ~2.2k | Automated safety check: Pass | Custom licence | |
| Gitnexus Exploringaws-samples/sample-kolya-br-proxy | 106 | 11 repos | ~749 | Automated safety check: Pass | MIT-0 |
coollabsio/coolify
ACTIVATE when the user works on authentication in Laravel. An agent skill from coollabsio/coolify.
supabase/agent-skills
General Supabase skill for database, auth, Edge Functions, Realtime and storage work, plus client libraries, migrations, security audits, debugging and reading logs.
latitude-dev/latitude-llm
Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables.
curvenote/curvenote
A skill your agent uses when doing ANY task involving Supabase.
aws-samples/sample-kolya-br-proxy
A skill your agent uses when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase.
google-gemini/gemini-skills
A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Categories
Control OpenCode directly via the Agent Client Protocol (ACP). Opencode Acp Control is an agent skill from LeoYeAI/openclaw-master-skills. Control OpenCode directly via the Agent Client Protocol (ACP).
Opencode Acp Control fits situations like: tasks that involve Authentication.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a claude-code`. Or copy the skill folder (skills/opencode-acp-control-v2 in LeoYeAI/openclaw-master-skills) into .claude/skills/opencode-acp-control in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a codex`. Or copy the skill folder (skills/opencode-acp-control-v2 in LeoYeAI/openclaw-master-skills) into .agents/skills/opencode-acp-control in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill opencode-acp-control -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/opencode-acp-control, .gemini/skills/opencode-acp-control, .github/skills/opencode-acp-control and .opencode/skills/opencode-acp-control in your project.
Going by SKILL.md and its folder, Opencode Acp Control needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Opencode Acp Control is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Opencode Acp Control: Fortify Development (coollabsio/coolify, 63k stars), Supabase Development and Debugging (supabase/agent-skills, 2.7k stars), Better Auth Best Practices (latitude-dev/latitude-llm, 4.7k stars) and Supabase (curvenote/curvenote, 169 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,158 GitHub stars. The repository holds 1,215 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.