Yeachan-Heo/oh-my-codexPublic

OmX - Oh My codeX: Your codex is not alone. Add hooks, agent teams, HUDs, and so much more.

AI summary: A community-driven collection of plugins, themes, and tweaks for OpenAI's Codex editor integrations.

Stars
33.4K
+10 today
Forks
2.5K
Watchers
84
Open issues
4
Open PRs
2
Contributors
~107
Commits
4K
Branches
210

TypeScriptMITCreated Feb 2, 2026Last push 3d agoLatest release v0.21.7+79 stars this week+471 this month

Quick answers

What is oh-my-codex?
A community-driven collection of plugins, themes, and tweaks for OpenAI's Codex editor integrations.
What does oh-my-codex do?
Oh-My-Codex is an open-source, community-driven ecosystem designed to enhance and extend integrations of OpenAI's Codex into various code editors. Inspired by frameworks like Oh-My-Zsh, it provides a centralized repository of plugins, themes, custom prompts, and workflow tweaks. It allows users to easily customize how Codex interacts with their development environment, offering tools for better context management, custom snippet generation, and specialized code reviewing. The project aims to democratize the customization of AI coding assistants, enabling developers to share their configurations and productivity hacks to get the most out of LLM-assisted programming.
Who is oh-my-codex for?
This project is for developers who heavily use AI coding assistants and want to deeply customize their experience. It requires basic familiarity with code editor configurations and extension management.
How do I get started with oh-my-codex?
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-codex/main/install.sh)"
How popular is oh-my-codex on GitHub?
Yeachan-Heo/oh-my-codex has 33,448 stars and 2,544 forks on GitHub, and gained 79 stars in the last 7 days.
What license does oh-my-codex use?
Yeachan-Heo/oh-my-codex is released under the MIT license.

Star history

since Jul 28, 2026
010K20K30KJul 2026Aug 2026Sep 2026Oct 2026
33.4K stars as of Oct 4, 2026. Measured daily since Jul 28, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepOctMonWedFri2025-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-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: 1 commit2026-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: 2 commits2026-02-13: 45 commits2026-02-14: 14 commits2026-02-15: 18 commits2026-02-16: 4 commits2026-02-17: 17 commits2026-02-18: 18 commits2026-02-19: 10 commits2026-02-20: 1 commit2026-02-21: 8 commits2026-02-22: 45 commits2026-02-23: 17 commits2026-02-24: 14 commits2026-02-25: 6 commits2026-02-26: 74 commits2026-02-27: 6 commits2026-02-28: 18 commits2026-03-01: 11 commits2026-03-02: 26 commits2026-03-03: 16 commits2026-03-04: 15 commits2026-03-05: 15 commits2026-03-06: 23 commits2026-03-07: 8 commits2026-03-08: 20 commits2026-03-09: 11 commits2026-03-10: 49 commits2026-03-11: 49 commits2026-03-12: 29 commits2026-03-13: 28 commits2026-03-14: 13 commits2026-03-15: 17 commits2026-03-16: 31 commits2026-03-17: 14 commits2026-03-18: 26 commits2026-03-19: 40 commits2026-03-20: 26 commits2026-03-21: 8 commits2026-03-22: 7 commits2026-03-23: 7 commits2026-03-24: 6 commits2026-03-25: 3 commits2026-03-26: 0 commits2026-03-27: 1 commit2026-03-28: 4 commits2026-03-29: 0 commits2026-03-30: 5 commits2026-03-31: 4 commits2026-04-01: 5 commits2026-04-02: 21 commits2026-04-03: 9 commits2026-04-04: 31 commits2026-04-05: 23 commits2026-04-06: 41 commits2026-04-07: 15 commits2026-04-08: 12 commits2026-04-09: 26 commits2026-04-10: 24 commits2026-04-11: 27 commits2026-04-12: 22 commits2026-04-13: 19 commits2026-04-14: 20 commits2026-04-15: 9 commits2026-04-16: 36 commits2026-04-17: 7 commits2026-04-18: 32 commits2026-04-19: 29 commits2026-04-20: 32 commits2026-04-21: 23 commits2026-04-22: 15 commits2026-04-23: 19 commits2026-04-24: 30 commits2026-04-25: 32 commits2026-04-26: 49 commits2026-04-27: 25 commits2026-04-28: 8 commits2026-04-29: 20 commits2026-04-30: 29 commits2026-05-01: 9 commits2026-05-02: 19 commits2026-05-03: 12 commits2026-05-04: 26 commits2026-05-05: 11 commits2026-05-06: 4 commits2026-05-07: 28 commits2026-05-08: 23 commits2026-05-09: 23 commits2026-05-10: 6 commits2026-05-11: 21 commits2026-05-12: 12 commits2026-05-13: 13 commits2026-05-14: 19 commits2026-05-15: 7 commits2026-05-16: 6 commits2026-05-17: 2 commits2026-05-18: 11 commits2026-05-19: 17 commits2026-05-20: 14 commits2026-05-21: 18 commits2026-05-22: 27 commits2026-05-23: 9 commits2026-05-24: 6 commits2026-05-25: 14 commits2026-05-26: 17 commits2026-05-27: 7 commits2026-05-28: 15 commits2026-05-29: 5 commits2026-05-30: 24 commits2026-05-31: 7 commits2026-06-01: 27 commits2026-06-02: 8 commits2026-06-03: 7 commits2026-06-04: 6 commits2026-06-05: 3 commits2026-06-06: 3 commits2026-06-07: 8 commits2026-06-08: 4 commits2026-06-09: 10 commits2026-06-10: 11 commits2026-06-11: 7 commits2026-06-12: 7 commits2026-06-13: 5 commits2026-06-14: 2 commits2026-06-15: 2 commits2026-06-16: 4 commits2026-06-17: 9 commits2026-06-18: 14 commits2026-06-19: 9 commits2026-06-20: 3 commits2026-06-21: 9 commits2026-06-22: 6 commits2026-06-23: 6 commits2026-06-24: 4 commits2026-06-25: 8 commits2026-06-26: 2 commits2026-06-27: 5 commits2026-06-28: 12 commits2026-06-29: 1 commit2026-06-30: 8 commits2026-07-01: 5 commits2026-07-02: 13 commits2026-07-03: 6 commits2026-07-04: 4 commits2026-07-05: 0 commits2026-07-06: 2 commits2026-07-07: 6 commits2026-07-08: 3 commits2026-07-09: 9 commits2026-07-10: 17 commits2026-07-11: 2 commits2026-07-12: 5 commits2026-07-13: 1 commit2026-07-14: 37 commits2026-07-15: 35 commits2026-07-16: 33 commits2026-07-17: 3 commits2026-07-18: 1 commit2026-07-19: 22 commits2026-07-20: 11 commits2026-07-21: 10 commits2026-07-22: 4 commits2026-07-23: 25 commits2026-07-24: 2 commits2026-07-25: 1 commit2026-07-26: 11 commits2026-07-27: 1 commit2026-07-28: 18 commits2026-07-29: 5 commits2026-07-30: 2 commits2026-07-31: 13 commits2026-08-01: 1 commit2026-08-02: 10 commits2026-08-03: 2 commits2026-08-04: 6 commits2026-08-05: 0 commits2026-08-06: 5 commits2026-08-07: 3 commits2026-08-08: 1 commit2026-08-09: 34 commits2026-08-10: 5 commits2026-08-11: 4 commits2026-08-12: 19 commits2026-08-13: 9 commits2026-08-14: 3 commits2026-08-15: 1 commit2026-08-16: 1 commit2026-08-17: 0 commits2026-08-18: 16 commits2026-08-19: 21 commits2026-08-20: 1 commit2026-08-21: 5 commits2026-08-22: 10 commits2026-08-23: 5 commits2026-08-24: 3 commits2026-08-25: 7 commits2026-08-26: 25 commits2026-08-27: 3 commits2026-08-28: 15 commits2026-08-29: 0 commits2026-08-30: 24 commits2026-08-31: 12 commits2026-09-01: 4 commits2026-09-02: 1 commit2026-09-03: 4 commits2026-09-04: 1 commit2026-09-05: 2 commits2026-09-06: 13 commits2026-09-07: 4 commits2026-09-08: 3 commits2026-09-09: 13 commits2026-09-10: 11 commits2026-09-11: 13 commits2026-09-12: 4 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 5 commits2026-09-16: 0 commits2026-09-17: 1 commit2026-09-18: 1 commit2026-09-19: 1 commit2026-09-20: 2 commits2026-09-21: 6 commits2026-09-22: 4 commits2026-09-23: 1 commit2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 1 commit2026-09-27: 0 commits2026-09-28: 14 commits2026-09-29: 5 commits2026-09-30: 4 commits2026-10-01: 7 commits2026-10-02: 0 commits2026-10-03: 0 commits2026-10-04: 0 commits2026-10-05: 0 commits2026-10-06: 0 commits2026-10-07: 0 commits2026-10-08: 0 commits2026-10-09: 0 commits2026-10-10: 0 commits
2,845 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    33,448 stars

  • Very active

    2,845 commits in 52 weeks

  • Community-driven

    ~107 contributors

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    9 trending appearances

What oh-my-codex does

Oh-My-Codex is an open-source, community-driven ecosystem designed to enhance and extend integrations of OpenAI's Codex into various code editors. Inspired by frameworks like Oh-My-Zsh, it provides a centralized repository of plugins, themes, custom prompts, and workflow tweaks. It allows users to easily customize how Codex interacts with their development environment, offering tools for better context management, custom snippet generation, and specialized code reviewing. The project aims to democratize the customization of AI coding assistants, enabling developers to share their configurations and productivity hacks to get the most out of LLM-assisted programming.

This project is for developers who heavily use AI coding assistants and want to deeply customize their experience. It requires basic familiarity with code editor configurations and extension management.

  • Plugin ecosystem: Offers a wide variety of community-contributed plugins to extend Codex's functionality in code editors.
  • Custom prompts: Provides a library of optimized prompts for specific tasks like refactoring, writing tests, or generating documentation.
  • Theme support: Allows users to customize the visual appearance of the AI assistant interfaces within their editors.
  • Context management tools: Includes utilities to better manage and feed relevant project context into the language model.
  • Easy installation: Features a simple command-line interface or extension manager to quickly install and update components.
  • Cross-editor compatibility: Aims to support configurations across popular editors like VS Code, Neovim, and JetBrains.

Where teams use it

AI workflow customization

Developers use it to tailor their AI coding assistant to their specific language preferences and project conventions.

Prompt engineering sharing

Teams share highly effective, customized prompts for generating boilerplate or solving specific domain problems.

Enhanced code generation

Users install plugins that better parse their local workspace to provide Codex with superior context for code generation.

Developer productivity

Engineers utilize workflow tweaks to streamline the process of reviewing and accepting AI-generated code suggestions.

Getting started: sh -c "$(curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-codex/main/install.sh)"

README

main branch

oh-my-codex (OMX)

oh-my-codex character
Start Codex stronger, then let OMX add better prompts, workflows, and runtime help when the work grows.

Liked OmX but find it a bit overkill? Try gajae-code.
Keep Codex OAuth with a faster, cheaper, simpler, and more powerful SDK-based path for OpenClaw, Hermes, Grokbot, and other integrations.

npm version License: MIT Node.js Discord

Website: https://yeachan-heo.github.io/oh-my-codex-website/

Docs: Getting Started · Agents · Skills · Integrations · Demo · OpenClaw guide

Community: Discord — shared Gajae community server for oh-my-codex, gajae-code, and related tooling.

Official project and package

The official/original OMX project is this repository, Yeachan-Heo/oh-my-codex, and the official npm package for this project is oh-my-codex. Install this project with npm install -g oh-my-codex (or alongside Codex CLI as shown below).

Third-party projects or forks that use names such as “OMX v2” are not official continuations, replacements, or release lines for this repository unless this README or the docs explicitly say so. When in doubt, trust this repository and the oh-my-codex package as the official install target.

OMX is a workflow layer for OpenAI Codex CLI.

🚨 CAUTION — RECOMMENDED DEFAULT ONLY: macOS or Linux with Codex CLI.

OMX is primarily designed and actively tuned for that path.
Native Windows and Codex App are not the default experience, may break or behave inconsistently, and currently receive less support.

It keeps Codex as the execution engine and makes it easier to:

  • start a stronger Codex session by default
  • run one consistent workflow from clarification to completion
  • invoke the canonical workflow with $plan, $ultragoal, $team, $code-review, and $ultraqa — each independently, no fixed chain
  • keep project guidance, plans, logs, and state in .omx/

Core Maintainers

Role Name GitHub
Creator & Lead Yeachan Heo @Yeachan-Heo
Maintainer Doyun Ha @HaD0Yun
Maintainer Valeriy Pavlovich @iqdoctor

Ambassadors

Name GitHub
Sigrid Jin @sigridjineth

Top Collaborators

Name GitHub
Doyun Ha @HaD0Yun
Junho Yeo @junhoyeo
JiHongKim98 @JiHongKim98
Lor @gobylor
HyunjunJeon @HyunjunJeon

Recommended default flow

If you want the default OMX experience, start here:

Choose one install path. If Codex CLI is already installed (Homebrew, npm, or another supported method):

codex --version
npm install -g oh-my-codex
# from the git project you want Codex to edit; choose a task-specific name
omx --worktree=feat/task --madmax --xhigh

If you do not have Codex CLI yet and want npm to manage it:

npm install -g @openai/codex
npm install -g oh-my-codex

Do not run a combined npm install -g @openai/codex oh-my-codex over an existing Homebrew-owned codex binary such as /opt/homebrew/bin/codex; npm may fail with EEXIST when @openai/codex tries to create the same binary. OMX only needs a working, authenticated codex command on PATH; it does not require Codex to be installed through npm.

On a real oh-my-codex version bump, the global npm install now prints an explicit reminder instead of launching setup automatically. When you're ready, run the scoped setup command below or use omx update to check npm and then run the same setup refresh path.

OMX also checks for npm updates at launch on a throttled cadence and prompts before scheduling the update after the current session exits. Set OMX_AUTO_UPDATE=0 to disable the launch-time check, or set OMX_AUTO_UPDATE=defer to schedule the same deferred update without prompting.

Choose the setup scope deliberately:

  • Use omx setup --scope project --merge-agents from the git project you want OMX to operate on when that repository should own the durable AGENTS.md guidance.
  • Use omx setup --scope user for user-level Codex setup when you are not preparing the current directory as an OMX project.
  • Avoid running project-scoped setup from a broad home directory or operating hub unless that directory is intentionally the project under review. A home-level AGENTS.md often contains global safety and routing rules; keep project-specific OMX runtime guidance in the real repository instead.

Persisting an explicit AGENTS merge policy

omx setup --merge-agents, omx setup --no-merge-agents, and omx setup --clear-merge-agents-policy are the only policy selectors; use their bare forms (not =value spellings). Repeating an identical selector is harmless, but mixing set and clear choices fails before setup changes anything. An explicit set overrides a saved policy. A successful explicit set records mergeAgents: true or false in the current working root's ./.omx/setup-scope.json, even when setup scope is user; it never becomes a global user preference or leaks to another root. Later omx update replays a valid matching policy for both immediate and deferred refreshes.

true takes the existing merge branch. false only suppresses that branch: it does not promise preservation, replacement, or any new safety mode, so the existing prompt, skip, managed-refresh, plugin-default, and force behavior still applies. A matching-scope review retains the policy while unrelated settings change. Reset or a scope change removes the inherited policy unless the same setup run explicitly sets true or false; clear always removes the policy and cannot be combined with a set selector. Malformed, unknown, nonboolean, or wrong-scope saved data is ignored safely.

--force is independent and transient: it is neither recorded nor replayed, and does not override an explicit merge policy. Setup atomically commits explicit set or clear intent only after all setup work succeeds, including when active-session or plugin-symlink safeguards skip the current AGENTS.md write, so the next refresh can honor the requested policy. This does not make merge the default or revive the rejected #2892 merge-by-default approach. Older OMX versions safely ignore the field, but may erase it when rewriting their known setup preferences.

Codex plugin install note: this repo also ships an official Codex plugin layout at plugins/oh-my-codex with marketplace metadata in .agents/plugins/marketplace.json. That plugin bundles the mirrored skill surface plus plugin-scoped companion metadata for official Codex lifecycle hooks, optional MCP compatibility servers, and apps. It is still not a replacement for the global oh-my-codex CLI plus scoped setup: plugin-scoped hooks launch the installed omx CLI, legacy setup mode installs native agents and prompts, and plugin setup mode relies on plugin discovery for bundled skills while archiving/removing legacy OMX-managed prompts/native-agent TOMLs so stale role files cannot shadow plugin behavior. Plugin mode still needs a persistent scope AGENTS.md (~/.codex/AGENTS.md for user setup or ./AGENTS.md for project setup) as the durable orchestration guidance layer; session-scoped AGENTS files only compose that durable guidance with runtime overlays and are not a replacement.

Then work normally inside Codex:

# Durable objective/checkpoints for a long task:
/goal Create a safe authentication refactor plan, implement it, and verify login, logout, and refresh-token behavior.

$deep-interview "clarify the authentication change"
$ralplan "approve the auth plan and review tradeoffs"
$ultragoal "turn the approved plan into durable Codex goals"

That is the main path. Before you treat the runtime as ready, run the quick-start smoke test below: omx doctor verifies the install shape, while omx exec proves the active Codex runtime can actually authenticate and complete a model call from the current environment. Start OMX strongly, clarify first when needed, approve the plan, then use $ultragoal as the default durable completion wrapper. Use $team inside that execution path only when a specific Ultragoal story needs coordinated parallel work.

What OMX is for

Use OMX if you already like Codex and want a better day-to-day runtime around it:

  • a standard workflow built around $deep-interview -> $ralplan -> $ultragoal
  • research boundaries: use $best-practice-research for ordinary pre-planning official/upstream evidence, $autoresearch for bounded validator-gated research artifacts ($deep-interview --autoresearch for intake, then $autoresearch with the chosen validation mode) for research missions, and feed any research findings into $ralplan for architecture synthesis
  • durable multi-goal handoffs with $ultragoal and .omx/ultragoal artifacts as the default completion path after planning
  • specialist roles and supporting skills when the task needs them
  • project guidance through scoped AGENTS.md
  • durable state under .omx/ for plans, logs, memory, and mode tracking

If you want plain Codex with no extra workflow layer, you probably do not need OMX.

Quick start

Requirements

  • Node.js 20+
  • Codex CLI installed, verified with codex --version, and authenticated (Homebrew or npm are both fine; do not reinstall @openai/codex with npm if Homebrew already owns codex)
  • Codex auth configured and visible in the same shell/profile that will run OMX
  • tmux on macOS/Linux if you want the recommended durable team runtime
  • psmux on native Windows only if you intentionally want the less-supported Windows team path

A good first session

After install, check both boundaries:

omx doctor
codex login status
omx exec --skip-git-repo-check -C . "Reply with exactly OMX-EXEC-OK"

omx doctor catches missing OMX files, hooks, and runtime prerequisites. The real smoke test catches auth, profile, and provider/base-URL problems that only appear when Codex performs an actual request.

Launch OMX the recommended way from a git project:

omx --worktree=feat/task --madmax --xhigh

On macOS/Linux interactive terminals with tmux available, this starts the leader in OMX-managed detached tmux by default so the HUD/runtime panes can be created and recovered. --worktree also moves the launch into a separate git checkout, which is the safer default when using --madmax. Replace feat/task with a branch-like name for the task.

Concurrent standard conversations

A standard launch owns one writable session pointer under its selected OMX_ROOT. A second ordinary omx launch from the same checkout therefore fails closed instead of sharing or silently changing that root. Give each additional conversation an explicit, distinct root:

omx
OMX_ROOT="$HOME/.omx/instances/second-conversation" omx
OMX_ROOT="$HOME/.omx/instances/third-conversation" omx

PowerShell:

$env:OMX_ROOT = "$HOME/.omx/instances/second-conversation"
omx

Command Prompt:

set "OMX_ROOT=%USERPROFILE%\.omx\instances\second-conversation"
omx

User-specified roots are literal: launching twice with the same explicit OMX_ROOT remains a fatal owner conflict. Separate checkouts have separate default roots, while --worktree and --madmax keep their existing isolation behavior.

Madmax and worktree launch safety

--madmax is OMX shorthand for Codex --dangerously-bypass-approvals-and-sandbox. It removes the normal approval and sandbox guardrails, so only use it in trusted repositories and environments. --high and --xhigh are shorthand for -c model_reasoning_effort="high|xhigh"; a normal strong session is omx --madmax --xhigh (or omx --worktree=feat/task --madmax --xhigh from a git project).

When you use --madmax from a git repository, prefer a worktree launch instead of running directly in the current checkout. For repeatable or concurrent work, use a named worktree:

omx --worktree=feature/auth --madmax --xhigh

If you are outside a git repository, omit --worktree; worktree launches require Git.

For concurrent --madmax sessions, do not run them all in the same directory. Give each session its own named worktree:

omx --worktree=feature/auth --madmax --xhigh
omx --worktree=fix/flaky-tests --madmax --xhigh

--worktree / -w with no name creates or reuses a detached launch worktree at ../<repo>.omx-worktrees/launch-detached. --worktree=<name>, --worktree <name>, or -w <name> creates or reuses a named launch worktree under ../<repo>.omx-worktrees/ and checks out that branch name. OMX consumes the worktree flag before starting Codex; it is not forwarded to Codex itself. Treat the unnamed detached form as a one-off convenience: if the source checkout advances after that worktree is created, a later unnamed launch can fail with worktree_target_mismatch because launch-detached still points at the old HEAD. Use a named worktree for repeated work, or remove the old detached worktree before retrying. If the target launch worktree is already dirty, OMX warns and launches as-is, so clean, commit, or stash that worktree before relying on it for isolation.

For omx team, workers already use dedicated worktrees automatically by default; --worktree on omx team is only a legacy-compatible override.

Repo-aware tools receive the same canonical context in launch, team-worker, and autoresearch runtimes: OMX_REPO_ROOT, OMX_WORKTREE_ROOT, OMX_GIT_COMMON_DIR, OMX_WORKTREE_SCOPE, OMX_CODEGRAPH_MODE, and OMX_CODEGRAPH_PROJECT_PATH. OMX_CODEGRAPH_MODE=auto prefers a worktree-local .codegraph/codegraph.db, then a leader/repo .codegraph/codegraph.db, otherwise resolves to off. Explicit shared, local, and off are honored. OMX does not install CodeGraph, auto-index worktrees, or copy/symlink .codegraph; shared leader indexes are useful for baseline navigation but are not branch-accurate for worktree-only changes.

If you want a one-off launch with no OMX tmux/HUD management, use --direct:

omx --direct --yolo

For a persistent shell/profile preference, set an environment policy:

OMX_LAUNCH_POLICY=direct omx --yolo

Return to the auto/default behavior with:

unset OMX_LAUNCH_POLICY

CLI policy flags win over the environment, and the last CLI policy flag before -- wins:

OMX_LAUNCH_POLICY=direct omx --tmux --yolo

Use OMX_LAUNCH_POLICY=direct|tmux|detached-tmux|auto. This iteration only adds CLI and environment controls; it intentionally does not add a config-file setting. If you run --direct from inside an existing tmux pane, OMX will not create HUD splits, enable mouse mode, or wrap extended-key handling, but the process still runs inside that already-open terminal pane.

Then try the canonical workflow:

# Copy/pasteable durable-goal example:
/goal Ship the checkout bug fix with a durable objective, checkpoints for reproduction, implementation, regression tests, and final verification.

$plan "approve the checkout bug-fix plan and review tradeoffs"
$ultragoal "execute the approved checkout fix with checkpoint evidence"

Use $team when an active Ultragoal story needs coordinated parallel work.

/goal and skill selection

Start a normal strong session with omx --madmax --xhigh (or add --worktree=<task> in a git repo). Inside that session, execute directly or use $ultragoal for durable multi-goal runs, $team for coordinated parallel work, or $plan when the task needs explicit planning first. Use /goal when the task itself needs a durable objective/checkpoint structure that Codex should keep reconciling across turns.

Add only 2-5 relevant skills by default. More skills are allowed when the task scope justifies them, but loading a large catalog is usually a context-budget and attention-quality problem, not a hard parser/runtime blocker. Treat it as a concrete runtime blocker only when a command actually errors.

Anti-pattern:

omx --madmax --xhigh
# Then immediately load 20 skills "just in case" before stating the task.
# This bloats session context and makes the model spend attention on irrelevant workflows.

A simple mental model

OMX does not replace Codex.

It adds a better working layer around it:

  • Codex does the actual agent work
  • OMX role keywords make useful roles reusable
  • OMX skills make common workflows reusable
  • .omx/ stores plans, logs, memory, and runtime state

Most users should think of OMX as better task routing + better workflow + better runtime, not as a command surface to operate manually all day.

Start here if you are new

  1. If Codex CLI already exists, verify it with codex --version and install or update OMX with npm install -g oh-my-codex; otherwise install @openai/codex separately first if you want npm to manage Codex
  2. After install or real OMX version bumps, run omx setup --scope project --merge-agents from the target git project or omx setup --scope user for user-level Codex setup, or use omx update when you also want npm to check for and install the latest build before refreshing setup
  3. Run omx doctor
  4. Run a real execution smoke test: codex login status and omx exec --skip-git-repo-check -C . "Reply with exactly OMX-EXEC-OK"
  5. Launch with a named worktree from a git repo, for example omx --worktree=feat/task --madmax --xhigh; if you run concurrent --madmax sessions, use distinct named worktrees such as --worktree=feature/auth
  6. Use $deep-interview "..." when the request or boundaries are still unclear
  7. Use $ralplan "..." to approve the plan and review tradeoffs
  8. Use $ultragoal or $team when the task needs durable or parallel execution; add /goal when durable objective/checkpoint structure should be explicit

Recommended workflow

$autopilot is the first-class canonical orchestrator for the staged workflow $deep-interview -> $ralplan -> $ultragoal. The chain is its defining default, while each stage remains independently invocable when earlier input contracts are already satisfied.

  1. $deep-interview — iterative Socratic ambiguity clearance, resumable state, and execution-ready requirements artifacts.
  2. $ralplan — architecture, feasibility, and consensus planning over the deep-interview artifact.
  3. $ultragoal — durable multi-goal execution with .omx/ultragoal ledger checkpoints.
  4. $team — coordinated parallel execution when a story benefits from multiple lanes.

$deep-interview is an independent requirements stage, not an alias for $plan --interview, and never implements directly. Planning skills stop at planning artifacts; code changes require an explicit execution lane ($ultragoal or $team).

Inside an Ultragoal story, use $team only when that story benefits from coordinated parallel execution.

Common in-session surfaces

Surface Use it for
$plan "..." optional planning and clarification (--interview mode)
$ultragoal "..." durable multi-goal completion after the approved plan
$team "..." coordinated parallel execution when the work is big enough
/skills browsing installed skills and supporting helpers
/goal ... durable objective/checkpoint structure for tasks that must reconcile progress across turns
omx mission <file> sequential prompt/checklist batch runs through omx exec, with .omx/missions/<slug>/summary.json and ledger.jsonl operator artifacts

Advanced / operator surfaces

These are useful, but they are not the main onboarding path.

Mission queue runner

Use omx mission when you have a short checklist of OmX/Codex prompts that should run one after another instead of opening a separate shell command for each prompt. Start with omx mission plan ./mission.md or omx mission ./mission.md --dry-run to validate parsing and inspect the durable summary, then run omx mission run ./mission.md -- --model gpt-5 when the prompts are ready. Interrupted runs can be inspected with omx mission status ./mission.md, continued with omx mission resume ./mission.md, operator-blocked with omx mission mark ./mission.md --task task-002 --status blocked, and repaired task-by-task with omx mission rerun ./mission.md --task task-002. See docs/mission.md for input format, status output, and artifact details.

Team runtime

Use the team runtime when you specifically need durable tmux/worktree coordination, not as the default way to begin using OMX. In Codex App or plain outside-tmux sessions, treat omx team as a tmux-runtime shell surface rather than a directly available in-app workflow; launch OMX CLI from shell first if you actually want team execution.

When Team runs inside an Ultragoal story, Ultragoal remains leader-owned state: workers report checkpoint-ready evidence upward instead of mutating .omx/ultragoal directly. Team startup tolerates stale or malformed Ultragoal artifacts for unrelated work, but explicitly Ultragoal-linked Team launches stay fail-closed. Team startup also writes .omx/state/team/<team-name>/preflight-context.json so large Team runs can be resumed after compaction with the original task, worker split, Ultragoal context, and verification checklist.

For very small atomic work, Team may cap implicit fanout to one worker and print an over-orchestration warning; pass an explicit worker count only when the extra coordination cost is intentional.

omx team 3:executor "fix the failing tests with verification"
omx team status <team-name>
omx team resume <team-name>
omx team shutdown <team-name>

Setup, doctor, and HUD

These are operator/support surfaces:

  • Codex plugin marketplace install/discovery can cache the plugin under ${CODEX_HOME:-~/.codex}/plugins/cache/$MARKETPLACE_NAME/oh-my-codex/$VERSION/ (local installs may use local as the version identifier); that packaged plugin includes plugin-scoped companion metadata for official Codex lifecycle hooks, optional MCP compatibility servers, and apps (MCP/apps disabled by default), so it is still paired with the installed omx CLI for runtime execution
  • Scoped setup installs prompts, skills, AGENTS scaffolding, .codex/config.toml, and (for legacy installs or older Codex without plugin_hooks) OMX-managed native Codex hooks in .codex/hooks.json
    • setup refresh preserves non-OMX hook entries in .codex/hooks.json and only rewrites OMX-managed wrappers
    • plugin setup keeps AGENTS.md as persistent durable guidance even though bundled skills/hooks come from the plugin cache; omx doctor treats a missing persistent scope AGENTS.md in plugin mode as a failed check because the session-scoped AGENTS file would otherwise contain only runtime overlay guidance
    • omx setup --merge-agents preserves existing project AGENTS.md guidance while inserting or refreshing generated OMX sections between <!-- OMX:AGENTS:START --> / <!-- OMX:AGENTS:END -->; --no-merge-agents records an explicit contextual non-merge choice, and --clear-merge-agents-policy always removes the recorded choice and cannot combine with a set selector. The policy is stored per working root (even for user scope), replayed by immediate and deferred updates only when its saved scope is valid and matches, and is never a force/default policy.
    • omx uninstall removes OMX-managed wrappers from .codex/hooks.json but keeps the file when user hooks remain
  • omx update checks npm immediately, installs the newest global OMX build, then reruns the same interactive setup refresh path
  • launch-time update checks are throttled and prompt by default; use OMX_AUTO_UPDATE=0 to disable them or OMX_AUTO_UPDATE=defer to schedule deferred updates without a prompt
  • fresh OMX setup defaults to gpt-6-astra across frontier, standard, and spark/fast agents, with the same role reasoning defaults; existing user model configuration and explicit overrides are preserved
  • .omx-config.json model/env routing is documented in the model/env routing reference; only edit keys supported by your installed OMX version
  • omx doctor verifies the install when something seems wrong; it does not prove that the active Codex profile can make an authenticated model call
  • omx hud --watch is a monitoring/status surface, not the primary user workflow
  • Active session teams show their name and worker count beside the OMX version (for example, [OMX#0.21.4] team:checkout (3 workers) | repo/branch) in every HUD preset, before long repository labels. When ultragoal is active, the combined ultragoal/team summary also takes priority over repository labels and other modes. Team discovery remains session-scoped; this does not show teams from other sessions or change when team startup publishes active state.
  • Below the summary, each team agent gets a live-refreshing row with its name, last reported state (working, idle, blocked, done, failed, draining, or unknown), current task ID, role, tmux pane ID, and update age when available. Columns stay aligned across different name lengths and missing fields; working and done are green, while blocked and failed are yellow. The HUD grows to fit the roster and shrinks after the team stops. Missing or malformed status files display unknown; a reported working state is not a process-liveness check. Membership and status are read without modifying team files.
  • GitGuardex finish progress is opt-in. Add "guardex": { "enabled": true } to the project-local .omx/hud-config.json to show gx:<step>/<total> <phase>; running review/autofix phases animate in the HUD. OMX does not read Guardex state when this flag is absent or false.

Tmux roster height is bounded by live window and leader/HUD geometry, reserving at least half of their shared rows for the leader. Workers that do not fit are represented by a +N workers overflow row. The watch loop remeasures after resizing; unknown geometry keeps the HUD compact rather than expanding it unchecked.

For non-team sessions, native Codex hooks are now the canonical lifecycle surface:

  • plugins/oh-my-codex/hooks/hooks.json = official plugin-scoped hook registrations for plugin installs
  • .codex/hooks.json = legacy/fallback native Codex hook registrations preserved for legacy installs and older Codex versions
  • .omx/hooks/*.mjs = OMX plugin hooks
  • omx tmux-hook / notify-hook / derived watcher = tmux + runtime fallback paths

See Codex native hook mapping for the current native / fallback matrix.

Troubleshooting false-green readiness

A green omx doctor means the install and local runtime wiring look sane. If real execution still fails, check the environment Codex actually uses:

  • Run codex login status and omx exec --skip-git-repo-check -C . "Reply with exactly OMX-EXEC-OK" from the same shell/profile that will launch OMX.
  • In custom HOME, profile, container, or service shells, confirm the active ~/.codex (or CODEX_HOME) is the one with the expected auth and config. Do not assume your normal user ~/.codex is visible there.
  • If you depend on a local OpenAI-compatible proxy, confirm the active ~/.codex/config.toml includes the expected openai_base_url; otherwise a proxy-issued key can be sent to the default endpoint and fail with 401 Unauthorized, Missing bearer or basic authentication in header, or Incorrect API key provided.
  • If omx doctor --team or resume reports a stale team such as resume_blocker or a missing tmux session, clean the dead runtime state before retrying:
omx team shutdown <team-name> --force --confirm-issues
omx cancel
omx doctor --team

Only use the forced team shutdown for a team you have confirmed is dead or intentionally abandoned.

If Shift+Enter still submits instead of inserting a newline inside an OMX-managed tmux session, see Troubleshooting execution readiness. Current OMX already enables tmux extended-key forwarding around its own Codex launch paths, so a persistent failure is usually a tmux terminal-capability/discoverability problem rather than a net-new OMX feature gap.

Sparkshell

  • omx sparkshell <command> is for shell-native inspection and bounded verification
  • for read-only repository lookups, use normal Codex repository inspection tools/subagents (the deprecated omx explore command has been removed)
  • primary and fallback Sparkshell summary models both default to gpt-6-astra; set OMX_SPARKSHELL_FALLBACK_MODEL to a different model to enable a distinct fallback
  • sparkshell env overrides are intentionally narrow: OMX_SPARKSHELL_BIN selects a native sidecar path, OMX_SPARKSHELL_MODEL selects the primary summary model, OMX_SPARKSHELL_FALLBACK_MODEL selects the retry model, OMX_SPARKSHELL_MODEL_INSTRUCTIONS_FILE selects summary instructions, and OMX_SPARKSHELL_SUMMARY_TIMEOUT_MS controls the local API summary timeout

Examples:

omx sparkshell git status
omx sparkshell --tmux-pane %12 --tail-lines 400

Wiki

  • omx wiki is the CLI-first JSON surface for wiki operations; omx_wiki MCP is explicit compatibility only
  • wiki data lives as repository project knowledge under omx_wiki/
  • the wiki is markdown-first and search-first, not vector-first

Examples:

omx wiki list --json
omx wiki query --input '{"query":"session-start lifecycle"}' --json
omx wiki lint --json
omx wiki refresh --json

Platform notes for team mode

omx team works best on macOS/Linux with tmux. Native Windows remains a secondary path, and WSL2 is generally the better choice if you want a Windows-hosted setup. On native Windows, OMX accepts psmux as the tmux-compatible binary for the existing tmux-backed paths it already uses.

Platform Install
macOS brew install tmux
Ubuntu/Debian sudo apt install tmux
Fedora sudo dnf install tmux
Arch sudo pacman -S tmux
Windows winget install psmux
Windows (WSL2) sudo apt install tmux

Known issues

Intel Mac: high syspolicyd / trustd CPU during startup

On some Intel Macs, OMX startup — especially with --madmax --high — can spike syspolicyd / trustd CPU usage while macOS Gatekeeper validates many concurrent process launches.

If this happens, try:

  • xattr -dr com.apple.quarantine $(which omx)
  • adding your terminal app to the Developer Tools allowlist in macOS Security settings
  • using lower concurrency (for example, avoid --madmax --high)

Documentation

Languages

Contributors

Role Name GitHub
Creator & Lead Yeachan Heo @Yeachan-Heo
Maintainer Doyun Ha @HaD0Yun
Maintainer Valeriy Pavlovich @iqdoctor

Star History

Star History Chart

License

MIT

GEO visibility benchmark

OmX includes a geobench product spec for measuring LLM hit rate, MRR, share of voice, and citations.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

139 total
  1. v0.21.7v0.21.7Oct 1, 20261.9K downloads

    # oh-my-codex v0.21.7 `0.21.7` is a correctness and robustness release for the frozen range `v0.21.6..38d27ed752d17f18690c43a2acc0f28c7a0e81ed` (49 commits, 102 files, +7246/−642): plugin integrity and template validation, HUD idle CPU optimization and correctness, Team runtime robustness, session management fixes, model catalog expansion, and dependency updates. ## Highlights - **Plugin skill contract resolution and template validation:** plugin skill links now resolve correctly inside the plugin snapshot context (#3708), and templates/AGENTS.md is validated in cache provenance checks to prevent corruption (#3707). Foreign hook trust is maintained during legacy hook migration (#3704). - **HUD idle CPU correctness:** hook metadata is kept atomic (#3706), idle reconciliation CPU storms are eliminated, native fixtures align with authority frames (#3706), and tmux probe errors are properly preserved (#3711). - **Team runtime and setup robustness:** queued leader notices remain safe after shutdown (#3692), and non-Team guidance is preserved when Team is disabled (#3699, #3700); Team worker instructions are written to a per-worker file passed via `OMX_MODEL_INSTRUCTIONS_FILE`, so the

  2. v0.21.6v0.21.6Sep 21, 20265.7K downloads

    # oh-my-codex v0.21.6 `0.21.6` is a maintenance and reliability release for the frozen range `v0.21.5..dev` (52 commits, 101 files, +4294/−707): tmux HUD lifecycle correctness, AGENTS scope fixes, auth/credential record hardening, Team dispatch and Windows startup robustness, a reusable default-model cost/quality evaluation suite, and dependency updates. ## Highlights - **Reusable default-model cost/quality evaluations:** a declarative suite for OMX's default model lineup with deterministic stage-transition records, supplied-record reporting, and explicitly documented declaration/validation limits (#3663, #3665, #3666, #3667), answering the evaluation request in issue #3655 without asserting unmeasured numbers. - **Self-terminating, leak-free tmux HUD:** stale Team leader panes are skipped during reconciliation, orphan watchers and noisy reconcile failures are gone, and the HUD closes when its tmux leader pane exits. Leader absence is decided from a validated server-wide pane snapshot, so a window move is never mistaken for an exit and a failed tmux query is never treated as evidence (#3660, #3683, #3685). - **AGENTS scope correctness:** durable AGENTS content is no longer dupli

  3. v0.21.5v0.21.5Sep 11, 20266.6K downloads

    # oh-my-codex v0.21.5 `0.21.5` is a release for the frozen range `v0.21.4..dev` (62 commits): active-team tmux HUD, current Codex lifecycle alignment, ordinary native execution under inherited permissions, credential-provenance and Team startup fixes, portable session recovery, TOML/POSIX PATH fixes, dependency updates, and a dogfood/concurrency repair chain. ## Highlights - **Active Team progress in the tmux HUD:** show the active team identity and each worker's status/task, retain readable narrow layouts and leader space, use the selected runtime state root, and fence resize reconciliation by exact session ownership (#3644). - **Current Codex lifecycle:** align plugin-hook diagnostics/setup/uninstall with current Codex capabilities; preserve user-owned reasoning effort; dogfood the real hook trust lifecycle against exact Codex CLI 0.153.4 (#3627, #3631, #3632, #3650). - **Safe ordinary execution:** ordinary native implementation/reporting respects inherited permissions instead of obsolete workflow restrictions (#3637). Active guidance no longer hands users to retired workflows (#3647). ## Fixes and compatibility - Preserve credential provenance in ephemeral project-scope run

  4. v0.21.4v0.21.4Sep 7, 20262.2K downloads

    # oh-my-codex v0.21.4 `0.21.4` is a patch release for the frozen range `v0.21.3..b08eceeecc7a7379f041ceca51260f073d8a95bb` (3 commits, 35 changed files, +364/−195; PRs #3615/#3618/#3622). ## Highlights - **Astra is the default across OMX agent tiers** — leaders, specialists, standard and fast agents, low-complexity workers, Team children, exact planning/research roles, new-agent configuration, subscription defaults, and SparkShell summaries now default to `gpt-6-astra` (#3622). - **Explicit choices remain authoritative** — existing model configuration, profiles, per-agent overrides, CLI/environment choices, provider-specific names, custom instructions, and reasoning-effort defaults are preserved (#3622). - **The agent catalog matches the packaged product** — only active/internal roles are presented as directly invocable, merged/deprecated replacements are documented, and workflow guidance is aligned with `$deep-interview` → `$ralplan` → `$ultragoal`; `$team` remains conditional parallel execution (#3618). ## Compatibility Patch release with no intentional breaking CLI or package-layout changes. Astra defaults apply only where no explicit model choice exists. ## Known gap [#3

  5. v0.21.3v0.21.3Sep 3, 20265.6K downloads

    # oh-my-codex v0.21.3 `0.21.3` is a patch release for `v0.21.2..3902573ef309e54534d7388579f2a7243ca7f465` (15 commits, 20 changed files, PRs #3604/#3605/#3606/#3608/#3610/#3612, linked issues #3609/#3611). ## Highlights - **No duplicate Team wakes** — already-terminal projections are retired instead of re-waking Team coordination (#3608). - **Long sessions keep their transcripts** — the detached tmux scrollback clamp is raised 500 → 5000 lines with an `OMX_TMUX_HISTORY_LIMIT` override, so multi-line responses are no longer discarded from the pane in long sessions (#3612, fixes #3611). - **Composer drift triage documented** — `docs/troubleshooting.md` records the prompt-drift symptom, the measured repro matrix, the `tmux resize-pane -D 1 && tmux resize-pane -U 1` recovery, and the fact that `history-limit` is fixed at pane creation (#3610, documents #3609). ## Compatibility Patch release, no breaking changes. The scrollback change only raises the ceiling for OMX-owned detached leader sessions and adds an opt-in override; panes that already exist keep the scrollback size they were created with. ## Dependencies `@types/node` 26.2.0 → 26.4.0 (#3606), `zod` 4.4.3 → 4.5.2 (#3605),

Code frequency

additions and deletions
+116.5K-116.5KWeek of 2026-02-01: +15 linesWeek of 2026-02-01: -0 linesWeek of 2026-02-08: +38,535 linesWeek of 2026-02-08: -6,233 linesWeek of 2026-02-15: +19,495 linesWeek of 2026-02-15: -5,457 linesWeek of 2026-02-22: +34,360 linesWeek of 2026-02-22: -6,723 linesWeek of 2026-03-01: +32,631 linesWeek of 2026-03-01: -9,953 linesWeek of 2026-03-08: +64,634 linesWeek of 2026-03-08: -27,679 linesWeek of 2026-03-15: +42,734 linesWeek of 2026-03-15: -25,339 linesWeek of 2026-03-22: +4,803 linesWeek of 2026-03-22: -804 linesWeek of 2026-03-29: +15,568 linesWeek of 2026-03-29: -8,341 linesWeek of 2026-04-05: +44,302 linesWeek of 2026-04-05: -17,243 linesWeek of 2026-04-12: +34,139 linesWeek of 2026-04-12: -5,584 linesWeek of 2026-04-19: +43,029 linesWeek of 2026-04-19: -14,613 linesWeek of 2026-04-26: +32,459 linesWeek of 2026-04-26: -10,856 linesWeek of 2026-05-03: +30,728 linesWeek of 2026-05-03: -4,929 linesWeek of 2026-05-10: +26,009 linesWeek of 2026-05-10: -9,523 linesWeek of 2026-05-17: +20,434 linesWeek of 2026-05-17: -2,486 linesWeek of 2026-05-24: +22,688 linesWeek of 2026-05-24: -1,365 linesWeek of 2026-05-31: +16,195 linesWeek of 2026-05-31: -1,779 linesWeek of 2026-06-07: +14,328 linesWeek of 2026-06-07: -3,462 linesWeek of 2026-06-14: +12,735 linesWeek of 2026-06-14: -1,139 linesWeek of 2026-06-21: +8,571 linesWeek of 2026-06-21: -471 linesWeek of 2026-06-28: +17,565 linesWeek of 2026-06-28: -1,346 linesWeek of 2026-07-05: +10,755 linesWeek of 2026-07-05: -1,277 linesWeek of 2026-07-12: +116,533 linesWeek of 2026-07-12: -37,562 linesWeek of 2026-07-19: +34,400 linesWeek of 2026-07-19: -14,159 linesWeek of 2026-07-26: +15,590 linesWeek of 2026-07-26: -1,495 linesWeek of 2026-08-02: +6,303 linesWeek of 2026-08-02: -1,202 linesWeek of 2026-08-09: +40,616 linesWeek of 2026-08-09: -75,965 linesWeek of 2026-08-16: +7,893 linesWeek of 2026-08-16: -6,549 linesWeek of 2026-08-23: +17,076 linesWeek of 2026-08-23: -2,485 linesWeek of 2026-08-30: +13,455 linesWeek of 2026-08-30: -2,747 linesWeek of 2026-09-06: +6,507 linesWeek of 2026-09-06: -1,346 linesWeek of 2026-09-13: +571 linesWeek of 2026-09-13: -386 linesWeek of 2026-09-20: +1,924 linesWeek of 2026-09-20: -239 linesWeek of 2026-09-27: +6,011 linesWeek of 2026-09-27: -586 linesWeek of 2026-10-04: +0 linesWeek of 2026-10-04: -0 linesFeb 1, 2026Oct 4, 2026
+853.6K lines added, -311.3K removed over the last year.

Commits per week

last 52 weeks
1990Week of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 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: 1 commitsWeek of 2026-02-08: 61 commitsWeek of 2026-02-15: 76 commitsWeek of 2026-02-22: 180 commitsWeek of 2026-03-01: 114 commitsWeek of 2026-03-08: 199 commitsWeek of 2026-03-15: 162 commitsWeek of 2026-03-22: 28 commitsWeek of 2026-03-29: 75 commitsWeek of 2026-04-05: 168 commitsWeek of 2026-04-12: 145 commitsWeek of 2026-04-19: 180 commitsWeek of 2026-04-26: 159 commitsWeek of 2026-05-03: 127 commitsWeek of 2026-05-10: 84 commitsWeek of 2026-05-17: 98 commitsWeek of 2026-05-24: 88 commitsWeek of 2026-05-31: 61 commitsWeek of 2026-06-07: 52 commitsWeek of 2026-06-14: 43 commitsWeek of 2026-06-21: 40 commitsWeek of 2026-06-28: 49 commitsWeek of 2026-07-05: 39 commitsWeek of 2026-07-12: 115 commitsWeek of 2026-07-19: 75 commitsWeek of 2026-07-26: 51 commitsWeek of 2026-08-02: 27 commitsWeek of 2026-08-09: 75 commitsWeek of 2026-08-16: 54 commitsWeek of 2026-08-23: 58 commitsWeek of 2026-08-30: 48 commitsWeek of 2026-09-06: 61 commitsWeek of 2026-09-13: 8 commitsWeek of 2026-09-20: 14 commitsWeek of 2026-09-27: 30 commitsWeek of 2026-10-04: 0 commitsOct 11, 2025Oct 4, 2026
2.8K commits in the last 52 weeks.

When work happens

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

Who is committing

last 52 weeks
Maintainer commits2,775 (70%)
Community commits1,176 (30%)

3,951 commits in total over the last year.

DateListRankStars gained
Apr 9, 2026daily#24+149
Apr 8, 2026daily#20+152
Apr 6, 2026daily#20+177
Apr 5, 2026daily#19+262
Apr 4, 2026daily#6+426
Apr 3, 2026daily#5+582
Apr 2, 2026daily#5+512
Apr 1, 2026daily#6+462
Mar 31, 2026daily#23+141
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

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

    391.3K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • microsoft/vscode

    Visual Studio Code

    193.5K stars · TypeScript

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript