Skip to content

opencode-jev-orchestrator

OpenCode orchestrator that keeps a cheap sticky parent model and escalates to strong child subagents only when Jev flags a hard turn.

ProjectbetaMIT

Overview

opencode-jev-orchestrator keeps an OpenCode session on a cheap sticky parent model so the prompt cache stays warm, and spends scarce strong models only in temporary child subagents when Jev flags a hard turn. Built for OpenCode Go, its defaults use Muse Spark as the parent and Luna as the strong child, with Kimi and Qwen as fallbacks.

Jev labels turns hard, easy or unsure but never silently swaps the parent model. On a hard turn the parent calls jev_escalate, giving a strong child near-full context and merging the result through the tool return; resumes send only deltas. The same child continues while Jev says hard and is released when Jev confidently says easy or is down or unsure. jev_parallel spawns up to three cheap children for mechanical subtasks. Slash commands show status, explain the last action, toggle orchestration and track exhausted model quotas. Users can always pin a model manually.

What the decision model decides

TypeQuestionAnswers
ChoiceIs this turn hard, easy or unsure?hard · easy · unsure
ChoiceAction for this turnstay · escalate · parallel · release

How it works

  1. Parent model handles turns by default.
  2. Jev rates each turn's difficulty.
  3. On hard, the parent escalates to a strong child via jev_escalate.
  4. Release the child when Jev says easy; use jev_parallel for mechanical subtasks.

Strengths

  • Warm cache on the cheap parent model.
  • Scarce models used only for hard work.
  • Transparent commands like /jev-explain.

Caveats

  • Designed around OpenCode Go model names.
  • Escalation relies on the parent calling the tool.

Getting started

opencode plugin opencode-jev-orchestrator -g, save your Jev key to ~/.config/opencode/opencode-jev-orchestrator.key, then restart OpenCode and run /jev-status.

At a glance

Type
Project
Status
beta
Language
TypeScript
Runtime
OpenCode plugin
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • An OpenCode orchestrator that keeps a cheap sticky parent model and, when Jev flags a hard turn, escalates through a child subagent.

    logicrw/awesome-jev-projects
  • Keeps an OpenCode parent model fixed and uses Jev difficulty judgments to delegate harder turns to temporary subagents.

    cobanov/awesome-jev

Frequently asked questions

Does Jev switch my main model?

No, the parent stays fixed; hard turns go to a child subagent.

What happens if Jev is unsure or down?

The strong child is released and work returns to the parent.

Can I force a strong model?

Yes, say use luna or pin a model in the picker.

Related projects

  • Adaptive thinking-level router for Pi: Jev or local rules pick low/medium/high/xhigh at task start, on reasoning failures and when stable.

    ProjectbetaTypeScript
  • Gateway that batches agent control questions through Jev and calls a generative LLM only when policy says generation is needed.

    ServiceprototypeTypeScript
  • OpenCode V2 server plugin that uses Jev to route requests between Plan, Build and custom agents and hand off unfinished work.

    ProjectbetaTypeScript
  • OpenCode plugin where Jev picks the best free Zen or Go model for each new message from the live catalogue.

    ProjectbetaJavaScript
  • Runs Claude Code on Opus 5.5 with Jev re-picking reasoning effort after every tool batch, via per-message effort so the cache survives.

    ProxybetaTypeScript
  • OpenCode plugin adding an Auto (Jev) virtual model that routes each turn to one of your configured real models.

    PluginbetaTypeScript