api-and-interface-desi…
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating…
Delegate coding to OpenCode CLI (features, PR review).
Claude Code
$ npx -y skills add kevinnft/ai-agent-skills --skill opencode --agent claude-code
Codex
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a codex -y
Cursor
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a cursor -y
Gemini CLI
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a gemini-cli -y
GitHub Copilot
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a github-copilot -y
OpenCode
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a opencode -y
Windsurf
$ npx skills add kevinnft/ai-agent-skills --skill opencode -a windsurf -y
name: opencode
description: "Delegate coding to OpenCode CLI (features, PR review)."
version: 1.2.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [Coding-Agent, OpenCode, Autonomous, Refactoring, Code-Review]
related_skills: [claude-code, codex, hermes-agent]
origin: original
source_repo: kevinnft/ai-agent-skills
source_url: https://github.com/kevinnft/ai-agent-skills
source_license: MIT
language: enUse [OpenCode](https://opencode.ai) as an autonomous coding worker orchestrated by Hermes terminal/process tools. OpenCode is a provider-agnostic, open-source AI coding agent with a TUI and CLI.
Shell environments may resolve different OpenCode binaries. If behavior differs between your terminal and Hermes, check:
terminal(command="which -a opencode") terminal(command="opencode --version")
If needed, pin an explicit binary path:
terminal(command="$HOME/.opencode/bin/opencode run '...'", workdir="~/project", pty=true)
Use `opencode run` for bounded, non-interactive tasks:
terminal(command="opencode run 'Add retry logic to API calls and update tests'", workdir="~/project")
Attach context files with `-f`:
terminal(command="opencode run 'Review this config for security issues' -f config.yaml -f .env.example", workdir="~/project")
Show model thinking with `--thinking`:
terminal(command="opencode run 'Debug why tests fail in CI' --thinking", workdir="~/project")
Force a specific model:
terminal(command="opencode run 'Refactor auth module' --model openrouter/anthropic/claude-sonnet-4", workdir="~/project")
For iterative work requiring multiple exchanges, start the TUI in background:
terminal(command="opencode", workdir="~/project", background=true, pty=true) # Returns session_id # Send a prompt process(action="submit", session_id="<id>", data="Implement OAuth refresh flow and add tests") # Monitor progress process(action="poll", session_id="<id>") process(action="log", session_id="<id>") # Send follow-up input process(action="submit", session_id="<id>", data="Now add error handling for token expiry") # Exit cleanly — Ctrl+C process(action="write", session_id="<id>", data="\x03") # Or just kill the process process(action="kill", session_id="<id>")
**Important:** Do NOT use `/exit` — it is not a valid OpenCode command and will open an agent selector dialog instead. Use Ctrl+C (`\x03`) or `process(action="kill")` to exit.
| Key | Action | |-----|--------| | `Enter` | Submit message (press twice if needed) | | `Tab` | Switch between agents (build/plan) | | `Ctrl+P` | Open command palette | | `Ctrl+X L` | Switch session | | `Ctrl+X M` | Switch model | | `Ctrl+X N` | New session | | `Ctrl+X E` | Open editor | | `Ctrl+C` | Exit OpenCode |
After exiting, OpenCode prints a session ID. Resume with:
terminal(command="opencode -c", workdir="~/project", background=true, pty=true) # Continue last session terminal(command="opencode -s ses_abc123", workdir="~/project", background=true, pty=true) # Specific session
| Flag | Use | |------|-----| | `run 'prompt'` | One-shot execution and exit | | `--continue` / `-c` | Continue the last OpenCode session | | `--session <id>` / `-s` | Continue a specific session | | `--agent <name>` | Choose OpenCode agent (build or plan) | | `--model provider/model` | Force specific model | | `--format json` | Machine-readable output/events | | `--file <path>` / `-f` | Attach file(s) to the message | | `--thinking` | Show model thinking blocks | | `--variant <level>` | Reasoning effort (high, max, minimal) | | `--title <name>` | Name the session | | `--attach <url>` | Connect to a running opencode server |
1. Verify tool readiness:
2. For bounded tasks, use `opencode run '...'` (no pty needed). 3. For iterative tasks, start `opencode` with `background=true, pty=true`. 4. Monitor long tasks with `process(action="poll"|"log")`. 5. If OpenCode asks for input, respond via `process(action="submit", ...)`. 6. Exit with `process(action="write", data="\x03")` or `process(action="kill")`. 7. Summarize file changes, test results, and next steps back to user.
OpenCode has a built-in PR command:
terminal(command="opencode pr 42", workdir="~/project", pty=true)
Or review in a temporary clone for isolation:
terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && opencode run 'Review this PR vs main. Report bugs, security risks, test gaps, and style issues.' -f $(git diff origin/main --name-only | head -20 | tr '\n' ' ')", pty=true)
Use separate workdirs/worktrees to avoid collisions:
terminal(command="opencode run 'Fix issue #101 and commit'", workdir="/tmp/issue-101", background=true, pty=true) terminal(command="opencode run 'Add parser regression tests and commit'", workdir="/tmp/issue-102", background=true, pty=true) process(action="list")
List past sessions:
terminal(command="opencode session list")
Check token usage and costs:
termin
191 attribution-first agent skills for Hermes Agent, Claude Code, Cursor — one installer, 28 categories, searchable catalog. See NOTICE for upstream attribution.
Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating…
Tests in real browsers. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM,…
Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate…
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a…
Simplifies code for clarity. Use when refactoring code for clarity without changing behavior. Use when code works but is harder…
Optimizes agent context setup. Use when starting a new session, when agent output quality degrades, when switching between tasks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.