Benmore-Meridian (bm CLI)
Benmore Studio's Claude Code monorepo and the bm CLI that drives it. 77 production skills covering Django, FastAPI, Stripe, HIPAA/GDPR/SOC 2 compliance, mobile (Expo/React Native), SEO, deployment (Heroku/DigitalOcean/Vercel), and PCS microservices — all symlinked into ~/.claude/skills/ via one command so `git pull` is the only update step. Ships with `benmore_client`, a separate pip-installable typed async Python client for Benmore's project-management API (30+ endpoints, Pydantic v2 models, py.typed, 168 tests) whose 58 parallel HTTP calls drop end-to-end latency from ~30s to 3.7s via asyncio.gather. Adds 11 reusable prompt templates exportable as Claude Code /commands, git auto-sync hooks for skills and prompts, project-aware skill suggestions from static stack detection, post-session skill candidates surfaced from recent git history, a CLAUDE.md snippet generator, and a curated dev-toolkit installer (ripgrep, fzf, lazygit, bat, eza, zoxide, delta, gh). Every command supports --json so Claude agents can query the registry directly. Built with Typer + Rich, strict mypy (zero errors), ruff, 84+ tests, hatchling, uv. Used by every Benmore engineer; full FDE onboarding deck and presentation live in-repo.
Highlights
- Symlink-first install — edit a skill once, every Claude session reflects it
- Project-skill lifecycle: scope to a project, generalize when proven universal
- Registry at ~/.bm/registry.json tracks every skill with source + install method
- Plugin detection for Superpowers and Double Shot Latte with install guides
- 11 saved prompt templates exportable as Claude Code /commands ($1, $2, $ARGUMENTS)
- Git hooks auto-run bm install on pull/checkout when skills or prompts change
- Static stack detection → ranked skill suggestions and CLAUDE.md snippets
- Post-session debrief surfaces skill candidates from recent git history
- asyncio.gather parallelizes 58 Benmore API calls — 30s → 3.7s
- --json on every command for agent-native queries
- Strict mypy (zero errors), ruff clean, 84+ tests, dry-run on every destructive op
Run it
$ bm install$ bm doctor$ bm status --json$ bm skill add <name> --project <p>$ bm skill generalize <name>$ bm suggest [path]$ bm context [path] --copy$ bm debrief --since <tag>$ bm prompt export --all$ bm hooks install$ bm benmore list$ bm tools install ripgrep fzf lazygitTech
The canonical source for this project is on GitHub.
View on GitHubREADME · github.com/Benmore-Studio/Benmore-Meridian
bm
An extremely fast Claude Code skill manager.
Install 55+ Claude Code skills in one command. Edit once, reflect everywhere via symlinks.
Table of Contents
- Highlights
- New? Start Here 🚀
- Installation
- Quick Start
- Commands — Core, Skills, Discovery, Prompts, Hooks, Tools
- Skills
- Plugin Ecosystem
- Developer Tools
- Technology Stack
- Repository Structure
- Guides
- Contributing
New? Start Here 🚀
Forward Deployed Engineer? → FDE Onboarding Guide
Read the FDE principles, install Ghostty + Raycast, then run bm setup --yes — that's it. The CLI handles everything else.
Highlights
- ⚡ One command install —
bm installsymlinks all 50+ skills into Claude Code instantly. - ✅ Symlink-first — skills live in the repo; edit once and changes reflect everywhere with no reinstall.
- 🎯 Project skill lifecycle — create scoped skills with
bm skill add x --project p, promote to general when proven. - 🔧 Registry tracking — every installed skill is recorded in
~/.bm/registry.json, however it was installed. - Claude-native JSON output — every command supports
--jsonso agents can querybm status --jsondirectly. - Plugin guidance —
bm pluginsdetects Superpowers and Double Shot Latte and walks you through any missing installs. - Zero config — path constants computed from repo root at import time; works from any directory.
- 📝 Saved prompts — save, search, star, and reuse prompt templates. Export as Claude Code
/commands. - 🔄 Auto-sync hooks — git hooks auto-run
bm installon pull/checkout when skills or prompts change. - 💡 Dashboard tips — random helpful hints shown on
bmdashboard so you discover features without reading docs.
Installation
Requirements: Python 3.11+, Claude Code
git clone https://github.com/Benmore-Studio/Benmore-Meridian
cd Benmore-Meridian
pip install -e ./bm
pip install -e ./bm keeps bm linked to the repo so it always finds the skills/ directory. Running git pull immediately updates all skill content through symlinks — no reinstall needed.
Quick Start
# Symlink all 55+ skills into Claude Code
bm install
# Verify skill status
bm status
# Check plugin requirements (Superpowers, Double Shot Latte)
bm plugins
# Full health check
bm doctor
Open Claude Code in any project — all skills are live.
Update to latest:
git pull
bm update # git pull + reinstalls all skills
Commands
Core
| Command | Description |
| -------------------------------------------- | -------------------------------------------------------- |
| bm install [--rsync] [--dry-run] | Symlink all skills → ~/.claude/skills/ (idempotent) |
| bm status [--json] | Show skill status as rich table or JSON |
| bm update [name] [--rsync] [--dry-run] | git pull + reinstall one or all skills |
| bm plugins | Detect and guide Superpowers / Double Shot Latte install |
| bm doctor | Full health check: skills + plugins + registry |
Skills
| Command | Description |
| --------------------------------------------------- | ----------------------------------------------------------------- |
| bm skill add <name> | Scaffold a new general skill |
| bm skill add <name> --project <p> | Scaffold a project-scoped skill |
| bm skill list [--project <p>] [--json] | List skills, optionally filtered by project |
| bm skill generalize <name> | Promote a project skill to general |
| bm skill info <name> | Show path, scope, status, and source |
| bm skill remove <name> [--dry-run] | Uninstall a skill from ~/.claude/skills/ and registry ✨ v1.1 |
| bm skill write <name> | Interactively generate a new SKILL.md with guided prompts ✨ v1.1 |
| bm skill add-external <source> --skill <name> | Install a skill from plugins/agents directories ✨ v1.3 |
Discovery ✨ v1.3
| Command | Description |
| ----------------------------------------------------- | ------------------------------------------------------------- |
| bm suggest [path] [--top N] [--json] | Scan project → ranked skill suggestions (static, no API) |
| bm context [path] [--copy] | Generate CLAUDE.md snippet with detected stack + top 5 skills |
| bm explore [path] | Deep scan → writes docs/bm-suggestions.md report |
| bm debrief [--since <tag>] [--limit N] [--json] | Surface skill candidates from recent git history |
Registry
| Command | Description |
| ---------------------------------- | ----------------------------------------------- |
| bm registry sync [--dry-run] | Scan ~/.claude/skills/ and reconcile registry |
| bm registry list [--json] | List all registered skills |
Prompts ✨ v1.6
| Command | Description |
| --------------------------------------------------------------- | ---------------------------------------------------- |
| bm prompt list [--tag T] [--starred] [--popular] [--json] | Browse saved prompts with filters |
| bm prompt add <name> [-p project] | Create a reusable prompt template |
| bm prompt search <query> [--tag T] | Fuzzy-search prompts by name, description, or tags |
| bm prompt info <name> | Show full prompt content and metadata |
| bm prompt copy <name> [args...] | Render with arguments → clipboard |
| bm prompt export <name> / --all | Symlink → ~/.claude/commands/ (becomes /command) |
| bm prompt unexport <name> | Remove from Claude Code commands |
| bm prompt star/unstar <name> | Bookmark favorite prompts |
| bm prompt remove <name> | Delete a prompt |
Hooks ✨ v1.6
| Command | Description |
| ------------------------ | ---------------------------------------------------------- |
| bm hooks install | Install post-merge + post-checkout hooks for auto-sync |
| bm hooks remove | Remove bm-managed hooks (preserves others) |
| bm hooks status | Check which hooks are installed |
| bm install --quiet | Silent mode for hooks and automation |
Tools
| Command | Description |
| -------------------------------- | -------------------------------------------------------------- |
| bm tools list | Show available developer CLI tools with install status ✨ v1.1 |
| bm tools install [name...] | Install tools via Homebrew (macOS) or apt (Linux) ✨ v1.1 |
All commands support --help for detailed usage.
Skills
Skills are markdown files (SKILL.md) that give Claude Code domain expertise and step-by-step workflows for specialized tasks. They live in skills/ and are symlinked to ~/.claude/skills/ where Claude Code picks them up automatically.
Available Skills
| Category | Skills |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 🚀 Production | django-production, frontend-productionize, productionize-app, fastapi-templates, vercel-cli |
| 🔒 Security & Compliance | dependency-security-audit, audit-trail, gdpr-compliance, multi-tenant-guard, hipaa-compliance-guard, security-compliance-audit, healthcare-audit-logger |
| 🌐 SEO | ai-seo, seo-audit, programmatic-seo |
| 📱 Mobile | django-auth-react-native, expo-deployment, expo-push-notifications, django-react-2fa |
| 📄 Documents | pdf, xlsx, presentation-maker, release-notes |
| 🔧 Dev Tools | mcp-builder, modern-terminal-setup, skill-creator, find-skills |
| 🤝 Workflow | feature-alignment, github-pr-review-workflow, receiving-code-review |
| 💳 Payments | stripe-integration |
| 🏗️ PCS (scoped) | pcs-migration, pcs-new-service, pcs-add-endpoint, + 4 more |
Full inventory: skills/SKILLS_INVENTORY.md
Creating a Skill
# 1. Scaffold a new skill
bm skill add my-skill
# 2. Edit the generated SKILL.md
$EDITOR skills/my-skill/SKILL.md
# 3. Activate via symlink
bm install
# 4. Invoke it in Claude Code
# "Run my-skill on this project"
Project Skill Lifecycle
Skills start project-scoped and graduate to general when proven:
# Create scoped to a project
bm skill add deploy-hook --project my-project
# Edit and test in Claude Code
$EDITOR skills/my-project/deploy-hook/SKILL.md
bm install
# Promote when it proves universally useful
bm skill generalize deploy-hook
# → moves skills/my-project/deploy-hook/ → skills/deploy-hook/
# → updates symlink and registry
Claude-Native JSON Output
# Claude agents can query bm directly
bm status --json # [{name, status, scope, project}, ...]
bm registry list --json # [{name, source, scope, install_method, ...}, ...]
bm skill list --json # [{name, scope, project, path}, ...]
Plugin Ecosystem
bm integrates with two Claude Code plugin marketplaces. Run bm plugins to check your install status and get setup instructions.
Superpowers
Advanced skills for systematic debugging, test-driven development, parallel subagent execution, git worktrees, and more. Installs into ~/.claude/skills/superpowers/.
Double Shot Latte
Compound engineering workflows: browser automation, frontend design, brainstorming, PR review, and agent-native architecture patterns.
# Check which plugins are installed
bm plugins
# Doctor will also surface missing plugins
bm doctor
Developer Tools
bm can install a curated set of modern CLI tools via Homebrew (macOS) or apt (Linux):
bm tools list # see available tools + install status
bm tools install ripgrep fzf lazygit # install specific tools
bm tools install # install everything
| Tool | Purpose | Install |
| --------------------------------------------------- | ---------------------------------------------- | ------------------------ |
| ripgrep | Extremely fast grep replacement (rg) | brew install ripgrep |
| fzf | Fuzzy finder for shell history, files, git | brew install fzf |
| lazygit | Terminal UI for git branches and diffs | brew install lazygit |
| bat | cat with syntax highlighting and git markers | brew install bat |
| eza | Modern ls with icons and git status | brew install eza |
| zoxide | Smarter cd — jump to frecent directories | brew install zoxide |
| delta | Syntax-highlighted git diff viewer | brew install git-delta |
| gh | GitHub CLI — PRs, issues, releases | brew install gh |
Technology Stack
| Tool | Purpose | | --------------------------------------------------- | ----------------------------------------------- | | Claude Code | AI coding assistant — skill runtime | | uv | Python package manager | | Ruff | Python linter and formatter | | Typer | CLI framework built on Click + type annotations | | Rich | Terminal UI — tables, panels, progress bars | | mypy | Static type checker (strict mode, 0 errors) | | pytest | Test framework | | ripgrep | Fast code search referenced in dev skills | | fzf | Fuzzy finder referenced in terminal skills | | lazygit | Git TUI referenced in dev tooling skills |
Repository Structure
Benmore-Meridian/
├── bm/ # The bm CLI tool
│ ├── bm/ # Python package
│ │ ├── cli.py # All commands (Typer)
│ │ ├── installer.py # Symlink-first install + SKILL.md validation
│ │ ├── registry.py # ~/.bm/registry.json persistence
│ │ ├── dryrun.py # DryRunContext — safe preview of any write ✨ v1.1
│ │ ├── validator.py # SKILL.md frontmatter validation ✨ v1.1
│ │ ├── tools.py # Developer tool definitions ✨ v1.1
│ │ ├── status.py # Installed/missing/broken detection
│ │ ├── plugins.py # Superpowers + Double Shot Latte detection
│ │ ├── updater.py # git pull + reinstall orchestration
│ │ ├── config.py # Path constants + REPO_ROOT discovery
│ │ └── models.py # All dataclasses and enums
│ ├── tests/ # 38+ tests, mypy strict, ruff clean
│ └── README.md # Full bm command reference + architecture
├── skills/ # 55+ Claude Code skills (symlinked to ~/.claude/skills/)
├── guides/ # Developer onboarding documentation
│ ├── django/ # Production readiness (3 complementary guides)
│ ├── deployment/ # Heroku, DigitalOcean, CI/CD, React Native
│ ├── development/ # Dev workflow, Claude Code ecosystem
│ ├── review/ # PR review with AI
│ └── toolkit/ # Environment setup
└── docs/ # Design specs + implementation plans
Guides
| Guide | Description | | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | | FDE Onboarding | Start here if you're new — full setup in one command | | Django Production | Simple → detailed → comprehensive productionization | | Deployment | Heroku, DigitalOcean (6 ops guides), CI/CD, React Native | | Development Workflow | Meeting notes → production, Claude Code ecosystem | | PR Review | AI-assisted review + GitHub Projects setup | | Developer Toolkit | Environment setup checklist (ripgrep, gh, uv, etc.) | | Claude Code Training | Training deck for onboarding engineers to Claude Code workflows and skills |
Contributing
Guides for deployment, Django, CI/CD, and team workflows live in guides/. See guides/README.md for the full index.
# Run the full check suite before submitting
cd bm
uv sync --all-extras
make check-all # ruff + mypy + pytest in < 30s
Pull requests welcome. When adding a new skill, follow the project skill lifecycle above — start scoped, generalize when proven.
Part of Benmore-Meridian — the Claude Code skills repo for Benmore Studio.