EL4CTEO

Opencode Goal — Design skill for Claude Code

Design community

Claude Code-style /goal for OpenCode v2: set a finish line and the agent keeps working until it's met.

How to install Opencode Goal

This entry records only its repository, not the path inside it, so there is no exact command to give. Open EL4CTEO/opencode-goal and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Opencode Goal does

Claude Code-style /goal for OpenCode v2: set a finish line and the agent keeps working until it's met.

Alternatives in Design

  • Opencode Background Agents — Claude Code-style background agents for OpenCode – async delegation with context persistence 388 ★
  • Design Reel — Record naksha's design team working — turn a /design run into a share-able vertical + landscape video reel (th 309 ★
  • Design Harness — Feed your agent papers and half-formed ideas — it links them into a system design you can defend 211 ★

README

opencode-goal

Claude Code's `/goal` for **OpenCode v2**. Give the agent a finish line; it keeps working, turn after turn, until an evaluator confirms the condition is met.

![/goal in the OpenCode CLI](https://raw.githubusercontent.com/EL4CTEO/opencode-goal/main/assets/goal-status.png)

Install

opencode plugin add @el4cteo/opencode-goal

Or from GitHub: `opencode plugin add github:EL4CTEO/opencode-goal`, or point `plugins` in `opencode.json` at a local clone:

{ "plugins": ["/path/to/opencode-goal"] }

Requires OpenCode 2.0.29 or newer.

Use

Command What it does
/goal Sets the goal and starts working on it right away
/goal Shows status: condition, time, turns, spend, last evaluator reason
/goal clear Removes the goal (stop, off, reset, none, cancel also work)
/goal bun test passes with 0 failures and no test file is modified

While a goal runs, the footer shows its state:

![footer indicator](https://raw.githubusercontent.com/EL4CTEO/opencode-goal/main/assets/goal-running.png)

**Write a good condition:** one measurable end state, how to prove it (`npm test exits 0`), and anything that must not change. Add a limit for open-ended work, e.g. `or stop after 20 turns`.

How it works

  • After every turn, an evaluator reads the conversation and answers met, not met or impossible.
  • Not met: the agent gets the reason and starts the next turn on its own.
  • Met / impossible: the goal ends and a note is added to the transcript.
  • The evaluator only sees what's in the conversation, so the agent is told to show proof (test output, command results).
  • By default the evaluator reuses the session's cached context, so each check costs little more than a short answer.

Safety rails:

  • Pauses after 3 turns in a row without tool use, on rate limits, on interrupt (Esc), or at the 200-turn cap. Send any message to resume.
  • Retries dropped conne