---
title: Hamloy for Codex
description: One to-do list for Codex and every other agent on your repo. Codex claims a task before it starts, asks you with options, and follows its work through git.
url: https://hamloy.com/for/codex
---

[For your AI](https://hamloy.com/for)

# 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.

_Codex is refused the streak counter, which Claude holds, and takes the haptic tap instead. Claude Code or Codex, the claim holds._

## 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](https://hamloy.com/docs/git).

_Codex merges its branch, then pushes. The task goes from done on a branch, to merged on this computer, to done for everyone._

## 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](https://hamloy.com/docs/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](https://hamloy.com/docs/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:

You answer on the board, from any machine or your phone. Codex hears the answer with its next tool reply. More in [questions](https://hamloy.com/docs/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](https://hamloy.com/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](https://hamloy.com/docs/codex).

## 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.
