Skip to main content

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.

CI Python License deps


The idea

Inspired by Sakana AI's Fuguyou 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 route and surgical_patch tools → ~/.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

vibe_orchestra-0.1.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vibe_orchestra-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for vibe_orchestra-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f5518c155cf6811c35e81628e46db1b1c8f8b100e6a438027cf77d3db4c8b8bb
MD5 2315f8144bc1c70e6f4383fc20e128c3
BLAKE2b-256 9f1f9036c4b4b551cd88a6dde25387f0cf227c3da5167ebfbc5d434e83d06b5d

See more details on using hashes here.

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

Hashes for vibe_orchestra-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6bb961e7261b1e3ee83c58d19ac316374a05c326a18d4d2e9bc3cfa8000f4e5d
MD5 c851e8c802c8150af327b2f4950de79f
BLAKE2b-256 7deb3a38d5928b975eda3aac4ab4551de7633a390c26934bb7fc7457448c9754

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page