Skip to content
Registry

opencode

v0.1.22

OpenCode as an iii worker — opencode::* functions run headless OpenCode turns, deliver raw JSON events on the opencode::raw-event trigger type and AgentEvent frames on opencode::agent-event.

license: Apache-2.0agentclicoding-agentheadlessopencode

Install

bash
iii trigger compose::add worker=opencode@0.1.22

Run in your project with the iii engine running. Exact versions are immutable and digest-pinned.

Functions7

opencode::on-config-change

Function

Internal: reload opencode configuration when it changes.

Request
Empty object
Response
valuenull

opencode::run

Function

Run one OpenCode coding-agent turn and wait for the result. Accepts `prompt` or a `messages` array; delivers raw events on the opencode::raw-event trigger and AgentEvent frames on opencode::agent-event (bind with { session_id }), and returns {session_id, result, usage, total_cost_usd}.

Request
  • agentstring

    OpenCode agent to use

  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      Variant 1
      valuestring
      Variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/model"; empty = OpenCode default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same OpenCode conversation

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

Response
  • busyboolean
  • is_errorboolean
  • num_turnsnumber
  • opencode_session_idany of
    any of (2)
    Variant 1
    valuestring
    Variant 2
    valuenull
  • reasonstring
  • resultstring
  • session_idstringrequired
  • stop_reasonstring
  • total_cost_usdnumber
  • usageany of
    any of (2)
    Variant 1
    • cache_read_tokensnumber
    • cache_write_tokensnumber
    • input_tokensnumberrequired
    • output_tokensnumberrequired
    • reasoning_tokensnumber
    Variant 2
    valuenull

opencode::sessions::list

Function

List every OpenCode session this worker has run.

Request
Empty object
Response
  • sessionsobject[]required
    • cwdstringrequired
    • modelstringrequired
    • opencode_session_idany ofrequired
      any of (2)
      Variant 1
      valuestring
      Variant 2
      valuenull
    • session_idstringrequired
    • statusstringrequiredenum working, done, error
    • total_cost_usdnumberrequired
    • turnsnumberrequired
    • updated_at_msnumberrequired
    • usageany ofrequired
      any of (2)
      Variant 1
      • cache_read_tokensnumber
      • cache_write_tokensnumber
      • input_tokensnumberrequired
      • output_tokensnumberrequired
      • reasoning_tokensnumber
      Variant 2
      valuenull

opencode::start

Function

Start an OpenCode turn and return immediately; bind opencode::agent-event with { session_id } for progress and turn_end.

Request
  • agentstring

    OpenCode agent to use

  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      Variant 1
      valuestring
      Variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/model"; empty = OpenCode default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same OpenCode conversation

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

Response
  • session_idstringrequired
  • startedbooleanrequired

opencode::status

Function

Check the status of an OpenCode session.

Request
  • session_idstringrequired

    iii session id returned by opencode::run / opencode::start

Response
  • livebooleanrequired
  • recordany ofrequired
    any of (2)
    Variant 1
    • cwdstringrequired
    • modelstringrequired
    • opencode_session_idany ofrequired
      Show 2 nested
      any of (2)
      Variant 1
      valuestring
      Variant 2
      valuenull
    • session_idstringrequired
    • statusstringrequiredenum working, done, error
    • total_cost_usdnumberrequired
    • turnsnumberrequired
    • updated_at_msnumberrequired
    • usageany ofrequired
      Show 2 nested
      any of (2)
      Variant 1
      • cache_read_tokensnumber
      • cache_write_tokensnumber
      • input_tokensnumberrequired
      • output_tokensnumberrequired
      • reasoning_tokensnumber
      Variant 2
      valuenull
    Variant 2
    valuenull
  • session_idstringrequired

opencode::stop

Function

Stop a live OpenCode run for a session.

Request
  • session_idstringrequired

    iii session id returned by opencode::run / opencode::start

Response
  • reasonstring
  • session_idstringrequired
  • stoppedbooleanrequired

run::start_and_wait

Function

Alias for opencode::run under the shared agent entrypoint: run a turn for {session_id, messages} and return when it ends.

Request
  • agentstring

    OpenCode agent to use

  • cwdstring

    Working directory the turn runs in

  • iii_contextboolean

    Prepend the iii runtime discovery context (engine catalog via the iii CLI)

  • messagesobject[]

    Alternative to prompt: role/content messages; the last user entry becomes the prompt

    • contentany ofrequired
      any of (2)
      Variant 1
      valuestring
      Variant 2
      itemsobject[]
      • typestringrequired
    • rolestringrequired
  • modelstring

    Model as "provider/model"; empty = OpenCode default

  • promptstring

    The user prompt for this turn

  • session_idstring

    iii session id; reuse to resume the same OpenCode conversation

  • timeout_msintegermax 9007199254740991

    Reserved for callers; not forwarded

Response
  • busyboolean
  • is_errorboolean
  • num_turnsnumber
  • opencode_session_idany of
    any of (2)
    Variant 1
    valuestring
    Variant 2
    valuenull
  • reasonstring
  • resultstring
  • session_idstringrequired
  • stop_reasonstring
  • total_cost_usdnumber
  • usageany of
    any of (2)
    Variant 1
    • cache_read_tokensnumber
    • cache_write_tokensnumber
    • input_tokensnumberrequired
    • output_tokensnumberrequired
    • reasoning_tokensnumber
    Variant 2
    valuenull

Triggers2

opencode::agent-event

Trigger

Translated AgentEvent frames of one OpenCode session. Config: { session_id, metadata? }. Payload: { session_id, event_id, seq, epoch, source, event }. Ephemeral: not stored or replayed.

Invocation
valueunknown
Return
valueunknown

opencode::raw-event

Trigger

Raw OpenCode JSON events (verbatim `opencode run --format json` lines) of one session. Config: { session_id, metadata? }. Payload: { session_id, event_id, seq, epoch, source, event }. Ephemeral: not stored or replayed.

Invocation
valueunknown
Return
valueunknown

Search the registry

Find workers, kits and executables, or jump to a page.