codex-ide 
- Description
- Run Codex CLI in a terminal
- Latest
- codex-ide-0.1.3.tar (.sig), 2026-Sep-05, 570 KiB
- Maintainer
- Thanos Apollo <public@thanosapollo.org>
- Website
- https://git.thanosapollo.org/emacs-codex-ide
- Browse ELPA's repository
- CGit or Gitweb
- All Dependencies
- compat (.tar), keymap-popup (.tar), eat (.tar)
- Badge
To install this package from Emacs, use package-install or list-packages.
Full description
1. Codex IDE integration for GNU Emacs
1.1. About
- codex native integration for Emacs via Eat by default
- Run Codex in a project-scoped terminal buffer.
- Optionally use vterm when it is installed separately.
- Resume, switch, cycle, and stop multiple live Codex sessions.
- Optional IDE context provider and local Emacs MCP tools bridge.
- Requires Emacs 29.1 or newer.
1.2. Commands
| Command | Purpose |
|---|---|
M-x codex-ide |
Start or toggle the active project session (C-u starts another) |
M-x codex-ide-new-session |
Start another live session for the project |
M-x codex-ide-resume-last |
codex resume --last |
M-x codex-ide-resume |
Pick a saved session id, then codex resume <id> |
M-x codex-ide-stop |
Stop only the active project session |
M-x codex-ide-toggle |
Cycle live project sessions |
M-x codex-ide-list-project-sessions |
Switch among project sessions |
M-x codex-ide-list-sessions |
Switch among any live sessions |
M-x codex-ide-send-prompt |
Send a minibuffer prompt into the active session |
M-x codex-ide-menu |
Popup menu (sessions, config, MCP, debug) |
1.3. Saved sessions
codex-ide-resume-session-scan-limitlimits matching unique sessions offered by the picker (default 200), after filtering by project.- If the project has no saved sessions, the picker offers other projects.
- Metadata lines larger than one MiB produce an explicit error.
1.4. Terminal scrolling
- With Eat,
C-c C-eenters its read-only Emacs mode for ordinary scrolling, movement, search, and selection. - With vterm, use
M-x vterm-copy-modefor transcript navigation. C-c C-jrestores terminal input and jumps to the live Codex frame with either backend.
1.5. Context provider
- With
codex-ide-context-auto-startnon-nil (default), new sessions enable the IDE context IPC automatically. - Disable with
(setq codex-ide-context-auto-start nil).
1.6. MCP tools
- Supports stateless MCP
2026-07-28requests and the2025-06-18initialization flow for existing clients, on the same endpoint. - Modern clients can discover capabilities with
server/discoveror call tools directly, with protocol metadata and matching routing headers. - When
codex-ide-mcp-enabledis non-nil (default), session start registers a transient local MCP URL via Codex-coverrides. - The bridge can evaluate Elisp, edit buffers, and run shell commands. It exposes those control tools by default and only accepts loopback bind addresses.
- Commands:
codex-ide-mcp-start,codex-ide-mcp-stop,codex-ide-mcp-status,codex-ide-mcp-install-codex-config. - Structured edits require an explicit
buffername or open filepath. Supplied tool arguments must match their advertised types; for example, positions are integers andindentis a JSON boolean. - Default port is ephemeral (
codex-ide-mcp-port0). Persistent Codex config only stays reliable with a fixed port. - Disable auto registration with
(setq codex-ide-mcp-enabled nil).
1.7. Useful knobs
| Variable | Default intent |
|---|---|
codex-ide-cli-path |
Codex executable |
codex-ide-terminal-backend |
eat; optionally set to vterm |
codex-ide-ask-for-approval |
Optional --ask-for-approval policy |
codex-ide-cli-extra-args |
Extra CLI args |
codex-ide-no-alt-screen |
Inline TUI mode |
codex-ide-yolo |
Full control without approvals or sandbox |
codex-ide-mcp-enabled |
Auto-register local MCP bridge |
codex-ide-mcp-port |
0 = ephemeral port |
codex-ide-context-auto-start |
Auto-start context IPC |
codex-ide-debug |
Debug logging |
Menu Save configuration persists the documented symbol set only (CLI/terminal/display/approval/YOLO/no-alt-screen/extra-args/config-overrides/ debug/MCP host-port-enable/context-auto-start).
1.8. Optional vterm backend
Install vterm separately, then select it for new sessions:
(use-package vterm :ensure t) (setq codex-ide-terminal-backend 'vterm)
Eat remains a required dependency and the default. Changing the option does not alter already running sessions.
1.9. Changelog
See NEWS.org for release notes.
1.10. Installation
- Emacs 29.1 using
package-vc-install
(unless (package-installed-p 'codex-ide)
(package-vc-install
'(codex-ide :url "https://git.thanosapollo.org/emacs-codex-ide"
:lisp-dir "lisp")))
- Emacs 30 or newer using
use-package :vc
(use-package codex-ide
:vc (:url "https://git.thanosapollo.org/emacs-codex-ide"
:lisp-dir "lisp"
:rev :newest))
- Using
straight.el
(straight-use-package
'(codex-ide :type git
:host nil
:repo "https://git.thanosapollo.org/emacs-codex-ide"
:files ("lisp/*.el" "LICENSE")))
Old versions
| codex-ide-0.1.2.tar.lz | 2026-Sep-02 | 85.1 KiB |
| codex-ide-0.1.1.tar.lz | 2026-Aug-13 | 80.9 KiB |
News
1. Version 0.1.3 (2026-09-04)
- Validate supplied MCP argument types before invoking tools, and require an explicit buffer or path for structured edits.
- Support stateless MCP 2026-07-28 while preserving legacy initialization.
- Roll back structured MCP edits when editing or indentation fails.
- Avoid leaking output buffers for empty MCP execution requests.
- Read complete rollout metadata up to one MiB and report oversized lines.
- Apply the resume limit to matching sessions, so unrelated activity does not hide older project sessions; collect timestamps once before sorting.
2. Version 0.1.2 (2026-09-02)
2.1. Sessions
- Use concise project-based buffer names and add stable root identities only when equal basenames collide.
- Preserve session ownership across recovery, replacement, and cleanup paths.
2.2. MCP and permissions
- Restore the full local MCP control tool set and add YOLO mode.
- Harden MCP and session lifecycle cleanup.
2.3. Menu
- Present boolean options as popup switches.
3. Version 0.1.1 (2026-08-13)
3.1. Terminal backends
- Added optional vterm support. Eat remains the default and required terminal backend.
- Kept terminal process ownership and session cleanup consistent across backends.
3.2. Packaging
- Raised the minimum supported Emacs version to 29.1.
- Added package autoload generation and validation to the Nix package.
- Added package-lint to the project release gates.
3.3. MCP and context
- Restricted the local MCP server to loopback bind addresses.
- Fixed MCP endpoint URLs for the IPv6 loopback address.
- Documented compatibility with current and legacy Codex context IPC paths.