omoctl — switch your whole agent setup with one command
2026·04 · active · python
the itch
opencode + oh-my-openagent give every agent a model. great — until you want the expensive setup for work and the cheap one for experiments, and you're hand-editing jsonc at midnight.
omoctl turns those setups into named profiles. define them once in yaml, patch models across providers with matchers instead of strings, and flip the whole arrangement with `omoctl use <profile>`.
how it grew
it started as update.py inside my opencode config — a script that outgrew its file. the refactor into a real uv tool forced the design to commit: dataclass-native validation (dacite, strict), live model data from `opencode models` instead of stale caches, and a two-level merge so global patches and per-profile patches compose predictably.
facts
status: active · v0.3.0
install: uvx omoctl
size: ~1.6k loc
config: yaml → dataclasses, strict
license: MIT
links
github
← anfreire.dev · the interactive version needs javascript