Install or verify the oma CLI and its runtimes (bun, uv, serena) before any oma-* skill, agent, or workflow runs an `oma` command. Use when `oma` is missing from PATH, when a skill says to run `oma ...` and the shell reports "command not found", or on the first task in a fresh Cursor or Grok Bot workspace.
Installs into .claude/skills of the current project.
Are you the author of Oma Bootstrap?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/first-fluke-oma-bootstrap)
---
name: oma-bootstrap
description: Install or verify the oma CLI and its runtimes (bun, uv, serena) before any oma-* skill, agent, or workflow runs an `oma` command. Use when `oma` is missing from PATH, when a skill says to run `oma ...` and the shell reports "command not found", or on the first task in a fresh Cursor or Grok Bot workspace.
---
# oma bootstrap
The oma-* skills in this plugin describe *what* to do. Several of them delegate
the mechanics to the `oma` CLI (`oma agent spawn`, `oma market run`,
`oma recap`, `oma hook run`, `oma doctor`), and code search expects the
Serena MCP binary. Marketplace installs ship the skill text, not the binaries,
so a fresh workspace may have neither.
## When to run
- A skill instruction contains an `oma ...` command and `command -v oma` is empty.
- The shell reports `oma: command not found` or `serena: command not found`.
- The workspace has no `.agents/` directory and a skill needs project state
(`.agents/state/`, `.agents/results/`, `oma-config.yaml`).
Skip this skill when `oma --version` already prints a version.
## Steps
Run from the repository root. Every step is idempotent; rerunning is safe.
1. Check: `command -v oma && oma --version`. If both succeed, stop here.
2. Provision the runtimes with the official installer in non-interactive
mode. It installs bun, uv, serena-agent, and cue when missing, and
`OMA_INSTALL_NO_RUN=1` skips the interactive setup it would otherwise
launch at the end:
```bash
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh \
| OMA_INSTALL_NO_RUN=1 bash
export PATH="$HOME/.bun/bin:$HOME/.local/bin:$PATH"
```
Without `curl`, use `wget -qO-` in its place. Each dependency is
best-effort: the installer warns and continues when one fails.
3. Install the CLI as a persistent global binary (skills call bare `oma`):
```bash
bun install --global oh-my-agent
```
4. Wire the project non-interactively. This creates `.agents/` with the
default preset and leaves existing files untouched:
```bash
oma install --yes
```
5. Verify: `oma doctor`. It reports whether `serena` is on PATH and whether
the project is registered. Report any warning before continuing with the
original task.
## Rules
- Ask before `oma install --yes` when the repository is not yours or when
`.agents/` already exists with local changes.
- Do not fall back to re-implementing an `oma` command by hand. If the CLI
cannot be installed, say so and complete only the parts of the task that do
not need it.
- Do not run the installer without `OMA_INSTALL_NO_RUN=1` in a headless Bot:
the interactive setup reads from `/dev/tty` and hangs.
- If `serena` is still missing after step 2, run
`uv tool install -p 3.13 serena-agent@latest --prerelease=allow` once, then
`uv tool update-shell`.