rlaope/oh-my-hermesPublic

All in one plugin for Hermes Agent ⚚ the coding intelligence, a long-term memory system and model optimized workflow packages

AI summary: An operating layer for Hermes Agent providing capabilities for planning, research, and project memory orchestration.

Stars
3.1K
+45 today
Forks
239
Watchers
12
Open issues
14
Open PRs
0
Contributors
~23
Commits
4.1K
Branches
936

PythonMITCreated Jun 3, 2026Last push 2d agoLatest release v3.0.0+175 stars this week+1.1K this month

Quick answers

What is oh-my-hermes?
An operating layer for Hermes Agent providing capabilities for planning, research, and project memory orchestration.
What does oh-my-hermes do?
oh-my-hermes acts as a robust operating layer sitting directly above the NousResearch Hermes Agent. It enhances the standard agent workflow by adding explicit capabilities for task planning, deep research, coding handoffs, and persistent project memory management. The framework evaluates raw requests to automatically select the most appropriate workflow and evidence gates before executing native skills. By maintaining an honest record of actions taken, it strengthens existing operational processes without hiding or replacing the underlying Hermes execution engine.
Who is oh-my-hermes for?
AI researchers and developers working with the NousResearch Hermes agent who want a streamlined setup.
How do I get started with oh-my-hermes?
curl -fsSL https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.sh | sh
How popular is oh-my-hermes on GitHub?
rlaope/oh-my-hermes has 3,074 stars and 239 forks on GitHub, and gained 175 stars in the last 7 days.
What license does oh-my-hermes use?
rlaope/oh-my-hermes is released under the MIT license.

Star history

since Sep 14, 2026
01K2K3KSep 2026Sep 2026Sep 2026Oct 2026
3.1K stars as of Oct 3, 2026. Measured daily since Sep 14, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 12 commits2026-06-04: 22 commits2026-06-05: 22 commits2026-06-06: 32 commits2026-06-07: 3 commits2026-06-08: 21 commits2026-06-09: 17 commits2026-06-10: 14 commits2026-06-11: 16 commits2026-06-12: 1 commit2026-06-13: 4 commits2026-06-14: 10 commits2026-06-15: 6 commits2026-06-16: 8 commits2026-06-17: 15 commits2026-06-18: 37 commits2026-06-19: 49 commits2026-06-20: 57 commits2026-06-21: 10 commits2026-06-22: 3 commits2026-06-23: 19 commits2026-06-24: 13 commits2026-06-25: 10 commits2026-06-26: 5 commits2026-06-27: 5 commits2026-06-28: 26 commits2026-06-29: 115 commits2026-06-30: 70 commits2026-07-01: 34 commits2026-07-02: 8 commits2026-07-03: 5 commits2026-07-04: 29 commits2026-07-05: 1 commit2026-07-06: 11 commits2026-07-07: 1 commit2026-07-08: 10 commits2026-07-09: 6 commits2026-07-10: 0 commits2026-07-11: 6 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 12 commits2026-07-16: 5 commits2026-07-17: 4 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 1 commit2026-07-22: 12 commits2026-07-23: 3 commits2026-07-24: 12 commits2026-07-25: 19 commits2026-07-26: 36 commits2026-07-27: 50 commits2026-07-28: 34 commits2026-07-29: 18 commits2026-07-30: 9 commits2026-07-31: 25 commits2026-08-01: 50 commits2026-08-02: 13 commits2026-08-03: 31 commits2026-08-04: 14 commits2026-08-05: 7 commits2026-08-06: 5 commits2026-08-07: 11 commits2026-08-08: 11 commits2026-08-09: 48 commits2026-08-10: 14 commits2026-08-11: 17 commits2026-08-12: 24 commits2026-08-13: 27 commits2026-08-14: 32 commits2026-08-15: 19 commits2026-08-16: 27 commits2026-08-17: 14 commits2026-08-18: 26 commits2026-08-19: 30 commits2026-08-20: 8 commits2026-08-21: 18 commits2026-08-22: 2 commits2026-08-23: 2 commits2026-08-24: 26 commits2026-08-25: 7 commits2026-08-26: 30 commits2026-08-27: 44 commits2026-08-28: 24 commits2026-08-29: 16 commits2026-08-30: 26 commits2026-08-31: 28 commits2026-09-01: 17 commits2026-09-02: 22 commits2026-09-03: 34 commits2026-09-04: 16 commits2026-09-05: 107 commits2026-09-06: 26 commits2026-09-07: 10 commits2026-09-08: 47 commits2026-09-09: 21 commits2026-09-10: 32 commits2026-09-11: 62 commits2026-09-12: 49 commits2026-09-13: 39 commits2026-09-14: 20 commits2026-09-15: 59 commits2026-09-16: 57 commits2026-09-17: 30 commits2026-09-18: 2 commits2026-09-19: 41 commits2026-09-20: 39 commits2026-09-21: 26 commits2026-09-22: 6 commits2026-09-23: 30 commits2026-09-24: 27 commits2026-09-25: 23 commits2026-09-26: 26 commits2026-09-27: 8 commits2026-09-28: 55 commits2026-09-29: 26 commits2026-09-30: 3 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
2,584 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Rising fast

    +175 stars this week

  • Very active

    2,584 commits in 52 weeks

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    4 trending appearances

What oh-my-hermes does

oh-my-hermes acts as a robust operating layer sitting directly above the NousResearch Hermes Agent. It enhances the standard agent workflow by adding explicit capabilities for task planning, deep research, coding handoffs, and persistent project memory management. The framework evaluates raw requests to automatically select the most appropriate workflow and evidence gates before executing native skills. By maintaining an honest record of actions taken, it strengthens existing operational processes without hiding or replacing the underlying Hermes execution engine.

AI researchers and developers working with the NousResearch Hermes agent who want a streamlined setup.

  • Workflow orchestration: Automatically selects appropriate operational workflows based on the complexity of the agent request.
  • Persistent memory: Maintains project-level context and an explicit record of all actions taken by the agent.
  • Evidence gating: Establishes clear boundaries and verification steps before executing critical coding tasks.
  • Multilingual support: Provides comprehensive documentation and interfaces in English, Korean, Japanese, and Chinese.
  • Native skill execution: Runs Hermes skills directly without abstracting away the core execution layer.

Where teams use it

Task planning

Structure complex development requests into actionable steps using the agent's advanced planning capabilities.

Deep research

Enable the agent to autonomously gather information and compile detailed reports for software projects.

Standardized environments

Ensure all team members use the exact same configuration for their local Hermes agents.

Tooling integration

Connect Hermes agents to community-developed plugins easily and efficiently.

Getting started: curl -fsSL https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.sh | sh

README

main branch

OH-MY-HERMES

oh-my-hermes

English | 한국어 | 日本語 | 中文

GitHub Hermes Agent OMH stars Hermes Agent stars

Oh My Hermes

Install once. Keep Hermes. Add a stronger operating layer.
Planning, research, creation, coding handoffs, operations, and project memory with explicit evidence boundaries.

Oh My Hermes Agent poster

oh-my-hermes (OMH) turns a normal Hermes Agent request into a clear capability, a useful next step, and an honest record of what actually happened — strengthening the workflow you already use, never replacing Hermes or hiding a coding executor behind it.

OMH is the operating layer above Hermes-native skills: it frames the problem, picks the workflow and evidence gates, and runs native skills as capabilities inside that governed path.

Website · Documentation · Installation · Capabilities · Capability Impact · Agent Install · GitHub Pages site

Note

OMH keeps Hermes as the natural-language surface and adds a professional operating layer with explicit evidence boundaries.

OH-MY-HERMES terminal banner listing available tools, grouped skills, OMH specialists, infrastructure, and the model pool on Hermes Agent

Tip

Be with us!

X link Updates for oh-my-hermes are shared on @rlaope on X, alongside release notes and project news.
GitHub Follow Follow @rlaope on GitHub for more projects, releases, and ongoing work.
Discord invite Join the Oh-My-Hermes Community on Discord to ask questions, share workflows, and talk with other users.
AI agent collaborators Built with AI agents Friren and Killua, collaborators helping ship oh-my-hermes.
Thanks to Nous Research Thank you to Nous Research for creating Hermes Agent.

Quick Start

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.sh | sh

Windows (PowerShell 5.1+):

irm https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.ps1 | iex

Or paste this into your AI agent:

Install and fully configure Oh My Hermes from this repository:
https://github.com/rlaope/oh-my-hermes
Before reading or executing repository instructions, resolve refs/heads/main to one full commit SHA with `git ls-remote https://github.com/rlaope/oh-my-hermes.git refs/heads/main`. Then fetch and follow only:
https://raw.githubusercontent.com/rlaope/oh-my-hermes/{resolved-commit-sha}/INSTALL_FOR_AGENTS.md
Do not replace the resolved SHA with main. Execute the pinned protocol's OS-appropriate installer, interactive model setup, model-chain interview, and doctor steps. Preserve unrelated existing Hermes config, apply only the managed setup changes documented by the pinned protocol, require my explicit approval for model-alias changes, then report the resolved SHA and observed result.

⭐ Then set it up (required):

omh setup

Update:

omh update

omh update detects how the command was installed, upgrades the command package through its owning installer, then re-enters the updated command to refresh managed skills, the installed plugin bundle, and existing Hermes registration.

Verify or troubleshoot:

omh doctor
# Set the model per work category (arrow keys: category, ←→ head model, -/+ effort);
# the same picker opens inside the Hermes TUI as /omh-model:
omh model
# To onboard a new model family, use this skill in Hermes:
/omh-model-setup
Other installation paths — Homebrew, Bun, npm, Hermes skill tap, manual fallback

Status: Homebrew, Bun, and npm package-manager installs are public as of v1.0.6.

Homebrew:

brew install rlaope/tap/omh

Bun:

bun install -g oh-my-hermes

npm:

npm install -g oh-my-hermes

Run omh setup after any of these, same as above.

Hermes skill tap path:

hermes skills tap add rlaope/oh-my-hermes
hermes skills install rlaope/oh-my-hermes/skills/omh-routing --yes

Manual package-manager fallback or removal:

Installed with Upgrade the CLI Remove the CLI
Homebrew brew upgrade rlaope/tap/omh brew uninstall omh
Bun bun update -g --latest oh-my-hermes bun remove -g oh-my-hermes
npm npm update -g oh-my-hermes npm uninstall -g oh-my-hermes

Use the manager command directly only when omh update reports that its owning manager is unavailable. Removing the command package preserves OMH state. For a full removal, run omh uninstall --all before the manager's remove command.

Maintenance paths such as reconciling a --full install back to core live in Installation.


What you get

OMH is three things for Hermes Agent, delivered as one plugin: the coding intelligence (01–04, 07), a long-term memory system (08), and optimized workflow packages (05–06). One scene each, drawn from the real surfaces.

01 · Per-model tuning, task splitting, and stronger coding skills

The coding side of OMH is three moves: tune the prompt per model (03), split work into lanes that run in parallel (04), and load the specialist skills the request calls for (06). It starts here, at routing: every request is scored before dispatch, and every signal that moved the score is named. A rename scores light and goes to the quick lane. "Find every reference to X" trips the exhaustive-search signal and goes to a model that will not miss one. Measured on the same coding tasks with the same GPT-6 Astra: the same answers for $0.66 instead of $4.29, in 5 minutes instead of 23.

omh coding complexity scoring two requests, and the measured Astra table: same 18 of 30 solved, $4.29 to $0.66, 23 to 5 minutes

02 · Categories you own, per executor

ultrabrain, deep, architect, unspecified-high, unspecified-low, quick, writing, visual-engineering, artistry, capable, simple-work, deep-work: each is an editable chain of model + effort, the same twelve listed under Recommended models below, read and overridden in one file. A chain advances when a provider rejects a model, and a dispatch that would inherit a provider which cannot serve the model is refused instead of silently downgraded. Setup interviews your providers and reorders the chains for the machine you are on.

omh coding category-maestro show: per-executor category chains, one operator override, and a refused dispatch

03 · Prompting tuned per model family, and measured

Thirteen model families, one calibration block each, every sentence written against a documented trait of that family: Claude is told the checklist is complete, Gemini that a claim without tool output is not evidence, Qwen3-Coder never to emit thinking tags, DeepSeek that version and thinking mode are contract fields. GPT-6 Astra gets its own exact-model contract and block. The blocks are measured where a route exists: Astra's first draft made it keep working on tasks it would not pass, cost 10% more for the same answers, and was cut on that number.

One calibration line per model family, the gpt-6-astra model contract, and the measured revision

04 · Parallel where it is safe, typed when it comes back

ulw-work splits an accepted plan into units that never share a file, gives each one its own worktree branched from one pinned SHA, and lets a unit issue its tool calls in one turn. Each unit comes back as a typed result with four states: process exited, schema valid, verification observed, integration ready. Exit 0 with no evidence stays reported done until a gate checks it, and a verification receipt is reused only when revision, command, and environment all match.

An ulw-work fan-out: three units with disjoint files, one worktree each, typed states, and the tool calls issued in one turn

05 · The Oh-My-Hermes interface, and Hermes Agent workflows

The interface is the Hermes terminal with an OMH dock under the prompt and a phase todo above it; the workflows are the ulw-* engines and every omh-* skill, routed from chat. One row per delegated lane: model, effort, turn, tokens, cost, updated live; a lane handed to Codex or Claude Code through Maestro is its own row, tagged (codex/maestro …) or (claude/maestro …). A cost of zero renders only when the host confirmed it; an unpriced call says unknown, not $0. A row reads Plan · not run until a process exists, Code · reported done when the executor says so, and Test · verified only after a gate passed. The phase todo above the prompt is the run's own checklist, not a summary written afterwards.

The OMH HUD: per-lane rows with model, effort, turn, tokens, cost provenance, and evidence state, plus the phase todo

06 · Expert skills seep into the run

You never invoke an expert. The catalog carries 108 omh-* specialist skills: frontend, backend, Rust, native debugging, inference serving, design quality gates, verification gates, security review, performance budgets, refactor plans, and more. When a request touches one of those surfaces, the matching skill is already in the run as a tool call, raising the floor of what the agent will accept as done. Say it in English or Korean; the router picks the specialists.

Expert omh-* skills loading into one run as tool calls, an orbit of specialists around the run, and three numbers

07 · The architecture in one picture, then improved in phases

Ask for a picture of the repo and codebase-uml draws it from the code: packages, modules, and every import edge, with the cycles marked. The findings come ranked, and refactor-plan turns the top ones into phases that each land as one PR, behavior-locked by the tests, and abort the moment a lock breaks. The before and after are measured on the tree, and the dock shows each phase as it runs, and whether anything checked it.

codebase-uml draws the repo with two cycles, the findings and a phased refactor plan beside it, the measured before and after, and one dock row per phase

08 · A long-term memory that a reviewer admitted

Nothing is remembered silently. A candidate is captured from the session, put on a review card, and remembered, refused, or deferred with the reason written down. An approved record carries its provenance and a review-due date; confirming it resets the clock, silence ages it from active to reference to archive. The next session gets a recall pack ranked for its task and cut to a token budget, with conflicts and duplicates resolved. Hermes' own memory is never read or patched; this store is OMH's, file-backed and reviewed. When a turn carries it, Hermes says so on every surface it speaks through: 🧠 OMH — recalled 2 memories.

Long-term memory: admission cards, one record's lifecycle, attention tiers, and a budgeted recall pack for the next session


The OH-MY-HERMES terminal

Bare omh opens Hermes — the same door as hermes — wearing the OMH identity:

omh
The OH-MY-HERMES boot
The OH-MY-HERMES boot.
An ulw-work run
An ulw-work run.

What the terminal shows while OMH workflows run:

  • Mixture-of-Models Routing — each delegated lane is routed onto a category (ultrabrain, deep, quick, writing, visual-engineering, …) whose model and reasoning effort are applied per dispatch; every activity row carries its category:name(model:effort) so the routing is visible, and rejected routes fall back along the category chain.
  • Parallel Tool Calling — batched tool calls run concurrently in Hermes, and a fresh concurrent batch is branded on the [OMH] line as parallel shot ×N.
  • Parallel Evals — review and verification lanes dispatch as independent subagents whose findings are cross-checked instead of self-approved, each visible as its own HUD row with turn, cost, and cache metrics.
  • Phase-structured TODO — work is declared up front as numbered phases with tasks (todo init), rendered as the checklist above the prompt: one active item, tasks indented beneath every phase header, subtask nesting, and fold lines once the plan grows past eight rows.
Hermes Desktop running an ultrawork prompt with the OMH pane showing the plan and each lane's model
Hermes Desktop, with oh-my-hermes.
One ultrawork prompt: the plan, the lanes, and the model each lane runs on, in the OMH pane.
Hermes TUI running an ultrawork lane fan-out with the OMH plan dock and HUD
Hermes CLI, with oh-my-hermes.
The same ultrawork run in the terminal: the plan dock above, each lane's route in the HUD.
Hermes messenger app running an OMH workflow
Hermes messenger app, with oh-my-hermes.
Ask in a thread; the run reports back there.
omh setup installing the OMH workflows
omh setup, one command.
Installs the workflows and connects them to Hermes.

Recommended models

/omh-model in the Hermes Modern TUI: one row per category with its head model, effort bar and state; the cursor row shows the left/right and -/+ handles

OMH ships with these editable, ordered recommendation chains. Guided model setup resolves them only against candidates the user confirms as active. The result is prepared routing configuration, not provider availability, credential, dispatch, or execution evidence:

Category alias What it is for Editable recommendation order
ultrabrain Deepest reasoning GPT-6 Astra (xhigh)
deep Strong default tier GPT-6 Sol, then DeepSeek Flash (V4.1) (high)
architect Architecture and system design Claude Fable 5.1, then GPT-6 Astra, then Kimi K3 (xhigh)
unspecified-high Default working model Kimi K3, then Claude Opus 5.5 (medium)
unspecified-low Cheaper fallback GLM 5.3, then DeepSeek Flash (V4.1), then Claude Opus 5.5 (low)
quick Short tasks GLM 5.3 Flash, then Kimi K3, then GPT-6 Luna, then Claude Fable 5.1 (low)
writing Prose and docs Kimi K3, then Qwen3-Coder, then Gemini 3.1 Pro (medium)
visual-engineering Frontend and visual Claude Fable 5.1, then Kimi K3 (high)
artistry Unconventional work Gemini 3.1 Pro, then Claude Fable 5.1, then Kimi K3 (high)
capable Strong general work Claude Fable 5.1, then Claude Opus 5.5, then Kimi K3, then GLM 5.3 (medium)
simple-work Small everyday tasks GPT-6 Luna, then DeepSeek Flash (V4.1), then Claude Haiku 4.5 (low)
deep-work Long tasks at frontier depth GPT-6 Astra (high)

Want to try the Ultrafast tier — Kimi K3 Ultrafast (300 TPS) and GLM 5.3 Ultrafast? They are served on OpenGateway.

Every chain above is user-editable without touching code. The chains are managed in one file — omh setup seeds it:

$ cat ~/.omh/routing/model-chains.json
{
  "categories": {},
  "schema_version": "mixture_chain_overrides/v1"
}

Empty categories keeps every shipped default above live. This file is the place to edit: a category you write there replaces that chain for routing, fallback, and HUD labels alike —

{
  "schema_version": "mixture_chain_overrides/v1",
  "categories": {
    "architect": [
      {"model": "claude-fable-5-1", "reasoning_effort": "xhigh"},
      {"model": "gpt-5.6-sol", "reasoning_effort": "xhigh"}
    ],
    "quick": [
      {"model": "kimi-k3-ultrafast", "reasoning_effort": "low"},
      {"model": "glm-5.3-ultrafast", "reasoning_effort": "low"}
    ]
  }
}

Check the chains currently in effect with omh model-chains show. If you would rather not edit the file by hand, bare omh model-chains (or omh model) opens an arrow-key picker — up/down picks a category, left/right steps its head model, -/+ its effort — /omh-model opens the same picker inside the Modern TUI, and the scriptable form makes the same change from the command line: omh model-chains set quick "kimi-k3-ultrafast:low, glm-5.3-ultrafast:low". When an alias uses a provider-specific wire ID, map it once in ~/.omh/routing/model-providers.json with model_provider_routes/v1; set, status, fallback, and HUD then report the complete alias/provider/wire-model route. OMH stores only provider IDs, never provider credentials.

Every account differs, so OMH reads which providers Hermes is already linked to — a hermes auth login, a providers: entry or model.provider in the Hermes config, an API-key variable name in $HERMES_HOME/.env — and counts them on its own: each chain is reordered so the entries a linked provider can serve lead, the pickers mark the rest, nothing is removed, and nothing is invoked to check. Only ids and variable names are read, never a key or a token. The interactive omh setup still asks, with the linked rows pre-ticked, so you can correct a kind, untick a linked provider you cannot really use, add one OMH could not place, or say whether you have a Claude Code subscription; its answers land in ~/.omh/routing/providers.json (provider_entitlements/v1) and win over detection. The Claude Code subscription only seeds the Claude Code --model preference for the Maestro lane, because Hermes itself cannot spend it.

Ask Hermes to set up my models to review or change them. These are editable preferences, not benchmark results. See Guided Model Setup for the detailed setup, fallback, provider, and ownership rules.

Coding delegation dispatch (omh coding run / omh coding fanout dispatch) — the Maestro lane that spawns Claude Code or Codex directly — has the same category dial as its own sibling file. Route it per work category with

$ omh coding category-maestro set codex ultrabrain gpt-5.6-sol:xhigh
$ omh coding category-maestro interview   # guided walk, Enter keeps each chain
$ omh coding run --owner codex --category ultrabrain --goal ...

which edits ~/.omh/routing/category-maestro.json (omh_category_maestro/v1); omh coding category-maestro show prints the effective table with operator overrides marked, and the interactive omh setup offers the same walk. An explicit --model on a run always wins, and ~/.omh/routing/dispatch-models.json remains the per-owner default used only when no route resolves at all (for the strongest Claude Code tier, set "claude-code": "opus" there). See docs/FANOUT.md (Category-maestro and Dispatch-model preference) for schemas and the full precedence order.

Or paste this into Hermes or another coding agent
Install and fully configure Oh My Hermes from this repository:
https://github.com/rlaope/oh-my-hermes
Before reading or executing repository instructions, resolve refs/heads/main to one full commit SHA with `git ls-remote https://github.com/rlaope/oh-my-hermes.git refs/heads/main`. Then fetch and follow only:
https://raw.githubusercontent.com/rlaope/oh-my-hermes/{resolved-commit-sha}/INSTALL_FOR_AGENTS.md
Do not replace the resolved SHA with main. Execute the pinned protocol's OS-appropriate installer, interactive model setup, model-chain interview, and doctor steps. Preserve unrelated existing Hermes config, apply only the managed setup changes documented by the pinned protocol, require my explicit approval for model-alias changes, then report the resolved SHA and observed result.

Ultra-Skills

Oh My Hermes character mark

Nine ulw- workflows. Say the trigger in chat — Hermes routes the rest. Full catalog: Workflow Reference.

Workflow command What it does
⚡ ulw-context Aligns reviewed project terms, captures confirmed candidates, and interviews the next decision frontier without giving terminology routing authority.
⚡ ulw-interview Asks one question at a time until it knows exactly what you want.
⚡ ulw-research Digs through real code and the live web, keeps sources, and verifies anything doubtful.
⚡ ulw-plan Builds a reviewed plan: options compared, risks named, done-criteria agreed.
⚡ ulw-work Runs an accepted plan in parallel lanes that never touch the same file.
⚡ ulw-maestro Runs a delegated task on Claude Code or Codex — prompt composed from the CLI's own installed skills, spawned live with a dock row and a steerable session.
⚡ ulw-loop Cycles plan → build → review until the goal actually passes.
⚡ ulw-qa Attacks the build with hostile scenarios and fixes what breaks.
⚡ ulw-perf Measures where it is actually slow or expensive, then fixes one hot path at a time.

Recommended set

Type these at the Hermes prompt. The ulw- prefix picks the workflow; the rest is your request in plain words.

1. Shape it. ulw-interview when the idea is still fuzzy, ulw-plan when the change is known but risky.

❯ ulw-interview: I want a CLI that tracks the ISS and warns me before it passes overhead
❯ ulw-plan: analyze this project's circular dependencies and plan the refactor

2. Build it. ulw-work runs the accepted plan in parallel lanes that never edit the same file.

❯ ulw-work: run the accepted plan

3. Finish it. ulw-loop keeps cycling until the gate you name passes.

❯ ulw-loop: keep going until npm test passes

Hermes TUI answering a ulw-plan prompt on a small JavaScript project: the target dependency graph with no cycles, rejected options, six lanes in dependency order, acceptance criteria, the plan checklist, and the [OMH] HUD line at the bottom

Illustration of a Slack thread: a user posts a ulw-interview prompt about an ISS pass-warning CLI and the Hermes app replies in the thread with round 1 of 6, a clarity score, and one question with four options; the reply text is the real one from the TUI run
A real ulw-interview reply, as it reads in a Slack thread (illustration)

Illustration of a Slack thread built from a real ulw-work run: Hermes locks six lanes, one row per lane with the model-vendor glyph, the routed category and the model (the first Lane A attempt on claude-fable-5-1 failed with HTTP 400 and was re-dispatched on kimi-k3-ultrafast; lanes B to E ran on kimi-k3-ultrafast; Lane F ran on Hermes' own deepseek model), then the before/after dependency-check summary
A real ulw-work run, as it reads in a Slack thread (illustration): one row per lane with its routed category and model, colored by model vendor

Hand work to Claude Code and Codex

Once you have named the coding agent, ulw-maestro builds each prompt from that agent's own installed skills, dispatches it, and adds a row per unit to the OMH HUD with a session you can resume and steer. It never picks the agent for you, and it never merges.

❯ ulw-maestro: send the retry-queue fix to Claude Code and the lint cleanup to Codex, dispatch both now

Illustration: ulw-maestro dispatching one unit to Claude Code (orange) and one to Codex (gray), with a resume handle per unit and both rows in the OMH HUD


What OMH Adds

Hermes Agent already runs the loop. OMH decides what goes into it: which model and effort each lane gets, who owns the code change, which skills apply, and what counts as done. Two rules hold everywhere — model choice and coding ownership are separate decisions, and nothing prepared is ever reported as executed. The generated catalog, triggers, and evidence rules live in Workflow Reference.

The workflow

Understand → Research → Decide → Plan → Execute → Verify → Operate → Learn

Stage What happens
Understand Confirm the intent, constraints, project terms, and stop conditions.
Research Replace assumptions with source-backed product, code, or operational context.
Decide Make the options, tradeoffs, and decision owner explicit.
Plan Turn accepted scope, coding ownership, tests, and done criteria into an executable plan.
Execute Dispatch bounded work to the selected owner and track what actually runs; a prepared handoff is not execution evidence.
Verify Base the verdict on observed test results, review findings, CI status, and runtime evidence.
Operate Keep release health, incidents, rollback state, and follow-up work visible.
Learn Promote reviewed, scoped lessons into project memory or workflow improvements.

Highlights

Intelligence What OMH adds
🧭 Mixture-of-models routing Every delegated lane lands on a category (model + reasoning effort) at dispatch time. Chains fall through when a provider rejects a model, and a child that did no work shows failed, never a green row.
🎛️ Per-family calibration Prompting is tuned per model family and generation — GPT-6 Astra, GPT-5.6, Claude 5.1, GLM 5.3, Kimi, Gemini, Qwen, DeepSeek and more — and each tune is kept only while the benchmark pair says it helps.
🗂️ Categories you own Twelve shipped categories per executor, with omh model-chains set to reorder, an entitlement interview that reorders chains per machine, and a live view of what a request would route to before it runs.
🖥️ Native TUI surface The OMH HUD (live rows with category, turns, cost, cache), the phase todo above the prompt, parallel shot ×N, full-row diff bands, and managed skins — installed beside Hermes, never patching it.
⚡ Observed parallel work Independent work splits into fanout units with disjoint file ownership, admission control under provider pressure, typed result sidecars, and verification gates that read what came back.
🎼 Maestro handoffs An explicit second lane for Codex, Claude Code, or another CLI: readiness probes, capability snapshots, owner-fit reports, and per-run model and effort — opt-in, and never the default path.
💸 Priced cost telemetry Token counts and dollar figures on every HUD row and run summary, priced from a rate table that cites its source; an unpriceable run reads unknown, never $0.
🧠 Long-term project memory A file-backed memory provider Hermes loads, admission and retention policies, reviewer-gated writes, and recall packs with freshness and budget — Hermes' own memory stays untouched.
🔎 Structural code search A measured ast-grep playbook (28 languages, grep fallback) and omh codegraph uml for a repo-wide architecture picture, injected where executors read code; omh codegraph tests --changed names the tests a change reaches (codegraph commands).
🛡️ Guardrails you write Toolcall rules that block an off-script call with your own rule text, a completion-integrity gate that refuses stubs and skipped tests as evidence, and an approval tier for risky actions.
♾️ Ultra workflow engines Parallel delivery lanes, measured goal loops with ledgers and real completion gates, and decision-frontier interviews before any engine runs — listed in Ultra-Skills above.
📦 A deterministic catalog A hundred-plus installable skills generated from one source, routing precision corpora with negative controls, and drift gates that fail CI on a single divergent byte.

Evidence Before Claims

OMH never reports that work happened unless it watched it happen. Every status you see has two parts: the stage, and how sure OMH is about it.

You see It means
Plan · not run A prompt or plan is ready. Nothing has run yet.
Code · running An executor is running now, and OMH is watching it.
Code · reported done The executor said it finished. Nobody checked the result.
Test · verified A test, review, or CI gate actually passed.

The distinction that matters is the second row from the bottom: an executor saying it is done is not the same as anything having been checked, and most tools spell both "complete". Capability impact is reported across separate dimensions rather than collapsed into one marketing score. See Capability Impact.

Measured: Hermes alone vs Hermes through OMH

benchmarks/product-ab/v1 compares the two products on a pinned corpus of this repository's own merged pull requests, graded by those pull requests' own tests, and reports four numbers per arm: pass rate, cost per passed task, wall clock per goal, and false-completion rate.

No measured run has been published yet. The lane, its corpus, and its offline pilot are in place; this section carries the table once a run exists whose records the repository can point at. Reproduction command and the full claim boundary: benchmarks/product-ab/v1/README.md.


Documentation


Development

For a source checkout:

PYTHONPATH=tests uv run python -m unittest discover -s tests -v
uv run python -m compileall -q src tests
uv run python -m omh.cli docs workflows --check
git diff --check

OMH is developed in the open as part of Team Art & Engineering. Follow @rlaope for project updates.

Contributors

Thanks to everyone who has contributed to oh-my-hermes.

oh-my-hermes contributors
View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

16 total
  1. v3.0.0v3.0.0Sep 29, 2026115 downloads

    ## oh-my-hermes 3.0.0 · stable Everything merged since 2.0.5 (2026-09-22), **98 pull requests**. Per-entry detail is in the [3.0.0 section of CHANGELOG.md](https://github.com/rlaope/oh-my-hermes/blob/v3.0.0/CHANGELOG.md). **Why a major** OMH has changed what it does with work, not only how it routes it. Until 2.0.5, OMH prepared plans, handoffs and routes and then stepped back. In 3.0.0 it keeps going until the work is checked: - a todo item closes on a recorded result; - a failed fanout unit is repaired in place; - an accepted plan can run as a team of Hermes delegates, each task closing on its own check. Hermes users will see the change in the reply as well. **Highlights** - **Work that finishes.** - A todo item marked done without a recorded result (tool call, file write, PR, CI run or team check) stays `done_unverified` and keeps the loop going. (#1928) - A fanout unit that fails its checks is repaired in its own worktree. This repeats until the checks pass or the repair budget is spent (default 2, cap 3); a spent budget stops with the reason named. (#1929) - A unit's "done" is held to the tests its own changes reach. (#1876, #1866) - **Teammates on Hermes' runtime

  2. v2.0.5v2.0.5Sep 22, 2026415 downloads

    ## oh-my-hermes 2.0.5 · stable Everything merged since 2.0.3 (2026-09-12), **142 pull requests**. **2.0.4 was tagged and never published.** Its cut ran green and pushed the tag, then the publication step was refused by GitHub — `HTTP 422 ... body is too long (maximum is 125000 characters)` against a 228,212-byte release body — and every step after it was skipped, so nothing reached npm, Homebrew or a release page. The tag stands as a record; 2.0.5 carries all of its work. That is why this release is large: 133 of these pull requests are the 2.0.4 range, described in the [2.0.4 section of CHANGELOG.md](https://github.com/rlaope/oh-my-hermes/blob/v2.0.5/CHANGELOG.md#204---2026-09-21) (103 entries), and the nine below it are new. **Why this release** Most of the 2.0.4 range was reported by someone who could not get past it. An install on a machine whose `python3` is 3.9.6 failed with a resolver message about a version bound, and the `omh` that failed to install was then not on the path to say so. A menu redraw threw away the arrow keys pressed during it, and a free-text prompt answered the escape bytes instead. `omh uninstall` reversed one of the seven `config.yaml` keys setup wri

  3. v2.0.3v2.0.3Sep 12, 20261.1K downloads

    ## oh-my-hermes 2.0.3 · stable Everything merged since 2.0.2 (2026-09-07), 75 pull requests. The grouped summary is in [CHANGELOG.md](https://github.com/rlaope/oh-my-hermes/blob/v2.0.3/CHANGELOG.md#203---2026-09-12); the full list is below. **Why this release** A dispatched unit could stop working and report nothing. A provider's session limit classified as `crash`; a batch whose every unit failed exited `0`, so a caller reading the status was told the work succeeded; a worker alive for 36 minutes retrying one git workaround read as progress because its process existed; and a plan with open items sat unchanged while every turn ended on a status report. Each of those was a separate defect and together they made a stalled run indistinguishable from a working one. This release closes that chain, and adds the refusal that would have prevented the 36 minutes: a unit whose workspace cannot take the work never spawns. **Highlights** - **A failed dispatch stops reporting success.** A provider's session limit classifies as limit-shaped, not a crash, and any unit carrying a `failure_kind` makes the command exit non-zero. A derived gate re-discovers every `*_exit_code` mapper from source

  4. v2.0.2v2.0.2Sep 7, 2026271 downloads

    ## oh-my-hermes 2.0.2 · stable Everything merged since 2.0.1 (2026-09-05), 26 pull requests. The grouped summary is in [CHANGELOG.md](https://github.com/rlaope/oh-my-hermes/blob/v2.0.2/CHANGELOG.md#202---2026-09-07); the full list is below. **Why this release** `omh update` on an installer-managed 2.0.1 machine could stop with `OMH update stopped during post_activation; the known-good generation remains active.` and nothing else to act on. The staged self-update rendered the candidate workflow pack into its own generation, then re-entered the update against the real home, whose manifest still recorded the active generation's pack; every skill the catalog had changed since the last install was judged a "local modification", the re-entry refused without `--force`, and the whole update rolled back. Any machine whose recorded pack predated the candidate render hit it, which would have been every machine on the next version bump. **Highlights** - The installer applies its local-modification and orphan-prune guards only to the directory the home manifest actually records, so a candidate generation is judged on its own content. A stopped update now prints the failing phase's reason,

  5. v2.0.1v2.0.1Sep 5, 2026145 downloads

    ## oh-my-hermes 2.0.1 · stable Everything merged since 2.0.0 (2026-08-29), 118 pull requests. The grouped summary is in [CHANGELOG.md](https://github.com/rlaope/oh-my-hermes/blob/v2.0.1/CHANGELOG.md#201---2026-09-05); the full list is below. **Highlights** - GPT-6 Astra onboarded with an exact-model contract, both-lane routing, and a calibration block that was measured against the block it replaced and revised on the number; the six Astra ids inherit the contract and `omh coding model-contract-audit` reconciles a host catalog against OMH coverage. - Request scoring gains an exhaustive-search signal; Claude Fable 5.1 / Mythos 5.1, GLM 5.3, and MiniMax recognized; token prices are a cited config document. - Revision-bound verification plans, resumable fan-out, provider-pressure admission, and a completion-integrity gate on the coding side; native cost provenance and session-scoped todos in the HUD. - Twenty-plus new `omh-*` workflows (codebase-uml, refactor-plan, inference-serving, tech-debt-audit, decision records, omh-docs, GitHub issue intake, and more). - The unit-test suite is sharded with a serial quarantine and exact-once aggregation; the site version badge is parity-gated

Code frequency

additions and deletions
+204.3K-204.3KWeek of 2026-05-31: +32,836 linesWeek of 2026-05-31: -9,482 linesWeek of 2026-06-07: +41,038 linesWeek of 2026-06-07: -7,543 linesWeek of 2026-06-14: +68,227 linesWeek of 2026-06-14: -8,345 linesWeek of 2026-06-21: +192,505 linesWeek of 2026-06-21: -165,979 linesWeek of 2026-06-28: +61,435 linesWeek of 2026-06-28: -7,065 linesWeek of 2026-07-05: +29,916 linesWeek of 2026-07-05: -10,733 linesWeek of 2026-07-12: +8,778 linesWeek of 2026-07-12: -273 linesWeek of 2026-07-19: +20,172 linesWeek of 2026-07-19: -7,609 linesWeek of 2026-07-26: +102,665 linesWeek of 2026-07-26: -36,756 linesWeek of 2026-08-02: +67,287 linesWeek of 2026-08-02: -5,401 linesWeek of 2026-08-09: +126,214 linesWeek of 2026-08-09: -6,485 linesWeek of 2026-08-16: +19,557 linesWeek of 2026-08-16: -3,034 linesWeek of 2026-08-23: +50,221 linesWeek of 2026-08-23: -9,312 linesWeek of 2026-08-30: +104,734 linesWeek of 2026-08-30: -8,142 linesWeek of 2026-09-06: +134,384 linesWeek of 2026-09-06: -8,326 linesWeek of 2026-09-13: +204,335 linesWeek of 2026-09-13: -84,414 linesWeek of 2026-09-20: +88,117 linesWeek of 2026-09-20: -22,405 linesWeek of 2026-09-27: +42,369 linesWeek of 2026-09-27: -4,786 linesMay 31, 2026Sep 27, 2026
+1.4M lines added, -406.1K removed over the last year.

Commits per week

last 52 weeks
2870Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 88 commitsWeek of 2026-06-07: 76 commitsWeek of 2026-06-14: 182 commitsWeek of 2026-06-21: 65 commitsWeek of 2026-06-28: 287 commitsWeek of 2026-07-05: 35 commitsWeek of 2026-07-12: 21 commitsWeek of 2026-07-19: 47 commitsWeek of 2026-07-26: 222 commitsWeek of 2026-08-02: 92 commitsWeek of 2026-08-09: 181 commitsWeek of 2026-08-16: 125 commitsWeek of 2026-08-23: 149 commitsWeek of 2026-08-30: 250 commitsWeek of 2026-09-06: 247 commitsWeek of 2026-09-13: 248 commitsWeek of 2026-09-20: 177 commitsWeek of 2026-09-27: 92 commitsOct 5, 2025Sep 27, 2026
2.6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 19 commitsSun 1:00 — 9 commitsSun 2:00 — 16 commitsSun 3:00 — 5 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 3 commitsSun 8:00 — 2 commitsSun 9:00 — 5 commitsSun 10:00 — 22 commitsSun 11:00 — 24 commitsSun 12:00 — 24 commitsSun 13:00 — 30 commitsSun 14:00 — 47 commitsSun 15:00 — 25 commitsSun 16:00 — 12 commitsSun 17:00 — 8 commitsSun 18:00 — 13 commitsSun 19:00 — 8 commitsSun 20:00 — 6 commitsSun 21:00 — 15 commitsSun 22:00 — 7 commitsSun 23:00 — 14 commitsMon 0:00 — 19 commitsMon 1:00 — 22 commitsMon 2:00 — 20 commitsMon 3:00 — 8 commitsMon 4:00 — 4 commitsMon 5:00 — 9 commitsMon 6:00 — 4 commitsMon 7:00 — 4 commitsMon 8:00 — 6 commitsMon 9:00 — 20 commitsMon 10:00 — 35 commitsMon 11:00 — 20 commitsMon 12:00 — 19 commitsMon 13:00 — 38 commitsMon 14:00 — 21 commitsMon 15:00 — 27 commitsMon 16:00 — 33 commitsMon 17:00 — 26 commitsMon 18:00 — 25 commitsMon 19:00 — 15 commitsMon 20:00 — 18 commitsMon 21:00 — 18 commitsMon 22:00 — 8 commitsMon 23:00 — 11 commitsTue 0:00 — 9 commitsTue 1:00 — 2 commitsTue 2:00 — 2 commitsTue 3:00 — 0 commitsTue 4:00 — 1 commitsTue 5:00 — 0 commitsTue 6:00 — 2 commitsTue 7:00 — 2 commitsTue 8:00 — 2 commitsTue 9:00 — 19 commitsTue 10:00 — 31 commitsTue 11:00 — 32 commitsTue 12:00 — 33 commitsTue 13:00 — 27 commitsTue 14:00 — 31 commitsTue 15:00 — 24 commitsTue 16:00 — 34 commitsTue 17:00 — 29 commitsTue 18:00 — 27 commitsTue 19:00 — 9 commitsTue 20:00 — 11 commitsTue 21:00 — 12 commitsTue 22:00 — 19 commitsTue 23:00 — 11 commitsWed 0:00 — 8 commitsWed 1:00 — 10 commitsWed 2:00 — 2 commitsWed 3:00 — 7 commitsWed 4:00 — 4 commitsWed 5:00 — 3 commitsWed 6:00 — 3 commitsWed 7:00 — 4 commitsWed 8:00 — 3 commitsWed 9:00 — 24 commitsWed 10:00 — 18 commitsWed 11:00 — 11 commitsWed 12:00 — 12 commitsWed 13:00 — 24 commitsWed 14:00 — 13 commitsWed 15:00 — 19 commitsWed 16:00 — 26 commitsWed 17:00 — 19 commitsWed 18:00 — 30 commitsWed 19:00 — 33 commitsWed 20:00 — 40 commitsWed 21:00 — 7 commitsWed 22:00 — 11 commitsWed 23:00 — 33 commitsThu 0:00 — 24 commitsThu 1:00 — 14 commitsThu 2:00 — 6 commitsThu 3:00 — 12 commitsThu 4:00 — 1 commitsThu 5:00 — 0 commitsThu 6:00 — 12 commitsThu 7:00 — 12 commitsThu 8:00 — 8 commitsThu 9:00 — 19 commitsThu 10:00 — 26 commitsThu 11:00 — 23 commitsThu 12:00 — 15 commitsThu 13:00 — 18 commitsThu 14:00 — 23 commitsThu 15:00 — 14 commitsThu 16:00 — 5 commitsThu 17:00 — 18 commitsThu 18:00 — 11 commitsThu 19:00 — 24 commitsThu 20:00 — 19 commitsThu 21:00 — 6 commitsThu 22:00 — 12 commitsThu 23:00 — 2 commitsFri 0:00 — 11 commitsFri 1:00 — 7 commitsFri 2:00 — 1 commitsFri 3:00 — 0 commitsFri 4:00 — 1 commitsFri 5:00 — 2 commitsFri 6:00 — 0 commitsFri 7:00 — 2 commitsFri 8:00 — 8 commitsFri 9:00 — 18 commitsFri 10:00 — 15 commitsFri 11:00 — 9 commitsFri 12:00 — 14 commitsFri 13:00 — 43 commitsFri 14:00 — 27 commitsFri 15:00 — 15 commitsFri 16:00 — 16 commitsFri 17:00 — 18 commitsFri 18:00 — 20 commitsFri 19:00 — 23 commitsFri 20:00 — 21 commitsFri 21:00 — 18 commitsFri 22:00 — 14 commitsFri 23:00 — 8 commitsSat 0:00 — 15 commitsSat 1:00 — 19 commitsSat 2:00 — 30 commitsSat 3:00 — 15 commitsSat 4:00 — 23 commitsSat 5:00 — 4 commitsSat 6:00 — 4 commitsSat 7:00 — 3 commitsSat 8:00 — 7 commitsSat 9:00 — 5 commitsSat 10:00 — 14 commitsSat 11:00 — 17 commitsSat 12:00 — 14 commitsSat 13:00 — 42 commitsSat 14:00 — 54 commitsSat 15:00 — 46 commitsSat 16:00 — 19 commitsSat 17:00 — 20 commitsSat 18:00 — 19 commitsSat 19:00 — 22 commitsSat 20:00 — 15 commitsSat 21:00 — 26 commitsSat 22:00 — 18 commitsSat 23:00 — 22 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits2,273 (56%)
Community commits1,801 (44%)

4,074 commits in total over the last year.

DateListRankStars gained
Sep 17, 2026daily#12+74
Sep 16, 2026daily#12+74
Sep 15, 2026daily#7+52
Sep 14, 2026daily#7+52
  • public-apis/public-apis

    A collective list of free APIs

    486.1K stars · Python

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    373.2K stars · Python

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • practical-tutorials/project-based-learning

    Curated list of project-based tutorials

    285.8K stars · Python

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript