NonGNU ELPA - codex-ide

codex-ide Atom Feed

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-limit limits 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-e enters its read-only Emacs mode for ordinary scrolling, movement, search, and selection.
  • With vterm, use M-x vterm-copy-mode for transcript navigation.
  • C-c C-j restores terminal input and jumps to the live Codex frame with either backend.

1.5. Context provider

  • With codex-ide-context-auto-start non-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-28 requests and the 2025-06-18 initialization flow for existing clients, on the same endpoint.
  • Modern clients can discover capabilities with server/discover or call tools directly, with protocol metadata and matching routing headers.
  • When codex-ide-mcp-enabled is non-nil (default), session start registers a transient local MCP URL via Codex -c overrides.
  • 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 buffer name or open file path. Supplied tool arguments must match their advertised types; for example, positions are integers and indent is a JSON boolean.
  • Default port is ephemeral (codex-ide-mcp-port 0). 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.lz2026-Sep-0285.1 KiB
codex-ide-0.1.1.tar.lz2026-Aug-1380.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.