A Mistral model-and-specialist router for vibe: describe a task, it routes to the right model, specialist, and tool.
Project description
vibe-orchestra
A Mistral model-and-specialist router for vibe.
Describe a task; it routes to the right Mistral model, specialist, and tool — so
you launch vibe and it orchestrates, instead of picking models by hand.
The idea
Inspired by Sakana AI's Fugu — you should not manage
which model to call. Fugu coordinates a pool of models with learned
strategies (an evolved coordinator + an RL-trained conductor). vibe-orchestra
does not learn coordination; it is the practical, hand-designed slice you can
run today: a cheap classifier picks the route, and a model policy maps each route
to the Mistral model, specialist, and tool that fit.
task ──▶ route() (Ministral, cheap)
│
surgical-edit ─▶ Codestral FIM · tool: vibe-fim surgical_patch
ios ─▶ Devstral · specialist: iOS posture + patterns
reasoning ─▶ Magistral
vision ─▶ Pixtral
agentic-build─▶ Devstral
quick ─▶ Ministral
chat ─▶ Mistral medium
Install — then vibe, and basta
git clone https://github.com/guillaumevele/vibe-orchestra && cd vibe-orchestra
IOS_KIT=/path/to/vibe-ios-kit ./install.sh
install.sh wires everything globally and reversibly (it backs up the files
it touches and edits only inside marked blocks):
- the orchestration posture →
~/.vibe/AGENTS.md(loaded by every session), - the
routeandsurgical_patchtools →~/.vibe/config.toml(global MCP), - the iOS specialist (posture + pattern library) from
vibe-ios-kit.
After that, anywhere — no --agent, no per-project copy:
vibe "round the body of computeScore() to 2 decimals, leave the rest"
vibe "add a shimmer Metal loader to onboarding, gated on scenePhase"
Plain vibe calls route() to pick the model/specialist, then edits via
surgical_patch (Codestral FIM, bounded). Undo with ./install.sh --uninstall.
Use the router directly
pip install vibe-orchestra
vibe-orchestra route "why does the app freeze after 90s on the Vera tab?"
# route : reasoning
# model : magistral-medium-latest
# why : root-cause debugging
vibe-orchestra routes # print the full model policy
from vibe_orchestra import classify
d = classify("add a SwiftUI settings screen")
d.route, d.model, d.specialist # ('ios', 'devstral-latest', 'ios')
The classifier backend is injectable, so the routing logic is fully testable with no network:
classify("rename foo to bar", chat_fn=lambda system, user: '{"route": "surgical-edit"}')
Honest limits
- Coordination is hand-designed, not learned. Fugu's edge is the trained coordinator; this is a policy + a classifier. It is transparent and cheap, not evolved.
- Within one session the driving model is fixed.
route()tells you the ideal model and gives you the tools/specialists to act on it — real today for edits (Codestral FIM) and iOS (the specialist posture). Routes whose ideal model differs and have no backing tool yet are surfaced, not silently switched. Full per-subtask model switching grows by adding more model-backed tools — that is the roadmap, stated plainly so nothing is overclaimed.
Specialties
The iOS specialist is vibe-ios-kit
(build posture + 38 distilled iOS 26/27 patterns + a runnable lint). The registry
is extensible: a specialist is a vibe agent plus a posture the orchestrator
adopts when route selects it.
License
MIT © Guillaume Vele
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vibe_orchestra-0.1.0.tar.gz.
File metadata
- Download URL: vibe_orchestra-0.1.0.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5518c155cf6811c35e81628e46db1b1c8f8b100e6a438027cf77d3db4c8b8bb
|
|
| MD5 |
2315f8144bc1c70e6f4383fc20e128c3
|
|
| BLAKE2b-256 |
9f1f9036c4b4b551cd88a6dde25387f0cf227c3da5167ebfbc5d434e83d06b5d
|
File details
Details for the file vibe_orchestra-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vibe_orchestra-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bb961e7261b1e3ee83c58d19ac316374a05c326a18d4d2e9bc3cfa8000f4e5d
|
|
| MD5 |
c851e8c802c8150af327b2f4950de79f
|
|
| BLAKE2b-256 |
7deb3a38d5928b975eda3aac4ab4551de7633a390c26934bb7fc7457448c9754
|