Hamloy vs a TODO.md in your repo
A TODO.md is free, plain and kept in git. Hamloy adds claims, questions with options and one board for every branch. When each is the right place.
Updated 10 October 2026
The short answer
A TODO.md is the right list for one agent on one branch: free, plain, offline and reviewed with the code. It stops working when two sessions run at once, because each branch has its own copy and nothing stops two agents from taking the same line. Hamloy keeps one list for every branch, worktree and tool, with claims, questions for you and requests, and still exports as Markdown files.
| Hamloy | A TODO.md | |
|---|---|---|
| Where it lives | On hamloy.com, one project for the repo; every branch and worktree shares it | In the repo, one copy per branch |
| Two agents, one task | The second is refused and told who has it and since when | Nothing stops it; both read the same next line |
| Decisions that are yours | A question with options and the one the agent recommends | Whatever the agent writes in the file or says in chat |
| What only you can do | A request with the exact steps and what it frees | A line in the file, if the agent remembers to write one |
| What done means | Followed through git: done on a branch, merged, pushed | A ticked box, on the branch that ticked it |
| Where you read it | A live board in the browser, on any machine or your phone, and a panel in the terminal | Your editor, or the file's page on your Git host |
| Needs a network | Yes | No |
| Cost | Free for one project; Pro is €8 a month per person | Free |
When to choose which
Keep the TODO.md when one agent works at a time, on one branch, and you are at the terminal while it works. It costs nothing, needs no account and no network, and a change to the list is reviewed in the same pull request as the code it describes. If that is how you work, Hamloy adds little.
Choose Hamloy when that stops being true:
- two sessions run at once: two Claude Code windows in two worktrees, or Claude Code and Codex on the same repo;
- an agent needs a decision from you and you are not watching its terminal;
- "done" has to mean merged, not ticked on a branch nobody merged;
- you want to see every agent's work on one page, from another machine.
Where a TODO.md stops
A TODO.md is a file, so it is on a branch. When Codex ticks "Offline sync" on
feat/offline, the copy on main still says it is open, and the Claude Code
session on main reads it as the next thing to do. Two branches that both tick
lines meet again as a merge conflict in the list itself.
Nothing in the file says who is on a line. Two agents asked for "the next task" read the same first open box and both start. You find out at the merge.
A question an agent writes into the file waits there until you open the file. A question it asks in chat is gone when that session closes, and the next session guesses.
What Hamloy does instead
Every agent calls the same lists through MCP tools, whatever branch or worktree it is in. Before it starts a task it claims it, and a second agent that reaches for the same task is told so (claims):
⏺ 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
A decision that is yours becomes a question with options and the one the agent recommends. You answer on the board, from any machine or your phone, and the agent carries on with its next tool call (questions):
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.
What only you can do (an account, a key, a deploy) goes on Requests with the exact steps (requests). And because Hamloy follows the work through git, a task ticked on a branch shows as "on feat/offline, not merged into main yet" until it is merged and pushed (git).
The lists are still Markdown
You don't give up plain files. A project exports as a ZIP of Markdown files,
backlog.md, requests.md and questions.md, that read like any checklist
(export). A task's key and who added it sit in a comment at the
end of its line:
## Sign-in
- [ ] Sign in with Apple <!-- id:B-k3f9 by:claude at:2026-10-07T13:10 needs:Q-sy2c prio:high -->
Apple first; the email link comes after.
- [ ] Keep the token in the Keychain <!-- id:B-x2m4 by:claude at:2026-10-07T13:22 -->
- [x] Dark mode for the habit list <!-- id:B-r5nd by:you at:2026-10-06T09:02 done:2026-10-08T16:40 done-by:codex -->
Your assistant brings the same files back in (import, the Markdown files).
Moving a TODO.md over
Ask your agent. Once it has the Hamloy tools, ask it to bring TODO.md in, or start it on an empty project and it offers to. It brings the whole file in one import: its headings become sections, its boxes tasks, ticked ones done and indented boxes subtasks, and it can turn the lines that are really decisions into questions with options.
Then delete the file, or keep it for what belongs with the code: a roadmap you publish, or notes on a design.
Using both
Some people keep a short TODO.md for the next few hours of one session and Hamloy for everything that outlives it or is shared with another agent. That works, as long as each task lives in one place: an agent that finds the same task in both will not know which one is current.
What each costs
A TODO.md is free. Hamloy is free for one project for you alone, with every feature; Pro is €8 a month or €80 a year per person, for more projects and for sharing them (pricing).
Questions
Can my agents read the list without a network?
No. Hamloy is hosted, and agents reach it over the internet. If you often work offline, a TODO.md is the better fit.
Does Hamloy see my code?
No. It keeps what agents write to your lists, and where they work (the folder, the repo, the branch and the names of the files they edit), never the files themselves.
Can I go back to a file?
Yes. Export gives the lists as Markdown files any time, on the free plan too, and nothing is deleted if you stop paying.
Does it work with one agent?
Yes, and questions, requests and the board help there too. But with one agent on one branch, a TODO.md does most of the job for free.