Directory → SKILL
SKILLbundledHermes Bundled Skills

Opencode

Delegate coding to OpenCode CLI (features, PR review)

Coding-AgentOpenCodeAutonomousRefactoringCode-ReviewBundledHermes skill
Last registry verification2026-08-18v1.2.0Hermes Agent
Plain meaning

What does it add to Hermes?

Delegate coding to OpenCode CLI (features, PR review)

Opencode is a skill related to extending the agent. It adds a capability or workflow to Hermes. The publisher description explains the intent, while granted permissions determine what it can actually do.

This plain-language explanation is based on the publisher description. The original text remains visible for verification.

Use it when

Use it when your goal in extending the agent is clear and you can limit it to the data and actions it actually needs.

Skip it when

Do not add it merely to experiment when Hermes already has a simpler path, or when you cannot review its source and permissions.

Who is it for?

Best for users who want a repeatable way of working inside Hermes.

Safe first test

Start with non-sensitive data and a small task whose result can be verified and reversed.

Original publisher description

Delegate coding to OpenCode CLI (features, PR review)

✓
Data source

This entry was indexed from Hermes Bundled Skills. Our explanation interprets the type and domain without inventing a capability not present upstream.

!
Security review

The source is official or editorially reviewed, but you still need to review permissions and version compatibility.

Safe setup path

Inspect, install, then test.

  1. 01
    Open the source

    Match the publisher, license, and description to your need. Check the real update history.

  2. 02
    Review permissions and secrets

    Never paste a secret value into this site. Use environment-variable names and grant the smallest scope.

  3. 03
    Copy setup only after review

    The controls below copy text. They do not execute commands on your device.

  4. 04
    Test with a non-sensitive task

    Inspect the visible tools, then exclude write or delete tools you do not need.

Setup method

Already installed with Hermes.

This skill ships with Hermes and loads when the agent decides it is relevant. There is nothing to install; read the definition below so you know what it will do.

Open the official page ↗
The full skill definition

Exactly what Hermes loads when this skill runs.

Reproduced from the official documentation. Read it before enabling the skill: this text becomes the agent's instructions.

Delegate coding to OpenCode CLI (features, PR review).

Skill metadata

A lookup table. Do not read it all; find the row that applies to you.

SourceBundled (installed by default)
Pathskills/autonomous-ai-agents/opencode
Version1.2.0
AuthorHermes Agent
LicenseMIT
Platformslinux, macos, windows
TagsCoding-Agent, OpenCode, Autonomous, Refactoring, Code-Review
Related skillsclaude-code, codex, hermes-agent

Reference: full SKILL.md

Explains the idea itself. Read it slowly; the later sections build on it.

Use OpenCode ↗ 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.

When to Use

Explains the idea itself. Read it slowly; the later sections build on it.

  • User explicitly asks to use OpenCode
  • You want an external coding agent to implement/refactor/review code
  • You need long-running coding sessions with progress checks
  • You want parallel task execution in isolated workdirs/worktrees

Prerequisites

Explains the idea itself. Read it slowly; the later sections build on it.

  • OpenCode installed: npm i -g opencode-ai@latest or brew install anomalyco/tap/opencode
  • Auth configured: opencode auth login or set provider env vars (OPENROUTER_API_KEY, etc.)
  • Verify: opencode auth list should show at least one provider
  • Git repository for code tasks (recommended)
  • pty=true for interactive TUI sessions

Binary Resolution (Important)

Explains the idea itself. Read it slowly; the later sections build on it.

Shell environments may resolve different OpenCode binaries. If behavior differs between your terminal and Hermes, check:

Text2 lines
terminal(command="which -a opencode")
terminal(command="opencode --version")

If needed, pin an explicit binary path:

Text1 line
terminal(command="$HOME/.opencode/bin/opencode run '...'", workdir="~/project", pty=true)

One-Shot Tasks

Explains the idea itself. Read it slowly; the later sections build on it.

Use opencode run for bounded, non-interactive tasks:

Text1 line
terminal(command="opencode run 'Add retry logic to API calls and update tests'", workdir="~/project")

Attach context files with -f:

Text1 line
terminal(command="opencode run 'Review this config for security issues' -f config.yaml -f .env.example", workdir="~/project")

Show model thinking with --thinking:

Text1 line
terminal(command="opencode run 'Debug why tests fail in CI' --thinking", workdir="~/project")

Force a specific model:

Text1 line
terminal(command="opencode run 'Refactor auth module' --model openrouter/anthropic/claude-sonnet-4", workdir="~/project")

Interactive Sessions (Background)

A lookup table. Do not read it all; find the row that applies to you.

For iterative work requiring multiple exchanges, start the TUI in background:

Text17 lines
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.

TUI Keybindings

KeyAction
EnterSubmit message (press twice if needed)
TabSwitch between agents (build/plan)
Ctrl+POpen command palette
Ctrl+X LSwitch session
Ctrl+X MSwitch model
Ctrl+X NNew session
Ctrl+X EOpen editor
Ctrl+CExit OpenCode

Resuming Sessions

After exiting, OpenCode prints a session ID. Resume with:

Text2 lines
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

Common Flags

A lookup table. Do not read it all; find the row that applies to you.

FlagUse
run 'prompt'One-shot execution and exit
--continue / -cContinue the last OpenCode session
--session <id> / -sContinue a specific session
--agent <name>Choose OpenCode agent (build or plan)
--model provider/modelForce specific model
--format jsonMachine-readable output/events
--file <path> / -fAttach file(s) to the message
--thinkingShow model thinking blocks
--variant <level>Reasoning effort (high, max, minimal)
--title <name>Name the session
--attach <url>Connect to a running opencode server

Procedure

Explains the idea itself. Read it slowly; the later sections build on it.

  1. Verify tool readiness:
  2. terminal(command="opencode --version")
  3. terminal(command="opencode auth list")
  4. For bounded tasks, use opencode run '...' (no pty needed).
  5. For iterative tasks, start opencode with background=true, pty=true.
  6. Monitor long tasks with process(action="poll"|"log").
  7. If OpenCode asks for input, respond via process(action="submit", ...).
  8. Exit with process(action="write", data="\x03") or process(action="kill").
  9. Summarize file changes, test results, and next steps back to user.

PR Review Workflow

Explains the idea itself. Read it slowly; the later sections build on it.

OpenCode has a built-in PR command:

Text1 line
terminal(command="opencode pr 42", workdir="~/project", pty=true)

Or review in a temporary clone for isolation:

Text1 line
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)

Parallel Work Pattern

Explains the idea itself. Read it slowly; the later sections build on it.

Use separate workdirs/worktrees to avoid collisions:

Text3 lines
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")

Session & Cost Management

Explains the idea itself. Read it slowly; the later sections build on it.

List past sessions:

Text1 line
terminal(command="opencode session list")

Check token usage and costs:

Text2 lines
terminal(command="opencode stats")
terminal(command="opencode stats --days 7 --models anthropic/claude-sonnet-4")

Pitfalls

Explains the idea itself. Read it slowly; the later sections build on it.

  • Interactive opencode (TUI) sessions require pty=true. The opencode run command does NOT need pty.
  • /exit is NOT a valid command — it opens an agent selector. Use Ctrl+C to exit the TUI.
  • PATH mismatch can select the wrong OpenCode binary/model config.
  • If OpenCode appears stuck, inspect logs before killing:
  • process(action="log", session_id="<id>")
  • Avoid sharing one working directory across parallel OpenCode sessions.
  • Enter may need to be pressed twice to submit in the TUI (once to finalize text, once to send).

Verification

Settings you configure once. Change one at a time so you can see what each does. Set OPENCODE_SMOKE_OK in your environment, not in the chat.

Smoke test:

Text1 line
terminal(command="opencode run 'Respond with exactly: OPENCODE_SMOKE_OK'")

Success criteria:

  • Output includes OPENCODE_SMOKE_OK
  • Command exits without provider/model errors
  • For code tasks: expected files changed and tests pass

Rules

Explains the idea itself. Read it slowly; the later sections build on it.

  1. Prefer opencode run for one-shot automation — it's simpler and doesn't need pty.
  2. Use interactive background mode only when iteration is needed.
  3. Always scope OpenCode sessions to a single repo/workdir.
  4. For long tasks, provide progress updates from process logs.
  5. Report concrete outcomes (files changed, tests, remaining risks).
  6. Exit interactive sessions with Ctrl+C or kill, never /exit.