Scan codebase architecture and generate/update .omm/ documentation.

MITAuto-check passedDevelopment

Install Omm Scan

skills CLI
$ npx skills add oh-my-mermaid/oh-my-mermaid --skill omm-scan -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oh-my-mermaid/oh-my-mermaid omm-scan --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oh-my-mermaid/oh-my-mermaid.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/omm-scan .claude/skills/omm-scan && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
omm-scan
GitHub stars
2.7k
Token cost
~1.8k tokens
SKILL.md length
637 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Scan codebase architecture and generate/update .omm/ documentation.

  • Works in 5 steps: Check Language → Explore the Codebase → Select Perspectives → …
  • The user says omm scan
  • SKILL.md covers Purpose, Prerequisites, Step 0: Check Language and Step 1: Explore the Codebase, plus 5 more sections
  • Calls npm

What it does

Omm Scan is an agent skill from oh-my-mermaid/oh-my-mermaid. Scan codebase architecture and generate/update .omm/ documentation. Use when the user says "omm scan", "scan architecture", "update architecture", "refresh diagrams".

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Diagrams. It works with Mermaid. The repository describes itself as: Turn complex codebases into clear, navigable architecture diagrams with Claude Code. The licence is MIT.

When your agent uses it

  • The user says omm scan
  • Scan architecture
  • Update architecture
  • Refresh diagrams

Example prompts

  • “omm scan”
  • “scan architecture”
  • “update architecture”
  • “/omm-scan”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Check Language
  2. Explore the Codebase
  3. Select Perspectives
  4. Generate Perspectives with Recursive Drill-Down
  5. Summarize

What it can do on your machine

Read from SKILL.md and the folder at commit 38ccdb6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Omm Scan loads about 1.8k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 637 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~44
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from oh-my-mermaid/oh-my-mermaid at commit 38ccdb6, republished under its MIT licence (© oh-my-mermaid). 637 words, ~1,811 tokens.

Download SKILL.mdSave it as .claude/skills/omm-scan/SKILL.md (or your agent's skills folder).
name
omm-scan
description
Scan codebase architecture and generate/update .omm/ documentation. Use when the user says "omm scan", "scan architecture", "update architecture", "refresh diagrams".

omm-scan — Perspective-Based Architecture Scanner

Purpose

Analyze the codebase and generate .omm/ architecture documentation using perspective-driven recursive analysis.

  • A perspective is a top-level element — a distinct way to look at the architecture.
  • Each element in a diagram gets analyzed recursively. If it has internal structure, it becomes a child element (subdirectory with its own diagram). If not, it stays a leaf.
  • The filesystem determines nesting. Element IDs in diagrams match child directory names. The viewer resolves groups from the filesystem.

Prerequisites

bash
command -v omm || npm install -g oh-my-mermaid

If the install fails, tell the user: "Please run npm install -g oh-my-mermaid in your terminal, then try again."


Step 0: Check Language

bash
omm config language

Write field content (description, context, constraint, concern, todo, note) in the configured language. Default is English. Element IDs, directory names, and diagram node IDs are always English kebab-case.

Step 1: Explore the Codebase

Use Glob and Read to understand the project:

  • Read package.json, pyproject.toml, or equivalent manifests
  • List top-level directories to identify module boundaries
  • Read key entry points (main, index, app files)
  • Look for route definitions, service layers, database connections, external integrations

Step 2: Select Perspectives

From the catalog below, choose which perspectives are meaningful for this codebase.

Perspective Catalog
PerspectiveWhen to createWhat it answers
overall-architectureAlwaysWhat exists and how pieces relate
request-lifecycleAny server/APIHow a request enters and gets handled end-to-end
data-flowAny data processing, DB usageWhere data comes from, transforms, and lands
dependency-mapComplex module graphWhat depends on what, what's shared
external-integrationsExternal APIs/servicesWhat the system connects to and why
state-transitionsStateful features (frontend or backend)How state changes and what triggers it
route-page-mapFrontend with routingPage structure and navigation flow
command-surfaceCLI toolsCommand hierarchy and dispatch
extension-pointsPlugin/extension systemsExtension architecture and registry
pipelineML/data pipelinesStage topology and data flow
orchestrationEvent-driven/queue systemsPublisher, subscriber, broker topology
storage2+ storage systemsStorage topology (DB, cache, queue, object store)

Don't force perspectives that don't exist in the code.

Step 3: Generate Perspectives with Recursive Drill-Down

For each selected perspective, follow this recursive process:

3a. Write the perspective diagram

Element IDs match child directory names. The viewer resolves nesting from the filesystem.

bash
omm write <perspective> diagram - <<'MERMAID'
graph LR
    renderer["Renderer\nsrc/renderer/"]
    renderer -->|"IPC invoke/on"| main-process["Main Process\nsrc/main/"]
    main-process -->|"spawn PTY"| engine-system["Engine System\nsrc/main/engine/"]
    main-process -->|"read/write JSON"| data-store["Data Store\nsrc/main/store.ts"]
    main-process -->|"xterm.js"| terminal-dock["Terminal Dock\nsrc/renderer/src/panel/"]
MERMAID
3b. Write the other 6 fields

Each as a separate omm write command: description, context, constraint, concern, todo, note.

Show full SKILL.md (306 more words)Show less
3c. Recursive drill-down: analyze every element

For every element in the diagram:

  1. Analyze the code it represents (Glob + Read the relevant files/directories)

  2. Write description for every node — no exceptions. This creates the element directory. Optionally write other fields (context, constraint, concern, todo, note) if relevant — Write in the configured language.

    bash
    omm write <perspective>/<element-name> description - <<'EOF'
    (what this element does, which files/dirs it covers)
    EOF
  3. Decide leaf or group:

    • Distinct internal components found → write a diagram and recurse deeper (it becomes a group)
    • No meaningful sub-components (single file, trivial wrapper, external system) → write remaining fields only (it stays a leaf)
  4. If group — write diagram and recurse:

    bash
    omm write <perspective>/<element-name> diagram - <<'MERMAID'
    graph LR
        (internal elements)
    MERMAID

    Then repeat step 3c for each element in this diagram.

Example recursion
text
overall-architecture (perspective)
  elements: renderer, main-process, engine-system, data-store, terminal-dock

  → analyze renderer (src/renderer/)
    → finds: App.tsx, components/, hooks/, stores/, world/
    → group → write diagram with: components, stores, world
      → analyze components → 15 .tsx files, no sub-structure → leaf
      → analyze stores → 4 zustand stores → leaf
      → analyze world → OfficeCanvas + PixiJS logic → leaf

  → analyze main-process (src/main/)
    → finds: ipc.ts, auth/, engine/, terminal-session-service.ts, store.ts
    → group → write diagram with: auth, engine, terminal-session
      → analyze auth → auth-service.ts, callback-server.ts → leaf
      → analyze engine → claude-code.ts, codex.ts → leaf

  → analyze data-store (src/main/store.ts)
    → single file → leaf

  → analyze terminal-dock (src/renderer/src/panel/)
    → TerminalDock.tsx, DockManager → leaf

Step 4: Summarize

Report what was created/updated and suggest omm view to view.

Diagram Rules

  • Element IDs must match the child directory name. Use kebab-case: main-process, data-store, terminal-dock.

  • Element labels use two-line format: name + file path, separated by \n:

    text
    main-process["Main Process\nsrc/main/"]
    auth-service["Auth Service\nsrc/auth/service.ts"]
  • Every edge must have a meaningful label: A -->|"why this connection exists"| B

  • More elements in one diagram means you should recurse deeper.

  • Use graph LR for most diagrams, graph TD for hierarchies.

  • Use classDef for visual distinction when helpful:

    StyleColorWhen to use
    external#585b70Third-party services outside your codebase
    concern#f38ba8Known risk or bottleneck
    entry#89b4faEntry points (HTTP handler, CLI, queue consumer)
    store#a6e3a1Persistent storage (DB, cache, file system)
    text
    classDef external fill:#585b70,stroke:#585b70,color:#cdd6f4
    classDef concern fill:#f38ba8,stroke:#f38ba8,color:#1e1e2e
    classDef entry fill:#89b4fa,stroke:#89b4fa,color:#1e1e2e
    classDef store fill:#a6e3a1,stroke:#a6e3a1,color:#1e1e2e

General Rules

  • Write each field as a separate omm write command. Each omm write must be its own Bash tool call.
  • Do not rewrite elements that haven't changed.
  • Do not create circular references. A child element must never reference its parent.

© oh-my-mermaid, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/omm-scan of oh-my-mermaid/oh-my-mermaid.

Open the folder on GitHubat commit 38ccdb6

Compare with similar skills

Omm Scan next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Omm Scan compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Omm Scan this skilloh-my-mermaid/oh-my-mermaid2.7k—~1.8kAutomated safety check: PassMIT
Archify Diagramstt-a1i/archify82k—~2.9kAutomated safety check: PassMIT
Diagram Designcathrynlavery/diagram-design49k1 repos~7.6kAutomated safety check: PassMIT
Draw.io Diagram StudioAgents365-ai/drawio-skill10k—~2.4kAutomated safety check: NotesMIT
Pretty Mermaid Rendererimxv/Pretty-mermaid-skills1.5k—~2kAutomated safety check: PassMIT
Archify Diagram BuilderUnclecheng-li/AI_Animation1.5k2 repos~4.1kAutomated safety check: PassMIT

Similar skills

  • Archify Diagrams

    tt-a1i/archify

    Creates interactive architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone HTML with inline SVG, themes and image or video export.

    82k GitHub stars~2.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    49k GitHub starsUsed in 1 repo~7.6k tokens
    DevelopmentAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • Pretty Mermaid Renderer

    imxv/Pretty-mermaid-skills

    Writes and renders Mermaid diagrams as themed SVG, PNG or terminal ASCII and Unicode art with a bundled Node.js CLI that needs no browser.

    1.5k GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Archify Diagram Builder

    Unclecheng-li/AI_Animation

    Builds validated architecture, workflow, sequence, data-flow and lifecycle diagrams as standalone interactive HTML from a small JSON spec, with optional motion and image export.

    1.5k GitHub starsUsed in 2 repos~4.1k tokens
    DevelopmentAuto-check passed
  • Mermaid

    WH-2099/mermaid-skill

    Generate Mermaid diagrams from user requirements. An agent skill from WH-2099/mermaid-skill.

    288 GitHub starsUsed in 4 repos~958 tokens
    DevelopmentAuto-check passed

More from oh-my-mermaid/oh-my-mermaid

  • Omm Push

    oh-my-mermaid/oh-my-mermaid

    Push architecture docs to oh-my-mermaid cloud. An agent skill from oh-my-mermaid/oh-my-mermaid.

    2.7k GitHub stars~441 tokensUpdated 6 mo ago
    Auto-check passed
  • Omm View

    oh-my-mermaid/oh-my-mermaid

    Start the omm web viewer to explore architecture diagrams in the browser.

    2.7k GitHub stars~338 tokensUpdated 6 mo ago
    Auto-check passed

Works with

Categories

Questions about Omm Scan

What does Omm Scan do?

Scan codebase architecture and generate/update .omm/ documentation. Omm Scan is an agent skill from oh-my-mermaid/oh-my-mermaid.omm/ documentation.

When should I use Omm Scan?

Omm Scan fits situations like: the user says omm scan; scan architecture; update architecture; refresh diagrams.

How do I install Omm Scan in Claude Code?

Run `npx skills add oh-my-mermaid/oh-my-mermaid --skill omm-scan -a claude-code`. Or copy the skill folder (skills/omm-scan in oh-my-mermaid/oh-my-mermaid) into .claude/skills/omm-scan in your project. Claude Code loads it when a task matches its description.

How do I install Omm Scan in Codex?

Run `npx skills add oh-my-mermaid/oh-my-mermaid --skill omm-scan -a codex`. Or copy the skill folder (skills/omm-scan in oh-my-mermaid/oh-my-mermaid) into .agents/skills/omm-scan in your project. Codex loads it when a task matches its description.

Can I use Omm Scan in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oh-my-mermaid/oh-my-mermaid --skill omm-scan -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/omm-scan, .gemini/skills/omm-scan, .github/skills/omm-scan and .opencode/skills/omm-scan in your project.

What does Omm Scan need to run?

Going by SKILL.md and its folder, Omm Scan needs the command-line tools its instructions call (npm). Our summary lists: Node.js.

Does Omm Scan access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Omm Scan safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Omm Scan use?

Omm Scan is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Omm Scan use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Omm Scan?

Skills that share tags, products or a category with Omm Scan: Archify Diagrams (tt-a1i/archify, 82k stars), Diagram Design (cathrynlavery/diagram-design, 49k stars), Draw.io Diagram Studio (Agents365-ai/drawio-skill, 10k stars) and Pretty Mermaid Renderer (imxv/Pretty-mermaid-skills, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Omm Scan?

oh-my-mermaid (a GitHub organization) maintains it in oh-my-mermaid/oh-my-mermaid, which has 2,701 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on April 7, 2026.

Source: oh-my-mermaid/oh-my-mermaid on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.