Two models, two roles: one plans and delegates, the other executes. This quickstart gets it running in under 5 minutes, with no frameworks and no JSON editing.
It accompanies the article How to use GLM 5.2 as orchestrator and DeepSeek V4 Flash as executor. The article covers the why; this repo covers the how.
From the root of the repo you want to work in:
git clone https://github.com/helmcode/orchestrator-quickstart
bash orchestrator-quickstart/setup.shsetup.sh is an installer: it runs the configuration steps for you and only asks one question (which model pair you want). You don't have to edit any file by hand. If you'd rather see what it does before running it, open it: it's the same steps you would do yourself, in order.
The script asks which pair you want and configures everything else:
- GLM 5.2 + DeepSeek V4 Flash: the fully open pair from the article, both via Helmcode.
- Opus 5 + Qwen 3.6-35B-A3B: Anthropic's premium orchestrator with an open, lightweight executor.
- Custom: any
provider/modelcombination you have configured.
What it does for you: installs OpenCode if missing, adds the provider to your global config (merging, without overwriting what you already have), creates the orchestrator and executor agents in .opencode/agents/ with the chosen models, and drops an AGENTS.md template for your repo's conventions.
The only thing you provide: your API key.
export HELMCODE_API_KEY="your-key" # pairs 1 and 2
export ANTHROPIC_API_KEY="your-key" # pair 2 onlyopencode models # check your models show up
opencode # Tab until you reach the 'orchestrator' agentAsk for something divisible ("add docstrings to every file in src/") and watch it generate briefs and delegate them to @executor.
- The orchestrator cannot edit files (permissions denied on purpose): delegating is its only path. The restriction is the design.
- Every delegation travels as a work contract: objective, inputs, constraints and a success criterion. Never the full conversation. There's an example in
example-brief.yaml. - The executor writes the artifact to the filesystem and returns only a 3-line summary to the orchestrator.
- Your project's stable conventions live in
AGENTS.md: it's the shared prefix of every call.
The agents are two markdown files in .opencode/agents/. Change the model field to try other pairs (the executor's is mandatory: if missing, it inherits the orchestrator's model and you lose the whole point), tune the executor's temperature per task type, or duplicate executor.md with a different description to get specialized executors.
Tasks that fit in a single call, problems that don't split cleanly, interactive flows where latency rules, or low volume. The article has the full explanation.
MIT. See LICENSE.