thehifzproject.com
an app & website to memorize the quran with spaced repetition.
a one-line installer for claude code skills straight from any github repo — no marketplace, no plugin wrapper, and it never runs the code it pulls.
A tiny installer for portable coding-agent skills. No marketplaces. No plugin wrappers. No manual cloning.
bmo add owner/repobmo inspect owner/repobmo listbmo updatebmo remove skill-namebmo doctorbmo upgrade # upgrade bmo itself to the latest releasebmo add owner/repo here # install into this projectbmo add owner/repo everywhere # install globally (the default)bmo add owner/repo codex # Codex + ChatGPT via portable .agents/skillsbmo add owner/repo chatgpt # alias for the same shared destinationbmo add owner/repo gemini # Gemini CLI's native directorybmo add owner/repo everyone # every detected coding harnessbmo add owner/repo --skills-dir PATH # any other coding harnessbmo init # install the skill bmo ships with, into every detected harnessbmo add bmo # ...or restore it if you deleted it
Version 0.11.0v0.11.0 — bmo init installs everywhere by defaultsep 4, 2026
bmo init installs everywhere by default.
Changed
bmo init with no harness named now installs the bundled bmo skill
into every detected harness, not just Claude. The skill is how a
harness learns what bmo is, so every harness wants it.bmo add, the only thing being installed is
bmo's own bundled skill: not executable, idempotent, and undone by
bmo remove bmo. The first-run bootstrap already worked this way.bmo init always installs.init itself, which used
to seed the default harness a moment before init installed where you
actually asked.Naming a harness still installs there alone:
bmo init # every detected harnessbmo init grok # grok onlybmo init claude # the pre-0.11 behavior of a bare `bmo init`
BREAKING CHANGE: bmo init with no harness writes to every detected
harness instead of only Claude.
Upgrade with: bmo upgrade
Version 0.10.0v0.10.0 — Grok Build, portable subagents, harness paritysep 4, 2026
Grok Build support, subagents that reach every harness that reads them, and the end of Claude-only behavior.
Added
grok harness preset for Grok Build: .grok/skills in a project,
$GROK_HOME/skills (else ~/.grok/skills) globally. bmo doctor
reports GROK_HOME the way it reports CLAUDE_CONFIG_DIR.cursor, gemini, grok, and
opencode now receive a skill's bundled agents/*.md in their own
agents directory, each path verified against that harness's docs or
source. Amp is excluded on purpose: its custom agents are TypeScript
plugins, not Markdown.bmo init everyone installs the bundled bmo skill into every detected
harness, using the same fan-out and preflight as bmo add.Changed
model: and tools: name a model and tools no other harness resolves,
so they are dropped — and printed, because losing a tools: allowlist
widens what the subagent may do.bmo init with no harness still targets Claude, but now names the
other harnesses it detected instead of installing somewhere you never
look without saying so.bmo doctor reports skills that Claude's relaxed validation accepted
and no other harness will, rather than leaving you to discover it when
bmo share skips them.Upgrade with: bmo upgrade
an app & website to memorize the quran with spaced repetition.
a floating name tag for whichever claude code session you're currently…
a visual syntax-theme editor — design a theme in your browser and…



an infinite whiteboard desktop app for pen displays —…