oh-my-agent 20.9.0 → 20.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -18
- package/bin/cli-main.js +1080 -1074
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
[한국어](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ko.md) | [中文](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.zh.md) | [Português](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.pt.md) | [日本語](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ja.md) | [Français](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.fr.md) | [Español](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.es.md) | [Nederlands](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.nl.md) | [Polski](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.pl.md) | [Русский](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.ru.md) | [Deutsch](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.de.md) | [Tiếng Việt](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.vi.md) | [ภาษาไทย](https://github.com/first-fluke/oh-my-agent/blob/main/docs/README.th.md)
|
|
6
6
|
|
|
7
|
-
**oh-my-agent (`oma`) adds a team of specialists to the coding agent you already use: Claude Code, Codex CLI, Cursor, and 11 more.** A planner breaks the work down, engineers build in parallel, a reviewer checks the result, and a debugger fixes root causes. It also does cited research, slide decks, videos and images. Most steps leave a file you can open, and in the long-running workflows a gate can send the agent back to work until your own `test`, `lint` or `typecheck` script passes.
|
|
7
|
+
**oh-my-agent (`oma`) is a vendor-agnostic harness that adds a team of specialists to the coding agent you already use: Claude Code, Codex CLI, Cursor, and 11 more.** A planner breaks the work down, engineers build in parallel, a reviewer checks the result, and a debugger fixes root causes. It also does cited research, slide decks, videos and images. Most steps leave a file you can open, and in the long-running workflows a gate can send the agent back to work until your own `test`, `lint` or `typecheck` script passes.
|
|
8
|
+
|
|
9
|
+
[](https://github.com/first-fluke/oh-my-agent/blob/main/docs/assets/architecture/oh-my-agent-architecture.svg)
|
|
8
10
|
|
|
9
11
|
Run this from your project root:
|
|
10
12
|
|
|
@@ -28,7 +30,7 @@ Then run `oma doctor` and type `/plan add user accounts with a settings page` in
|
|
|
28
30
|
| **21 workflows** | Slash commands from `/brainstorm` and `/plan` to `/review`, `/debug` and `/scm`. Most also start from a plain request (keyword banks in up to 11 languages) | "review this PR" |
|
|
29
31
|
| **33 skills** | Domain know-how that loads only when a task needs it: UI, APIs, schemas, Terraform, CI, security, git, observability | loads by itself, e.g. "add a Terraform S3 bucket" |
|
|
30
32
|
| **Files you can open** | Plans, design docs, API contracts, ADRs, bug notes, per-agent results, security evidence, HTML explainers, recaps | `ls .agents/results` |
|
|
31
|
-
| **
|
|
33
|
+
| **Workflow checks** | In a long-running workflow, your own `test`, `lint` or `typecheck` script must pass before the agent may stop; `oma ralph verify` checks that a `/ralph` run left its plan, QA and refactor files | `/ultrawork …`, then `oma goal set --gate test` |
|
|
32
34
|
| **Research and content** | Cited search, market research, papers, slide decks, MP4 videos, images, local voice, PDF/HWP to Markdown | `/video`, `/convert` |
|
|
33
35
|
| **One folder, 14 runtimes** | One portable `.agents/` directory, written into each runtime's own config files | `oma link cursor` |
|
|
34
36
|
|
|
@@ -36,7 +38,7 @@ Then run `oma doctor` and type `/plan add user accounts with a settings page` in
|
|
|
36
38
|
|
|
37
39
|
## Install
|
|
38
40
|
|
|
39
|
-
The script installs [bun](https://bun.sh) if it is missing, installs the `oma` command globally (`bun install --global oh-my-agent`, skipped when `oma` is already on your PATH), then starts the interactive setup. The
|
|
41
|
+
The script installs [bun](https://bun.sh) if it is missing, installs the `oma` command globally (`bun install --global oh-my-agent`, skipped when `oma` is already on your PATH), then starts the interactive setup. The hooks (keyword detection and the Stop gate) and several workflows call the globally installed `oma` command. The hooks silently do nothing if they cannot find it. If you skip the script, install it yourself with `bun install --global oh-my-agent` (`npm install --global oh-my-agent` or `brew install oh-my-agent` also work).
|
|
40
42
|
|
|
41
43
|
<details>
|
|
42
44
|
<summary>Windows, or without the install script</summary>
|
|
@@ -117,7 +119,7 @@ Of the named presets, only `All` includes coordination, orchestration, docs, sec
|
|
|
117
119
|
Or just write "plan user accounts with a settings page": on runtimes with a prompt hook, the keyword starts the same workflow.
|
|
118
120
|
4. **Check what you got.** `/plan` runs in the current session. For work that spans several areas, like this one, it writes `.agents/results/plan-<session-id>.json` and a tracker at `docs/plans/work/<NNN>-<name>.md`. A small, single-area request gets a direct recommendation instead of a plan file.
|
|
119
121
|
|
|
120
|
-
|
|
122
|
+
For larger tasks, continue with `/work` or `/orchestrate` using the plan.
|
|
121
123
|
|
|
122
124
|
## Meet the team
|
|
123
125
|
|
|
@@ -164,7 +166,7 @@ Each step hands a file to the next. `/brainstorm` saves a design that `/plan` re
|
|
|
164
166
|
| Just a plan | `/plan` | A plan file for multi-area work, or a direct recommendation for small work |
|
|
165
167
|
| A PM-led build you follow step by step | `/work` | PM, then engineers tier by tier, then QA. CRITICAL and HIGH findings go into a fix loop (up to 5 cycles) |
|
|
166
168
|
| A hands-off parallel build | `/orchestrate` | Only tasks whose checks pass count as done; each task gets up to 3 attempts, then is marked partial or failed |
|
|
167
|
-
|
|
|
169
|
+
| Five-phase workflow | `/ultrawork` | Five gated phases (PLAN, IMPL, VERIFY, REFINE, SHIP); every review runs in a fresh reviewer session |
|
|
168
170
|
| "Don't stop until it's really done" | `/ralph` | Repeats `/ultrawork` with a separately spawned, fresh-context judge until every criterion passes; stops with a partial report when criteria are blocked or after 5 iterations |
|
|
169
171
|
| The team on a timer | `oma schedule create qa-reviewer "review open PRs" --every 2h` | One Markdown log per run in `~/.oma/schedule/runs/<id>/` |
|
|
170
172
|
|
|
@@ -201,7 +203,7 @@ You don't need slash commands. On runtimes with a prompt hook, plain requests (k
|
|
|
201
203
|
| `/video` | Turns a brief into a finished MP4 through a key-optional pipeline |
|
|
202
204
|
| `/work` | Coordinates several agents on a multi-domain project with PM planning and QA review (persistent) |
|
|
203
205
|
|
|
204
|
-
|
|
206
|
+
`oma verify triggers` evaluates the detector against a labeled English and Korean corpus of 212 prompts. CI fails above 10% false fires or 20% missed fires. Last measured: **0% missed-fire, 5.3% false-fire**. Full reference: [Workflows](https://first-fluke.github.io/oh-my-agent/docs/core-concepts/workflows/).
|
|
205
207
|
|
|
206
208
|
</details>
|
|
207
209
|
|
|
@@ -339,7 +341,7 @@ These pipelines report a missing source or vendor key instead of silently return
|
|
|
339
341
|
<details>
|
|
340
342
|
<summary><strong>Parallel agents, sessions and dashboards</strong></summary>
|
|
341
343
|
|
|
342
|
-
- `oma agent spawn <role> "<task>" <sid>` runs a role on Antigravity, Claude, Codex, Cursor,
|
|
344
|
+
- `oma agent spawn <role> "<task>" <sid>` runs a role on Antigravity, Claude Code, Codex, Cursor, Grok, Kimi Code, Kiro, OpenCode, pi or Qwen Code, with `--isolation worktree` and `--fallback-vendors`. `oma agent parallel` runs several at once. These 10 dispatch targets are a subset of the 14 installer integrations.
|
|
343
345
|
- Add `--read-only` to require a vendor restriction before launch. Codex uses its read-only sandbox, Claude uses plan mode, and Pi excludes `edit`, `write`, `bash`, and `powershell`. Other CLIs require an explicit `read_only_flag`; missing, empty, or known conflicting flags stop dispatch. Custom flags declare support in your CLI or wrapper. Pi's tool exclusions do not restrict arbitrary extension or MCP tools; OMA does not add an operating-system sandbox.
|
|
344
346
|
- `oma state list --all-projects` and `oma state get <sid>`: sessions and every recorded event.
|
|
345
347
|
- `oma dashboard terminal` / `oma dashboard web`: live agent status (the web dashboard listens on `127.0.0.1` only). [Dashboard guide](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/guide/dashboard-monitoring.md).
|
|
@@ -354,10 +356,13 @@ These pipelines report a missing source or vendor key instead of silently return
|
|
|
354
356
|
| Slot | Default | Alternatives |
|
|
355
357
|
|---|---|---|
|
|
356
358
|
| Docs | Context7 | — |
|
|
359
|
+
| Web search | Runtime native search | Brave Search |
|
|
357
360
|
| Code intelligence | Serena, one shared server per project | Gortex (experimental) |
|
|
358
361
|
| Semantic memory | AgentMemory | Honcho (experimental), none |
|
|
359
362
|
| Browser MCP | Aside | Chrome DevTools, Firefox DevTools |
|
|
360
363
|
|
|
364
|
+
Serena supplies LSP-based code navigation and diagnostics, including native-edit feedback where supported. Provider selection is independent of the agent runtime; capabilities vary by provider and host.
|
|
365
|
+
|
|
361
366
|
Agents coordinate through plain files in `.agents/state/`, with no outside service. `/tools` turns MCP tools on or off in plain language. Details: [Capability Providers](https://github.com/first-fluke/oh-my-agent/blob/main/docs/capability-providers.md).
|
|
362
367
|
|
|
363
368
|
</details>
|
|
@@ -546,11 +551,14 @@ agents:
|
|
|
546
551
|
|
|
547
552
|
</details>
|
|
548
553
|
|
|
549
|
-
|
|
554
|
+
<a id="verification-not-narration"></a>
|
|
555
|
+
## Verification
|
|
556
|
+
|
|
557
|
+
OMA checks the artifacts produced by its workflows. [See it work](#see-it-work) shows the Stop gate in action.
|
|
550
558
|
|
|
551
|
-
|
|
559
|
+
OMA also records tool-call metadata and payload digests for tracked Claude Code and Codex harness runs, distinguishes reported token usage from estimates, and evaluates skill regressions. These +1 functions span the layers; trace coverage varies by runtime and run.
|
|
552
560
|
|
|
553
|
-
|
|
561
|
+
Most checks are mechanical. Commands exit with status 0 or another status, and artifacts are either on disk or absent. The prompted judge is the exception. The mechanical checks do not ask an LLM whether the work "looks correct."
|
|
554
562
|
|
|
555
563
|
| Mechanism | What it checks | Source |
|
|
556
564
|
|-----------|----------------|--------|
|
|
@@ -560,32 +568,35 @@ Every mechanism below except the prompted judge is mechanical: a command exits 0
|
|
|
560
568
|
| **Event log** | In an OMA session, gate passes, gate failures, and decisions append one JSON line each to the session's `events.jsonl`. | [`state-core.ts`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/hooks/core/state-core.ts) · [`event-spec.md`](https://github.com/first-fluke/oh-my-agent/blob/main/.agents/skills/_shared/runtime/event-spec.md) |
|
|
561
569
|
| **Per-agent checks** | `oma verify agent <type>` runs Scope Check, Charter Preflight, Hardcoded Secrets, TODO/FIXME Comments, Declared outputs, and TDD Evidence, plus per-type checks such as TypeScript, Any Types, SQL Injection, and tests. | `oma verify agent --help` |
|
|
562
570
|
|
|
563
|
-
> **
|
|
571
|
+
> **Session event logging.** The Stop hook records gate events under the OMA session opened when the persistent workflow started. Event writes are best-effort. If that session could not be created (stderr shows `[oma] L1 session activation failed`), a failing gate still blocks the stop, but no `gate.failed` line is written. Before you rely on the trail, or demo it, check that `oma state list` shows an active session; `oma state get <sid>` then shows its events.
|
|
564
572
|
|
|
565
573
|
<details>
|
|
566
574
|
<summary>Limits, details, and how the Stop hook decides</summary>
|
|
567
575
|
|
|
568
|
-
**Limits
|
|
576
|
+
**Limits:**
|
|
569
577
|
|
|
570
578
|
- The Stop gate applies only to the persistent workflows (`/orchestrate`, `/work`, `/ultrawork`, `/ralph`). Without `oma goal set --gate`, it only re-prompts the agent to continue. `/ultrawork` tells the agent to set a gate when the project has a cheap check, but nothing enforces it. Run `oma goal set --gate test` yourself if you want to be sure; the other persistent workflows never set one.
|
|
571
579
|
- Only the `typecheck`, `test`, and `lint` keywords are accepted, and they run the package.json script of that name. No package.json, or no script with that name, means the gate is not run. Non-JS projects need a package.json wrapper script.
|
|
572
|
-
- The
|
|
580
|
+
- The gate releases and logs a failure after 5 reinforcements, 2 hours, or when `--budget-minutes` runs out.
|
|
573
581
|
- Budgets: `session.quota_cap` caps tokens, spawn count, and per-vendor tokens; the orchestrator refuses the next spawn when a dimension is exceeded.
|
|
574
582
|
|
|
575
|
-
**Artifact gate.** A missing artifact means the phase did not run
|
|
583
|
+
**Artifact gate.** A missing artifact means the phase did not run. The refactor check also passes as `skip-recorded` when the session log records a REFINE skip reason.
|
|
576
584
|
|
|
577
|
-
**Prompted judge.** The `/ralph` workflow prompt tells the orchestrator to spawn the judge as a separate agent with fresh context, briefed on the criteria only (never on what the implementer claims it fixed), and to re-verify **every** criterion each iteration, including earlier PASSes, because fixing
|
|
585
|
+
**Prompted judge.** The `/ralph` workflow prompt tells the orchestrator to spawn the judge as a separate agent with fresh context, briefed on the criteria only (never on what the implementer claims it fixed), and to re-verify **every** criterion each iteration, including earlier PASSes, because fixing one criterion can cause another to regress. Nothing checks that the spawn happened: `oma ralph verify` gates the EXEC artifacts, not the judge, and a runtime that cannot spawn subagents is told to judge inline and record `ralph.judge-inline-fallback`. `/ralph` stops after 5 iterations with a partial report.
|
|
578
586
|
|
|
579
587
|
**Event log.** Find the session with `oma state list` and read it with `oma state get <sid>`. Each event is stamped with vendor and runtime session id. The file's location depends on `OMA_HOME`, `OMA_STATE_HOME`, `OMA_PROFILE`, and older project-local session folders, so don't hard-code it.
|
|
580
588
|
|
|
581
589
|
**Per-agent checks.** Types: `backend`, `frontend`, `mobile`, `qa`, `debug`, `pm`. The command exits 1 when any check fails; TODO/FIXME Comments and Inline Styles only warn.
|
|
582
590
|
|
|
591
|
+
<!-- Stack manifests in this list are optional outputs of /stack-set, not shipped files. -->
|
|
592
|
+
<!-- oma-docs:ignore-start -->
|
|
583
593
|
- `backend`: `<Language> Syntax`, `SQL Injection` (raw SQL patterns), and `<Language> Tests`, from the commands in `stack/stack.yaml`. Without that file (generate it with `/stack-set`) they are skipped.
|
|
584
594
|
- `frontend`: the `stack/stack.yaml` syntax and test commands (under `oma-frontend`, or `angular-developer` when that skill is installed), or TypeScript (`tsc --noEmit`) and Frontend Tests (Vitest). Inline Styles and Any Types always run.
|
|
585
595
|
- `mobile`: the `stack/stack.yaml` syntax and test commands, or Flutter/Dart Analysis and Flutter Tests.
|
|
586
596
|
- `debug`: Python Tests (pytest through uv) or Frontend Tests (Vitest).
|
|
587
597
|
- `pm`: PM Plan (the plan file is valid JSON).
|
|
588
598
|
- `qa`: no mechanical checks.
|
|
599
|
+
<!-- oma-docs:ignore-end -->
|
|
589
600
|
|
|
590
601
|
```mermaid
|
|
591
602
|
flowchart TD
|
|
@@ -648,7 +659,7 @@ Planning and choosing the next step stay with your agent's model; oma has no fix
|
|
|
648
659
|
|
|
649
660
|
</details>
|
|
650
661
|
|
|
651
|
-
## Learn
|
|
662
|
+
## Learn more
|
|
652
663
|
|
|
653
664
|
- **[Docs site](https://first-fluke.github.io/oh-my-agent/)**: guides, tutorials, and CLI reference. Start with [Quick Start](https://first-fluke.github.io/oh-my-agent/docs/getting-started/quick-start/) and [Installation](https://first-fluke.github.io/oh-my-agent/docs/getting-started/installation/).
|
|
654
665
|
- **[Why oh-my-agent](https://first-fluke.github.io/oh-my-agent/docs/getting-started/why-oh-my-agent/)**: when to choose it and the trade-offs
|
|
@@ -658,13 +669,13 @@ Planning and choosing the next step stay with your agent's model; oma has no fix
|
|
|
658
669
|
- **[Capability Providers](https://github.com/first-fluke/oh-my-agent/blob/main/docs/capability-providers.md)**: experimental Gortex and Honcho configuration, routing, and limits
|
|
659
670
|
- **[Skill Compatibility Matrix](https://github.com/first-fluke/oh-my-agent/blob/main/docs/skills-matrix.md)**: native skill content, references, and response contracts in Claude and Codex
|
|
660
671
|
|
|
661
|
-
>
|
|
672
|
+
> Star the project on GitHub:
|
|
662
673
|
>
|
|
663
674
|
> ```bash
|
|
664
675
|
> gh api --method PUT /user/starred/first-fluke/oh-my-agent
|
|
665
676
|
> ```
|
|
666
677
|
>
|
|
667
|
-
>
|
|
678
|
+
> Starter template: [fullstack-starter](https://github.com/first-fluke/fullstack-starter)
|
|
668
679
|
|
|
669
680
|
## Star History
|
|
670
681
|
|