jido_opencode is a jido_harness adapter for the OpenCode CLI.
This package maps OpenCode JSON output into normalized Jido.Harness.Event structs and publishes runtime contract metadata for harness execution flows.
Add dependencies:
{:jido_harness, "~> 0.1"}
{:jido_opencode, "~> 0.1"}Then install deps:
mix deps.getRun directly:
{:ok, stream} = Jido.OpenCode.run("Return exactly: OK", cwd: "/repo")
events = Enum.to_list(stream)Run via harness:
request = Jido.Harness.RunRequest.new!(%{prompt: "Summarize changes", cwd: "/repo"})
{:ok, stream} = Jido.Harness.run(:opencode, request)- Required env:
ZAI_API_KEY - Optional env:
ZAI_BASE_URL(defaulted in runtime contract tohttps://api.z.ai/api/anthropic)OPENCODE_MODEL(defaulted tozai_custom/glm-4.5-air)
- CLI:
opencode(install vianpm install -g opencode-ai)
Helpful tasks:
mix opencode.install
mix opencode.compat
mix opencode.smoke "Return exactly: JIDO_OPENCODE_SMOKE_OK"Current adapter behavior is intentionally conservative:
streaming?isfalsein v1 (run/2is buffered-first)cancellation?isfalse- Scope is Z.AI-focused runtime contract support
Apache-2.0
jido_opencode is the OpenCode adapter package for jido_harness, currently scoped to Z.AI-compatible runtime/auth flows.
- Unit/contract tests:
mix test - Full quality gate:
mix quality - Optional live checks:
mix opencode.install && mix opencode.compat && mix opencode.smoke "hello"