claude

Heimdall

Nothing ships unproven. hmd makes your coding agent's work pass a test it didn't write — and proves that test can fail — before the push lands. The gate is a plain git pre-push hook, so it holds in any repo. Answer and steer your Claude Code session from your phone (pair with hmd app connect).

5 on GitHubby Heimdall contributorsv2.4.10MITupdated 23 days agoproductivity
/

Plugin hmd from marketplace heimdall in randomittin/heimdall. Commands read from the repo's manifest — 22 days ago.

This plugin runs code on your machine — its hooks fire automatically on events like tool use and it starts local MCP servers. The exact commands are listed below; read them before installing.

What it installs

Skills (6)

  • designmatch

    Use when matching a React Native screen to a Claude Design HTML canonical at ≥95% visual parity on real Android/iOS hardware — closes the loop with a VQA stub mode, Playwright canonical renderer at 1080×2444, and a dual-metric pixelmatch + SSIM diff harness producing composite triptychs.

  • heimdall

    Autonomous superskill manager — the main orchestrator agent for complex development tasks. Analyzes prompts, detects and assigns relevant skills, decomposes work into sub-projects, spawns parallel agents (architect, coder, design, test, lint, docs, reviewer), enforces quality gates, tracks token bud

  • mac-deep-clean

    Deep-clean a macOS dev machine — reclaim disk (caches, dev-tool caches, dead repos, git worktrees, Android/Xcode/simulator bloat, System Data) and diagnose/fix memory exhaustion (runaway process leaks, swap thrashing, wired RAM). Use when disk is full, "System Data" is huge, the machine is swapping/

  • self-improve

    The deliberate self-improvement loop for the maintainer — step back from fixing issues and improve Heimdall's OWN capability. Ports karpathy/autoresearch to Heimdall's routing/planning: collect evidence from metrics.jsonl + queue dead/done stats → form testable hypotheses → run a bounded routing exp

  • stacks

    Load stack-specific knowledge (conventions, exact lint/test/build commands, common failure patterns) onto the current role agent for the project's detected tech stack(s) — Next.js, React Native, Spring Boot, FastAPI, Django, Rust, etc. Use at the start of any task in an unfamiliar or newly-onboarded

  • system-health

    Suggest whether the machine needs a DISK or MEMORY cleanup — and catch the case where Heimdall ITSELF is the hog (runaway orphaned python from the presence keeper). Use when the machine is slow / swapping / laggy, disk or "System Data" is full, memory is exhausted, at the start of a long session, or

Slash commands (20)

  • /hmd:autocommit

    Toggle auto git commits on/off for this project. Run without args to see status, or with "on"/"off" to set.

  • /hmd:autonomy

    Set Heimdall autonomy (1=Guided, 2=Checkpoint, 3=Full Auto) — how much the agent does before asking. Use with a number, +/- to cycle, or no argument to show current.

  • /hmd:bench

    Reproduce the public benchmark table on your own machine (spec S-5). Runs a fixed suite of coding tasks under two arms — raw Claude Code vs Heimdall — and PRODUCES real numbers (tokens, wall time, tests passing, cost) by actually running them. Never hardcodes results. Safe by default (dry mode: vali

  • /hmd:continue

    Compact without losing the thread. Saves a fresh checkpoint, writes a continue handoff (goal, exact next step, in-flight agents with worktrees, decisions made, gated items) and prints ONE ready-to-paste `/compact <focus>` line; once you paste it, the SessionStart(compact) hook re-injects the handoff

  • /hmd:debloat

    Retroactive whole-repo bloat removal (spec H-2ii). Scores an existing repo on the deterministic bloat axes, writes BLOAT-REPORT.md, and — only behind a passing test-suite safety oracle — proposes gated refactor waves as a PR. The zero-risk adoption hook.

  • /hmd:demo

    The first-five-minutes wow. Scaffolds a fully-specified canned task (a real Todo REST API + single-page frontend + tests + README) into a fresh project dir and hands you the exact command to watch Heimdall build it end-to-end. Safe by default (dry mode) — never auto-executes without --run. Use when

  • /hmd:designmatch

    Bootstrap the designmatch skill in a React Native project from a Claude Design link. Auto-imports the Visual QA stub helper (visual-qa.ts), writes default state.vqa.json, registers the canonical source, updates .gitignore, and prints the wiring snippet. Use when starting visual-parity work on a new

  • /hmd:dream

    Overnight autoresearch + maintainer sweep that surfaces a MORNING REPORT — suggested changes, issues raised with fixes, and kept improvements. Shadow-first; never auto-pushes. Runs on-demand or scheduled for off-hours.

  • /hmd:fallback

    Show or change hmd's OmniRoute fallback-routing gate — whether Heimdall may route work to a third-party model, through a locally-hosted OmniRoute gateway, using the operator's OWN API key, when Claude capacity runs out. Use when a dev asks why fallback isn't routing, wants to arm it (`auto` for near

  • /hmd:feedback

    Submit team feedback as a GitHub issue on the repo, straight from an hmd session. Use when a team dev wants to flag friction, request a change, or report something about the team flow. Files the dev's words + minimal context (hmd version, optional command/phase) via the existing issue-loop GitHub co

  • /hmd:invite

    Print a ONE-COMMAND team join to recruit a teammate onto your Heimdall team. Use when a dev wants to add someone to their team's presence wall — the statusline "invite your team" tease points here. Resolves this repo's team secret from the dev's OWN <repo>/.heimdall/team.json and inlines it (plus th

  • /hmd:level

    Deprecated alias for /hmd:autonomy. Sets Heimdall autonomy (1=Guided, 2=Checkpoint, 3=Full Auto). Still works; prints a one-line rename notice.

  • /hmd:maintain-check

    Run one durable maintainer autopilot cycle — budget-gated, stop-guarded, checkpointed. Use --dry-run to preview without executing.

  • /hmd:maintain

    Run automated maintenance — seeker finds bugs from pod logs and raises GitHub issues, fixer picks them up and creates PRs. Can run as a one-shot or scheduled via /schedule.

  • /hmd:reflect

    Force a reflection pass over the conflict log — re-evaluate all unresolved skill conflicts

  • /hmd:report-bug

    File a GitHub issue against the Heimdall plugin repo from inside a session. Use when the user reports a bug, requests a feature, or wants to flag a docs/help-text problem in Heimdall itself. Auto-fills environment (plugin SHA, OS, recent commits) and posts to randomittin/heimdall (or the plugin's or

  • /hmd:save

    Save current work state for next session. Creates/updates .planning/ files (CHECKPOINT.md, STATE.md, settings.json) so Heimdall resumes with full context. NOT a rewind — saves forward progress. Run before closing a session or at any milestone.

  • /hmd:status

    Show current Heimdall state — project phase, active agents, quality gates, conflicts

  • /hmd:switch-ai

    Show or change which offline coding-AI CLI backend hmd prefers (Claude Code, Cursor CLI, ...). Use with a letter, backend id, or loose name, or no argument to show current + detected options.

  • /hmd:team

    Manage this repo's TEAM for multi-tenant Heimdall presence — mint, join, or inspect the per-repo team secret. Use when a dev wants to start a private team, switch teams, join a teammate's team, or check which team this repo is on. A team = a high-entropy secret scoped to a repo; presence (HAID + onl

Subagents (16)

  • architect

    Read-only architecture and planning specialist. Analyzes codebase structure, identifies patterns and risks, designs solutions, and emits machine-readable plans (PLAN files + waves.json) with runnable acceptance criteria. Use proactively before any change touching 3+ files, any new system, or when th

  • coder

    Feature implementation specialist. Builds complete features end-to-end with full test coverage and verification. Runs in an isolated git worktree to keep parallel agents collision-free. Use proactively when implementing new functionality, fixing bugs that need code changes, or making any code modifi

  • database-architect

    Database design agent. Schema modeling, migration strategy, query optimization, technology evaluation. Use when task involves data layer, models, or persistence.

  • design

    UI/UX design agent. Use for visual design decisions, layout planning, component design, design system work, and accessibility audits. Integrates with design-for-ai skills when available.

  • docs-writer

    Documentation agent. Use for writing and updating documentation, README files, API docs, and keeping docs in sync with implementation changes.

  • fixer

    Bug fixer agent. Picks up open GitHub issues labeled 'bug' or 'seeker', creates a fix branch, implements the fix, runs tests, and raises a PR. Use for automated bug fixing from issue queue.

  • heimdall

    Autonomous superskill manager. Use proactively for any multi-step development task. Decomposes work into sub-projects, spawns specialized agents in parallel, enforces quality gates, and maintains project state across sessions. Thinks like a CTO.

  • incident-responder

    Production incident response agent. Root cause analysis, observability-driven debugging, rollback strategy, blameless postmortem. Use when production is broken or errors are spiking.

  • lint-quality

    Lint and static analysis agent. Use for enforcing code style, running linters, and checking for common code quality issues. Fast and mechanical.

  • planner

    Creates verified execution plans with acceptance criteria that block progression. Decomposes work into dependency-ordered waves of parallel tasks with grep-verifiable or command-runnable criteria.

  • reviewer

    Code review agent. Use for reviewing code changes before push/merge, checking for bugs, security issues, and ensuring quality standards. Mandatory before any push.

  • security-auditor

    Security assessment agent. Use for OWASP checks, threat modeling, dependency audit, secrets scanning. Spawn it whenever a task touches auth, secrets, user input or dependencies — no code spawns it for you, so the orchestrator has to decide. Reports vulnerabilities with severity + fix recommendations

  • seeker

    Bug seeker agent. Pulls fresh logs from Kubernetes pods, analyzes for errors/crashes/anomalies, and raises GitHub issues with reproduction steps. Use when monitoring production or running maintenance sweeps.

  • test-runner

    Test writing and execution agent. Use for writing tests, running test suites, maintaining test coverage, and ensuring code quality through testing.

  • verifier

    Post-execution verification agent. Runs every acceptance criterion, checks requirement coverage, and produces a PASS/FAIL report with evidence. Never skips a criterion.

  • wave-executor

    Executes all tasks in a single wave of a plan. Implements, verifies acceptance criteria, and commits atomically. Spawns parallel subprocesses for independent tasks within the wave.

MCP servers (1)

  • heimdall-ledger

    runs: python3 ${CLAUDE_PLUGIN_ROOT:-.}/bin/heimdall-ledger-mcp

Hooks (30)

  • UserPromptSubmit

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled parallel-gate && exit 0; "${CLAUDE_PLUGIN_R

  • UserPromptSubmit

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled ctx-meter-notice && exit 0; CTX="${CLAUDE_P

  • UserPromptSubmit

    P="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; F="$P/bin/heimdall-secret-filter"; [ -x "$F" ] || { echo "heimdall: secret-filter not found (CLAUDE_PLUGIN_ROOT unset or stale, and no install at ~/.heimdal

  • UserPromptSubmit

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled caveman-level-context && exit 0; PLUGIN="${

  • UserPromptSubmit

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled inbox-deliver-prompt && exit 0; PLUGIN="${C

  • UserPromptSubmit

    [ -f "${CLAUDE_PROJECT_DIR:-.}/.heimdall/ui/stop-request.json" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2

  • PreToolUse

    INPUT=$(cat); PLUGIN="${CLAUDE_PLUGIN_ROOT:-}"; [ -x "$PLUGIN/bin/heimdall-precheck-bash" ] || PLUGIN="$HOME/.heimdall"; if [ ! -x "$PLUGIN/bin/heimdall-precheck-bash" ]; then echo "heimdall: precheck

  • PreToolUse

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled parallelism-tracker-read && exit 0; INPUT=$

  • PreToolUse

    INPUT=$(cat); PLUGIN="${CLAUDE_PLUGIN_ROOT:-}"; [ -x "$PLUGIN/bin/heimdall-precheck-agent" ] || PLUGIN="$HOME/.heimdall"; if [ ! -x "$PLUGIN/bin/heimdall-precheck-agent" ]; then echo "heimdall: preche

  • PreToolUse

    INPUT=$(cat); CONTENT=$(printf '%s' "$INPUT" | jq -r '.tool_input.content // .tool_input.new_string // empty' 2>/dev/null); TOOL=$(printf '%s' "$INPUT" | jq -r '.tool_name // "unknown"' 2>/dev/null ||

  • PreToolUse

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled edit-claim-prewarn && exit 0; INPUT=$(cat);

  • PreToolUse

    P="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; G="$P/bin/secret-read-guard"; [ -x "$G" ] || { echo "heimdall: secret-read-guard not found (CLAUDE_PLUGIN_ROOT unset or stale, and no install at ~/.heimdall

  • PreToolUse

    INPUT=$(cat); PLUGIN="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; LCG="$PLUGIN/bin/heimdall-lintconfig-guard"; if [ -x "$LCG" ]; then printf '%s' "$INPUT" | "$LCG"; else echo "heimdall: lintconfig-guard

  • PreToolUse

    [ "${HMD_PHONE_DENY:-}" = "0" ] && exit 0; [ -f "${CLAUDE_PROJECT_DIR:-.}/.heimdall/app/connect.json" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ]

  • PreToolUse

    [ -s "${CLAUDE_PROJECT_DIR:-.}/.heimdall/ui/inbox.jsonl" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/

  • PreToolUse

    [ -f "${CLAUDE_PROJECT_DIR:-.}/.heimdall/ui/stop-request.json" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2

  • PostToolUse

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled corpus-capture && exit 0; PLUGIN="${CLAUDE_

  • PostToolUse

    INPUT=$(cat); TOOL=$(printf '%s' "$INPUT" | jq -r '.tool_name // "unknown"'); FPATH=$(printf '%s' "$INPUT" | jq -r '.tool_input.file_path // .tool_input.notebook_path // empty'); if [ -n "$FPATH" ]; t

  • PostToolUse

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled context-sync && exit 0; PLUGIN="${CLAUDE_PL

  • PostToolUse

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled journal-commit && exit 0; PLUGIN="${CLAUDE_

  • PostToolUse

    [ -s "${CLAUDE_PROJECT_DIR:-.}/.heimdall/ui/inbox.jsonl" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/

  • PostToolUse

    [ -f "${CLAUDE_PROJECT_DIR:-.}/.heimdall/ui/stop-request.json" ] || exit 0; HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled session-bootstrap && exit 0; INPUT=$(cat 2>

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled resume-probe && exit 0; PLUGIN="${CLAUDE_PL

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled maintain-resume-hint && exit 0; "${CLAUDE_P

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled quota-resume-hint && exit 0; "${CLAUDE_PLUG

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled dream-notice && exit 0; PLUGIN="${CLAUDE_PL

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled presence-keeper-start && exit 0; INPUT=$(ca

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled presence-connect-prompt && exit 0; PLUGIN="

  • SessionStart

    HMDP="${CLAUDE_PLUGIN_ROOT:-$HOME/.heimdall}"; [ -r "$HMDP/bin/lib/hook-enabled.sh" ] && . "$HMDP/bin/lib/hook-enabled.sh" 2>/dev/null && ! hmd_hook_enabled ai-select && exit 0; PLUGIN="${CLAUDE_PLUGI

View source on GitHub runheimdall.dev

Similar plugins

caveman

claude

Talk like caveman. Cut filler. Keep technical details explicit.

22 skills · 1 command · 3 agents · hooks

JuliusBrussee/caveman 119,462

claude-mem

claudecodex

Persistent memory for Claude Code: the next session starts where the last one left off.

29 skills · 1 MCP server · hooks

thedotmack/claude-mem 116,618

Taste Skill

claudecodex

tasteskill 2.5.1: professional company websites at the figma.com and x.ai level, with one section per screen, real photographs, real product UI, effects kept for tech and gaming pages, and a real-browser checker and finish gate.

1 skill

Leonxlnx/taste-skill 114,391

career-ops

claudecodex

Open-source AI job search that runs locally in your AI coding CLI: scan job portals, evaluate listings into a structured A-H report with a 1-5 score, tailor your CV, track applications

5 skills · hooks

career-ops-hq/career-ops 82,253

mem0

claudecodex

Cross-session memory and token savings for coding agents.

6 skills · 1 agent · 1 MCP server · hooks

mem0ai/mem0 68,893

pake

claudecodex

Package any website or local web build into a lightweight desktop app with Pake CLI.

1 skill

tw93/Pake 63,463

Maintain Heimdall?

This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.

claude & codex pluginslisted