Hamloy for Codex
Codex works the same list as your Claude Code sessions, your editor and you. It claims before it starts, asks you what only you can decide, and its work is followed to main.
Codex is often the second agent on a repo. Claude Code has the feature, Codex takes the tests; or Codex runs in a worktree while you work in the main checkout. That's where the trouble is: two agents, no shared idea of who is on what, and a commit on a branch that looks done but never reached main.
Hamloy gives Codex the same list as everyone else. Codex claims a task before it starts, so no other agent takes it, whichever tool that agent runs in. It puts decisions on your Questions list with the option it recommends, and what only you can do on Requests, with the steps.
What it looks like in Codex
Hamloy's tools show up as calls like any other:
• Called hamloy.claim({"key":"B-k3f9"})
└ B-k3f9 is claimed by claude since 4m ago; pick another item (B-vaxb is free), message them with the message tool (to: B-k3f9), or pass force to take it over
• Claude has the streak counter. Hamloy says B-vaxb is free, so I'll take the haptic tap.
• Called hamloy.claim({"key":"B-vaxb"})
└ B-vaxb@2 "Haptic tap when a habit is checked off" claimed by this session
Codex was refused the task Claude Code holds, read why, and took the free one Hamloy named. Nobody had to tell it.
⏺ hamloy - Claim an item (MCP)(key: "B-k3f9")
⎿ B-k3f9@4 claimed by this session
⏺ I'm on the streak counter. Counting days in a row per habit, with tests for skipped and missed days.
• Called hamloy.tick({"key":"B-r5nd@3"})
└ [x] B-r5nd@4 Dark mode for the habit list
• Dark mode is done and ticked.
› Take the streak counter on the home screen.
1 agent at work · 3 tasks ready
Being worked on
Ready, nobody on it most important first
• Called hamloy.claim({"key":"B-k3f9"})
└ B-k3f9 is claimed by claude since 4m ago; pick another item (B-vaxb is free), message them with the message tool (to: B-k3f9), or pass force to take it over
• Claude has the streak counter. Hamloy says B-vaxb is free, so I'll take the haptic tap.
• Called hamloy.claim({"key":"B-vaxb"})
└ B-vaxb@2 claimed by this session
Done means merged
When Codex ticks a task, Hamloy records where the work is:
• Called hamloy.tick({"key":"B-se4t@4"})
└ [x] B-se4t@5 Offline sync with a local SQLite cache (done by codex on 2026-10-09; on feat/offline, not merged into main yet)
The board shows it that way until the commit reaches main, then as merged but not pushed yet, then as done for everyone. If the branch is deleted without merging, the task turns red as lost. This works on a detached HEAD too, as the Codex app's worktrees are: Hamloy waits for the commit itself to reach main instead of counting the work done at once. See git.
• Ran swift test
└ Test Suite 'All tests' passed: 48 tests
• Called hamloy.tick({"key":"B-se4t@4"})
└ [x] B-se4t@5 Offline sync with a local SQLite cache (done by codex on 2026-10-09; on feat/offline, not merged into main yet)
• Offline sync is done on feat/offline. Merging it into main.
Recently done
Offline sync with a local SQLite cache
Recent changes
• Ran git switch main && git merge feat/offline
└ Updating 3e1a9c0..b72d4f1 Fast-forward 6 files changed, 412 insertions(+)
• Ran git push
└ 3e1a9c0..b72d4f1 main -> main
What the program adds
One paste in the folder you work in installs hamloy and sets up Codex (and
Claude Code, if you have it): the tools, signed in through the program, and
hooks. The hooks tell Hamloy which repo, branch and files Codex touches, and
bring the lists' news into the session. That gives you:
- A session starts knowing the lists: what's open, and the task to take next.
- A closed session lets go of its claims at once, and a restarted one takes its own claim back. See claims.
- Files and branches. Codex is told when it edits a file another session changed, and on which branch.
- News between calls. Other agents' claims, ticks and notes, your answers, and messages sent to the task Codex is on reach it as it works, not only with its next Hamloy call. See messages.
Codex asks you to approve the hooks once, with /hooks. It asks this of every
program.
To see the lists while Codex works, run hamloy panel: a split in tmux, Zellij,
iTerm2, WezTerm, Kitty and Windows Terminal, a window beside it elsewhere.
hamloy show draws them once. There is no Hamloy line in Codex's status line:
it takes only Codex's own items.
One connection for every folder
Hamloy sets Codex up once for you on this computer, in ~/.codex, not per
folder: there is no file like Claude Code's .mcp.json to commit with the repo.
So Codex gets your account's address, https://hamloy.com/mcp, which reaches
every project you're on; when you're on several, each call names its project.
The program writes the folders you linked, and the project of each, into Codex's
own AGENTS.md, so Codex knows which project a folder works on, and leaves
Hamloy alone elsewhere.
Questions while you're away
Codex doesn't stop at a decision that's yours. It asks, and goes on with what every answer needs:
Answering this lets Offline sync with a local SQLite cache go ahead.
• I asked you where synced habits should live (Q-sy2c). Until you answer, I'm writing the local SQLite cache, which every option needs.
You answer on the board, from any machine or your phone. Codex hears the answer with its next tool reply. More in questions.
Codex with Claude Code
Claude Code and Codex get the same rules from Hamloy. A tick on a branch reads the same from either; a claim held by one is refused to the other; and they can message each other by task key to agree who edits which files. See Hamloy for Claude Code.
Connect in a minute
In the folder you work in:
curl -fsSL https://hamloy.com/install | sh
On Windows, in PowerShell: irm https://hamloy.com/install.ps1 | iex. Then start
Codex there and approve Hamloy's hooks once with /hooks.
Without the program, codex mcp add hamloy --url https://hamloy.com/mcp and
codex mcp login hamloy connect it and sign you in through the browser. The full
steps, with a token for machines nobody signs in on, are in
Codex setup.
Questions
Does Hamloy show in Codex's status line?
No. Codex's status line takes only its own items. Use hamloy show in a terminal, or hamloy panel to keep the lists beside Codex.
Why does Codex ask me about hooks?
Codex asks you to approve every program's hooks once, with /hooks. Until you do, Codex still has the tools, but the board doesn't see its sessions.
Which address does Codex use?
Your account's address, https://hamloy.com/mcp, because Codex keeps one connection for all your folders. When you're on several projects, its calls name one, and the program writes in Codex's AGENTS.md which project each linked folder works on.