oh-my-agent shipped five major CLI versions in seven days, from 15.10.0 to 20.0.0. Most of the bumps are deliberate breaking changes that remove old paths instead of keeping compatibility shims. Here is what changed and what you need to do about it.
What's new
-
oma-security replaces
oma-deepsec, and/securityreplaces/deepsec, with no compatibility aliases. It routes source, skill, MCP, and scoped web runtime work to target-specific engines, keeps the engine evidence, and requires independent validation before a finding is confirmed or a CI gate is applied. Deepsec stays the default source scanning engine. The skill ships with 11 resource files, including a 408-line findings contract. -
One global data home.
OMA_HOMEnow selects the global data home (~/.omaby default) and holds definitions, state, schedules, and backups. Migration is copy-first with conflict checks and active-runtime checks. Old paths are not read as runtime fallbacks. - AgentMemory isolation. Writes, recalls, retries, and imports are scoped to the original project and profile. Shared-server responses are filtered by ownership. Install and update now prepare the default AgentMemory provider, unless the project opts out or uses another provider.
-
Agent decisions are captured and verified as state events (
b4d76a71), so a run's choices can be checked after the fact. -
User hooks for commit messages. The managed
commit-msghook now runs every executable file in.githooks/commit-msg.d/first, in name order. A non-zero exit rejects the commit. oma never writes into that directory, so a commitlint call survivesoma update. -
Tooling profiles for
oma-dev-workflow: Python, JS/TS, Dart/Flutter, Dockerfile, and local commitlint, plus guidance on reusing project verification tasks.
What's fixed
-
oma retro --jsonprinted the banner and spinner before the JSON. It now emits one valid document, including for empty windows. - Help showed
--older-thandefaults as90ds. Units are now appended only to bare numeric defaults. -
schedule synccrashed on manifest rows missing required fields, which left every healthy job stale. Malformed rows are now dropped and reported, andschedule listnames them. - Orphan pruning no longer touches internal services such as AgentMemory and Serena maintenance. It is limited to the agent schedule namespace.
- Concurrent hook deduplication could expire a competing publisher's fresh claim. It now rechecks the clock after reading and tolerates clock rollback only within the TTL.
- Standalone skill installs now bundle the shared guides they reference (closes #866).
- Pinned local Serena bridge entries are repaired, with user environment and server options preserved.
-
designworkflow routing now requires a visual target, so "API design" no longer triggers it.
What's better
-
Plugin packages lost 471 duplicated files. Full plugin packages now share one package-level resource tree. Root plugin skills require that shared tree, so use OMA preset installation instead of
npx skillsor APM. -
Cleaner command surface. Internal entry points are hidden from
oma describeand help but stay runnable. 25 command groups that had no description now have one.skills matrixis nowoma skill matrix, and the plural spelling is rejected. -
Docs generated from source. The CLI registry is rendered from
oma describe, and the skill catalog fromSKILL.mdfrontmatter. Both carry a--checkmode that reports stale blocks. - Docs site content. It gained mermaid diagrams for routing, ultrawork, ralph, and config resolution, plus decision tables and a glossary. The 11 locales and 12 README translations were synced to match.
-
Corrected claims. The ralph judge is now described as prompted, not independent, because nothing checks the spawn. Event log lookup points to
oma state listinstead of a hard-coded path.
The week landed 81 commits across 840 files (+70,280 / -32,120), and the memory rework alone was validated with 1,095 tests.
Upgrade notes
- Run
oma state migrate --runtimeto move project-local state. Runtime readers no longer load it. - Replace
/deepsecwith/securityin any scripts or habits. - Replace
oma skills matrixwithoma skill matrix.
Installation
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex
Links
oh-my-agent is built for teams who orchestrate more than they prompt. Next up: tightening the ralph judge so the spawn is verified instead of only prompted.
Top comments (0)