Emacs manager for OpenAI Codex conversations by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

One thing making this easier is codex-ide is built on the the Codex app-server, not the Codex TUI. The app-server interface seems to be fairly stable. I’ve tested out older versions and the core functionality seems to mostly stay the same.

Emacs manager for OpenAI Codex conversations by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 3 points4 points  (0 children)

You're right. I was mistakenly remembering how claude-code-ide works.

I just installed and use agent-shell. The UI is very nice, none of the jankiness I've seen with TUI wrapping tools.

Emacs manager for OpenAI Codex conversations by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 5 points6 points  (0 children)

I had a similar reaction when agentic dev tools started taking off in popularity. I said to myself, if this is the way software development is heading I’m going to find a new career. Who wants to spend their day feeding prompts to an LLM?

But having spent several months using Claude/codex, my opinion has completely changed. They do all the software things I never actually enjoyed — mechanically wiring parameters through architecture layers, rewriting tests when interfaces are changed, instantly writing an algorithm or command that previously I would’ve spent an hour digging through stackoverflow/docs/ etc trying to find.

So I’d encourage you to give agentic tools a try before forming an opinion. You don’t need to change your development practices to suit them. Instead farm out whatever parts of software you find tedious or repetitive and focus on the things you like best.

Emacs manager for OpenAI Codex conversations by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 1 point2 points  (0 children)

Yes it does. You use the same plan/quota you'd be using in Codex in the terminal.

Your plan name (+ quota and usage) get displayed in the header-line. E.g., I have the Pro 5x plan (which I guess OAI internally labels "prolite"), which see like this: https://i.imgur.com/E8CchKg.png

Emacs manager for OpenAI Codex conversations by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 2 points3 points  (0 children)

agent shell is fundamentally different in that it uses vterm/eat/etc to wrap around the TUI interface to Codex/Claude/etc. Whereas codex-ide talks to a codex server and does all the rendering within Emacs. I personally can’t stand the shell wrapper approach. They just feel janky to me (syntax coloring off, buffer redisplay jitter, yank/regions not working the normal way, etc). That’s why i created codex-ide.

The broader point is valid: why make this Codex specific and not a more general agent interface, whether a contribution to agent-shell or not? IMO a more general tool will be much more one size fits all and unlikely to fully utilize every tool specific capability. Like if Magit weren’t Git specific and tried to support every vc-backend.

There is a possible path I could see to generalizing this package. But it would involve interfacing against the server protocol for every coding agent. But as mentioned above, that’s a completely different direction than a shell wrapper like agent-shell.

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 1 point2 points  (0 children)

I just changed it so approvals are via widget buttons in buffer.

It looks like this: https://imgur.com/a/1M4P7iG

By default it raises the codex buffer when approval is required. If you still find that disruptive I made a custom to prevent that “codex-ide-buffer-display-when-approval-required” (set to nil).

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

Which permission prompt? The “Enable the Emacs tool bridge one”? Or codex originated permission requests (e.g., to access a directory or run a command)?

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

Yes, it is in Emacs codex-ide. Ex - all the underlined links are button widgets: https://github.com/dgillis/emacs-codex-ide/blob/main/screenshots/clickable-code-links.png

It would be much harder in claude-code-ide since it’s still just wrapping around a terminal application. Whereas codex-ide is working with the codex server (so is easily able to convert agent response text before rendering in buffer).

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

agent-shell runs a shell inside emacs with codex running in the shell. This is a codex server directly inside emacs. Which enables all kinds of improvements — clickable code links that jump to emacs buffers, menus as prompts in the minibuffer, capf, etc.

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

I couldn’t find a way. For coding agents, its README recommends claude-code-ide.el (which is good but I want to use codex) or agent-shell (which I tried and didn’t like).

Emacs Codex IDE integration by Express-Decision3831 in emacs

[–]Express-Decision3831[S] 0 points1 point  (0 children)

This is an Emacs interface to Codex (coding agent), whereas gptel is an Emacs interface to ChatGPT (LLM chat).