GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - yaadata/codex.nvim: Bringing an agnostic coding harness experience to neovim (Codex, Claude Code, Pi and Opencode) . READ ONLY MIRROR (see README.md)

BranchesTags
Open more actions menu

Latest commit

 

History

230 Commits
230 Commits

Folders and files

NameName
Last commit message
Last commit date
.forgejo
.forgejo
 
 
.github/workflows
.github/workflows
 
 
doc
doc
 
 
images
images
 
 
lua/codex
lua/codex
 
 
plans
plans
 
 
plugin
plugin
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.luarc.json
.luarc.json
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
.stylua.toml
.stylua.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
justfile
justfile
 
 
logo.svg
logo.svg
 
 
mise.toml
mise.toml
 
 
selene.toml
selene.toml
 
 
selene_std.yml
selene_std.yml
 
 

Repository files navigation

codex.nvim logo

CODEX.NVIM

Bringing Coding Harness' to Neovim

pi within neovim session codex within neovim session

Primary home: Codeberg Mirrored on GitHub

✨ Features

  • 🧩 Compose workflows with session, input, prompt-builder, and log APIs.
  • 🔌 Use codex.builtin for agent-specific mentions, slash commands, skills, and resume flows.
  • 🌱 Use the native terminal provider or snacks, lazy-load on commands, and configure terminal-local keymaps.
  • 📚 Use :help codex.nvim for configuration, commands, and keymap examples.

Requirements

  • Neovim >= 0.12.0
  • codex available on your PATH (or configure launch.cmd)

Caution

You are reading the main branch README. Install details may differ from tagged releases. The current v2 beta release tag is 2.0.0-beta.2. For version-accurate instructions, read the README for your target tag from Codeberg releases.

Install

{
  url = "https://codeberg.org/yaadata/codex.nvim.git",
  version = "2.0.0-beta.2",
  lazy = false,
  cmd = {
    "Codex",
    "CodexFocus",
    "CodexTeardown",
    "CodexClearInput",
    "CodexSendSelection",
    "CodexSendFile",
    "CodexMentionFile",
    "CodexMentionDirectory",
  },
  opts = {},
  config = function(_, opts)
    require("codex").setup(opts)
  end,
}

This configuration supports :Lazy reload codex.nvim. Reload closes any active Codex terminal.

Configuration

Use this as a quick-reference setup example. For full behavior notes and the complete user-facing reference, see :help codex.nvim.

-- codex.Config
-- :help codex-nvim-config
require("codex").setup({

  -- codex.LaunchConfig
  -- :help codex-nvim-launch
  launch = {
    cmd = "codex", -- executable to launch
    args = {}, -- extra CLI args
    env = {}, -- extra environment variables
    auto_start = true, -- open a session after setup
    cwd = nil, -- nil = current Neovim working directory
  },

  -- codex.TerminalConfig
  -- :help codex-nvim-terminal
  terminal = {
    provider = "auto", -- prefer snacks when available, otherwise native
    auto_close = true, -- close after the Codex process exits

    -- codex.StartupConfig
    startup = {
      timeout_ms = 2000,
      retry_interval_ms = 50,
      grace_ms = 800,
    },

    -- codex.TerminalKeymapConfig
    -- :help codex-nvim-keymaps
    keymaps = {},

    -- Split sizes are reapplied on editor resize; fixed width/height is
    -- preserved when other splits open or close, subject to available space.
    -- codex.ProviderOptsConfig
    provider_opts = {
      -- codex.NativeProviderOpts
      native = {
        window = "vsplit",
        -- codex.VsplitConfig
        vsplit = {
          side = "right",
          size_pct = 40, -- shared with Snacks left/right splits
        },
        -- codex.HsplitConfig
        hsplit = {
          side = "bottom",
          size_pct = 30, -- shared with Snacks top/bottom splits
        },
        -- codex.FloatConfig
        float = {
          width_pct = 80,
          height_pct = 80,
          border = "rounded",
          title = " Codex ",
          title_pos = "center",
        },
      },
      snacks = {}, -- snacks.terminal(..., opts) pass-through
    },
  },

  -- codex.LogConfig
  -- :help codex-nvim-log
  log = {
    level = "warn",
    verbose = false,
  },

  -- codex.HooksConfig
  -- :help codex-nvim-hooks
  hooks = {
    on_setup = nil,
    on_terminal_open = nil,
    on_terminal_restore = nil,
    on_terminal_close = nil,
  },
})

Usage

Common entry points:

  • :Codex toggles the terminal; :Codex! opens and focuses it.
  • :CodexSendSelection sends the active visual selection.
  • :CodexSendFile sends the current buffer as an ACP file reference.
  • :CodexMentionFile [path] and :CodexMentionDirectory [path] send /mention.

For Lua workflows, use require("codex") for session, input, prompt_builder, and logs. Use require("codex.builtin") for agent-specific workflows.

Example:

local prompt = require("codex").prompt_builder
prompt.clear()
prompt.add("Review this file: ")
local ok, err = prompt.add_file()
if not ok then
  vim.notify(err, vim.log.levels.ERROR)
  return
end
prompt.send() -- paste the draft without pressing Enter

Open :help codex.nvim for configuration, commands, and keymaps. If help is missing after a raw install, run :helptags {path-to-codex.nvim}/doc. Plugin managers usually generate tags automatically.

Developer Docs

  • doc/architecture.md
  • doc/contributing.md
  • doc/troubleshooting.md

About

Bringing an agnostic coding harness experience to neovim (Codex, Claude Code, Pi and Opencode) . READ ONLY MIRROR (see README.md)

Topics

codexcodex-cliluaneovimneovim-plugin

Resources

Readme
Apache-2.0 license
Activity

Stars

7 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.