Skip to content

jev-agent-control

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

ProjectbetaMIT

Overview

Jev Agent Control is an OpenCode V2 server plugin, tested with OpenCode 2.0.24, that uses Jev to route each request to the right primary agent, such as Plan, Build or a user-defined agent. It also hands off unfinished work at completed execution boundaries, and follows each target agent's configured model, so routing to an agent also selects its model.

It is installed by adding opencode-jev-agent-control to opencode.jsonc with options such as enabled and autoHandoff, or from a local build. TypeSafe keys are connected through OpenCode's own account management via /connect or opencode auth login typesafe, and the plugin resolves the active account for each decision, so key changes apply without restarting. It has CI and an MIT licence. Because the plugin follows each agent's configured model, routing also changes which model runs.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich primary agent should handle this request?Plan · Build · custom agents
Yes / noShould unfinished work be handed off to another agent at this boundary?(inferred)yes · no

How it works

  1. User sends a request in OpenCode
  2. Plugin asks Jev which agent should handle it
  3. Request runs on that agent and its configured model
  4. At completed boundaries, Jev decides whether to hand off remaining work

Strengths

  • Automatic agent selection without manual switching
  • Uses OpenCode's built-in credential storage
  • Account changes apply without restart

Caveats

  • Requires OpenCode V2
  • Needs a TypeSafe key

Getting started

Add `{"package": "opencode-jev-agent-control", "options": {"enabled": true, "autoHandoff": true}}` to opencode.jsonc plugins, then run `opencode auth login typesafe --method key`.

At a glance

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

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does the plugin decide?

Which OpenCode primary agent handles each request and when to hand off unfinished work.

Does it change models?

It follows the target agent's configured model.

Which OpenCode version is needed?

OpenCode V2; tested with 2.0.24.

Related projects

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

    ProjectbetaTypeScript
  • Decision governor for Pi routing plan strategy, model tier, tool permissions and outcome (finish, retry, replan) through Jev.

    ProjectbetaTypeScript
  • 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
  • Fail-open Codex UserPromptSubmit hook that asks Jev for task type, complexity, risk and execution mode and injects it as advisory context.

    HookbetaPython
  • Fork of codex-with-chatgpt where Jev plus fixed rules decide when to bring in web ChatGPT to plan or review and when Codex just acts.

    Projectbeta