en un clic
opencode
Delegate coding to OpenCode CLI (features, PR review).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Delegate coding to OpenCode CLI (features, PR review).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Funny animal podcast creation assistant. Given a topic, automatically generates a comedic podcast video hosted by two animal "hosts." Full pipeline: character design, comedy script, character portraits, TTS voice + Seedance 2.0 video generation, subtitle/pop-text/sound-effect post-production. Trigger words: animal podcast, funny podcast, pet podcast, animal talk show, pet talk show.
Professional anime/2D art style generation skill. Covers 14 sub-styles (modern Japanese anime/moe, retro Japanese cel-shading, Japanese shonen, Japanese shojo, Ghibli, Makoto Shinkai, Chinese xianxia/ink wash, modern Chinese anime, Chinese 3D fantasy, Korean webtoon, Korean impasto, Western cartoon, chibi/moe, 2D cyberpunk) + 5 anti-failure iron laws + cross-style shared rules (character lock / facial proportion spec / stroke consistency / universal negative). Core capabilities: precise style targeting, consistent character identity, cross-style conversion. Trigger: "anime", "2D art", "manga", "illustration", "Japanese anime", "Chinese anime", "Korean webtoon", "webtoon", "Western cartoon", "ghibli", "shinkai", "ufotable", "trigger style", "cel-shading", "impasto", "chibi", "moe", "catgirl", "Chinese 3D fantasy", "xianxia", "ink wash", "hanfu character", "cyberpunk anime", "draw an anime character", "make an anime avatar", "anime character", "anime style". NOT for: photorealistic (use image agent default) / s
Specialized in anime/2D/character stylization for image generation and conversion. Covers Japanese, Chinese, Korean, and Western art style families. Uses provenance analysis to trace reference images' style DNA, performs a 10-dimension analysis → 3-dimension collapse to precisely lock the style's essence, then matches the optimal tool and prompt approach for generation. Trigger on: "anime-ify", "2D style", "convert to anime", "cel-shading", "ghibli style", "Korean watercolor", "fantasy 3D", "chibi", "Japanese anime style", "style conversion", "manga style", "character illustration", "anime style", "webtoon style", or any request involving converting content into a specific anime/2D art style. Key distinction: User requests generation or conversion to a specific anime/2D art style. Do NOT trigger for: photorealistic photography style, pure logo design, general image editing (crop/background removal etc.).
Audiobook creation assistant. Converts book text into multi-character narrated audio, supporting audiobook production, multi-character voiceover, novel narration, TTS voiceover, and read-aloud scenarios. Automatically identifies dialogue and narration, assigns a distinct voice to each character, intelligently adds pause markers, and generates natural, fluent audiobook audio. Trigger phrases: audiobook, read aloud, TTS book, multi-character voiceover, novel narration, book narration, voice acting, narration, 有声书, 朗读, 读书, 多角色配音, 小说朗读, 读书配音. Supports chapter-level generation — user confirms the first chapter, then remaining chapters continue sequentially.
Beat-sync video editing skill. Input music (URL / local file / AI-generated) + video or image assets, automatically performs energy-tension analysis → smart trimming → beat detection → beat-synced timeline generation → asset matching → ffmpeg concatenation, outputting a beat-synced video perfectly aligned to the music. Supports image slideshows, video clips, and mixed assets as input. Supports every-N-beat asset switching, automatic intro/chorus segmentation, user-annotated keypoints, and other beat-sync modes. Trigger words include: music beat sync, beat-sync editing, beat sync, beat-sync video, beat-synced editing, beat-sync video, music rhythm editing, rhythm beat sync, beat detection, edit to the beat, auto beat sync, music sync edit.
Video project push tool. Programmatically creates editing projects via Python scripts, with one-click push to JianyingPro or CapCut. Direct mode creates project files directly in the local JianyingPro/CapCut draft directory — open the app and start editing. Built on pyJianYingDraft (PyPI). Trigger words include: JianyingPro, CapCut, push, push to JianyingPro, capcut, export to JianyingPro.
| name | opencode |
| description | Delegate coding to OpenCode CLI (features, PR review). |
| version | 1.2.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["Coding-Agent","OpenCode","Autonomous","Refactoring","Code-Review"],"related_skills":["claude-code","codex","hermes-agent"]}} |
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.
npm i -g opencode-ai@latest or brew install anomalyco/tap/opencodeopencode auth login or set provider env vars (OPENROUTER_API_KEY, etc.)
opencode auth login — Ollama is auto-discovered. Zero credentials is normal.opencode auth list shows expected providers (may be empty for Ollama-only)pty=true for interactive TUI sessionsShell environments may resolve different OpenCode binaries. On this system, npm global installs to ~/.hermes/node/bin/, which is often not in the default PATH.
If behavior differs between your terminal and Hermes, or opencode is not found after install:
terminal(command="which -a opencode")
terminal(command="opencode --version")
terminal(command="npm root -g") # find where npm put it
If needed, pin an explicit binary path:
terminal(command="$HOME/.hermes/node/bin/opencode run '...'", workdir="~/project", pty=true)
Or add to PATH inline:
terminal(command="export PATH=\"$HOME/.hermes/node/bin:$PATH\" && opencode run '...'", workdir="~/project")
The official way to use OpenCode with locally-running Ollama models is via ollama launch opencode:
ollama launch opencode --model <modelname>
This auto-configures the provider, passes model list inline via OPENCODE_CONFIG_CONTENT, and skips the need for opencode auth login.
Model naming: Use the exact Ollama tag (e.g. qwen3.6:27b, not ollama/qwen3.6:27b). If you get model not found, add --yes to auto-pull:
ollama launch opencode --model qwen3.6:27b # launch with existing model
ollama launch opencode --model qwen3.6 --yes # auto-pull if missing
WARNING: The opencode run --model ollama/<name> syntax does NOT work with Ollama. ollama launch opencode is the correct entry point.
Launch with background=true, pty=true for Hermes-orchestrated interactive use:
terminal(command="ollama launch opencode --model qwen3.6:27b", background=true, pty=true)
The TUI shows the model name in the bottom bar (e.g. Build · qwen3.6:27b Ollama). Interact via process(action="submit", ...) and exit via process(action="write", data="\\x03").
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 |
terminal(command="opencode --version")terminal(command="opencode auth list")opencode run '...' (no pty needed).opencode with background=true, pty=true.process(action="poll"|"log").process(action="submit", ...).process(action="write", data="\x03") or process(action="kill").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 OpenCode for targeted security patches and bug fixes, especially during multi-agent research (Phase 2: Immediate Fixes):
terminal(command="opencode run 'Fix the SQL injection in login.py by using parameterized queries'", workdir="~/project")
terminal(command="opencode run 'Add input validation to all API endpoints in routes/' -f routes/", workdir="~/project")
terminal(command="opencode run 'Replace hardcoded API keys with env vars and add .env.example'", workdir="~/project")
terminal(command="opencode run 'Scan auth/ for session management bugs:
- Missing expiry checks
- Weak token generation
- Missing CSRF tokens on state-changing endpoints
Fix everything you find and add tests'", workdir="~/project")
multi-agent-research Skill)Wenn multi-agent-research läuft, kann der Parent in Phase 2 (Immediate Fixes)
parallel zu den Experts OpenCode für schnelle Security-Fixes starten:
# Während Experts laufen: Schnelle Bug-Fixes via OpenCode
terminal(command="opencode run 'Fix: add OAuth token refresh error handling in api/client.py'",
workdir="~/project", background=true, notify_on_complete=true)
# Verifizieren nach Fertigstellung
terminal(command="cd ~/project && git diff --stat")
opencode run — nicht mehrere Bugs in
einem Durchlauf (erschwert Review)git diff oder diff -u nach dem Fix prüfen... and add a test that verifies the fixUse 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:
terminal(command="opencode stats")
terminal(command="opencode stats --days 7 --models anthropic/claude-sonnet-4")
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.npm i -g opencode-ai may install to ~/.hermes/node/bin/ (this system) or other non-standard locations. If opencode isn't found, check npm root -g and use the full path.opencode run --model ollama/<name> — it fails with "Provider not found: ollama". Use ollama launch opencode --model <name> instead.process(action="log", session_id="<id>")Smoke test:
terminal(command="opencode run 'Respond with exactly: OPENCODE_SMOKE_OK'")
Success criteria:
OPENCODE_SMOKE_OKopencode run for one-shot automation — it's simpler and doesn't need pty.process logs./exit.