Live data from Hacker News

Claude Code and Codex can have real-time conversation via Git

medium.com

81–90 of 95 posts

Re: Claude Code and Codex can have real-time conversation via Git

#81
post #56

Earlier quoted context omitted.

In theory it should merge well. The only actual newline is at the end of the physical line. Everything else is escaped in the JSON string.

But auto merge would have to decide the order when resolving and it can't do it without custom merge.

[dead]

Re: Claude Code and Codex can have real-time conversation via Git

#82

Claude can directly drive Codex or Codex can drive Claude. Both already produce logs. It's unclear what value this intermediary brings.

Fair criticism. I don’t think the value is just "agents can send text to each other”; that part has many implementaton and design choices. The value of h5i I’m exploring is making the intermediate state reviewable: review requests, risks, handoffs, unresolved claims, associated prompts and AI-to-Ai conveersation, and final decisions tied to the branch/PR.

Re: Claude Code and Codex can have real-time conversation via Git

#83

Related is Beads [0] which is an external memory and task based issue tracker. Also designed to allow agents to collaborate. I have not actually used Beads but since we are share basics in this space it's a cool one to know if you are looking at ways for agents to collaborate on more complex problems. 0 - https://github.com/gastownhall/beads

I used beads in its early days and it was good. Then Steve Yegge went off the multi-agent deep end and it became a mess of feature creep. Month old versions of beads databases needed massive updates and the system became more and more complex. Now I just use Github issues instead.

Heh, I used beads at first too. And I even tried his gastown earlier this year when he released it.

I'm seriously surprised he got as much traction as he did with those projects.

Beads was mostly fine at the beginning, but gastown was just a complete jank-stival

It almost never actually worked. The getting started never got you a project which was correctly configured - and if you did try to fix it... Well, it stopped working a few hours to days later when another vibe delivery crashed the party

Also, just keeping it open on idle - with no interactions - churned through the $100 subscription 5 hour session within roughly 2 hours. Just to reiterate: with no interactions beyond having the mayor open

I dimly remember someone mentioning that he used the users sessions to work on gastown itself. Dunno if that was true or fake news as that was just a random commentors claim - and I already moved on from that experiment by the time I read that.

Re: Claude Code and Codex can have real-time conversation via Git

#84
post #77

I really like this direction, I'm interested in more protocols and innovation aligned with human supervision and provenance. What else is out there on this topic?

What do you think of this: https://github.com/synadia-ai/synadia-agents

That sounds interesting too, very cool!

Re: Claude Code and Codex can have real-time conversation via Git

#87
The better way to do this is give them each an inbox and outbox folder and a user account on a Unix machine.

They can write to their outbox, have it be sent to the other's inbox. A watcher can watch for new messages in the inbox and trigger the other agent to read it. You can have the thread Id of the messages correspond to the session id.

We don't need to reinvent things that Unix provides.

Re: Claude Code and Codex can have real-time conversation via Git

#88

Earlier quoted context omitted.

This. I built a wrapper Tmux-cli to make this more reliable: https://pchalasani.github.io/claude-code-tools/tools/tmux-cl...

can this be used to launch subagents in tmux

Yes, it can be used to run any script in another pane, so it can spawn Claude or codex for example. Also see the Tmux-cli “launch” sub-command , it will create a new pane and run a command.

Re: Claude Code and Codex can have real-time conversation via Git

#89
I like this and think it's a great idea. Leveraging git makes a lot of sense (content addressed filesystem, efficient storage and sync protocol with pack files etc ..., widely deployed).

From a cursory look my impression is that it deviates from git too much and therefore I can't use my git knowledge to predict how it will behave. I'm quite rusty on git internals but afair .git/refs/ is great because you can do what you like in there but the downside is that it doesn't hook into the rest of the git structure.

So how does this work with branches, worktrees, etc...? Having a jsonl message log in .git/refs/h5i/msg seems very linear. Presumably you store commit refs in the json obj or context dag, but what if I rebase the branch and the original commits are dropped because they're not referenced anymore? Or say I follow the conversation and want to rewind a few messages and branch from there in a separate worktree, how does that work?

Your repo README does say:

- "It uses dedicated refs, so it doesn’t pollute your working tree or your normal branch graph."

- "Because these are Git objects, they are content-addressed, deduplicated, pushable, fetchable, and survive `git gc`."

- "Because the log lives in refs/h5i/msg, a conversation survives clones, machines, and branches — it travels with h5i share push / pull, and divergent sends from two machines union-merge with no message lost."

Therefore these look like design decisions and it would be nice to understand them better.

My first instinct would be to put most of what you have under .git/refs/h5i/ in a .h5i folder in the repo itself and manage some shadow branches under .git/heads/.h5i/ with multi-parent commits pointing at the context commit as well as the previous h5i message commit along with some hooks to handle rebases etc ... . That way battle hardened git machinery gets used and more importantly to me, I can leverage my existing git knowledge to understand dependencies. That would go against your "it doesn’t pollute your working tree or your normal branch graph" goal but I'm of the "explicit is better than implicit" Python school so I like to have the details exposed as long as I can filter them out easily (or by default).

Re: Claude Code and Codex can have real-time conversation via Git

#90

Claude can directly drive Codex or Codex can drive Claude. Both already produce logs. It's unclear what value this intermediary brings.

with ACP[0] they can control one another. [0] https://agentcommunicationprotocol.dev/introduction/welcome

This ACP has been rolled into A2A (https://a2a-protocol.org/ ) and shouldn’t be confused (it’s happened multiple times for me, again just now) with Agent CLIENT Protocol https://agentclientprotocol.com/
Post reply on HN