ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Codex

by yaroslavyaroslav ST4 Trending

Sublime Text frontend for OpenAI Codex

Details

Installs

  • Total 1K
  • Win 705
  • Mac 299
  • Linux 272
Sep 18 Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5 Sep 4 Sep 3 Sep 2 Sep 1 Aug 31 Aug 30 Aug 29 Aug 28 Aug 27 Aug 26 Aug 25 Aug 24 Aug 23 Aug 22 Aug 21 Aug 20 Aug 19 Aug 18 Aug 17 Aug 16 Aug 15 Aug 14 Aug 13 Aug 12 Aug 11 Aug 10 Aug 9 Aug 8 Aug 7 Aug 6 Aug 5
Windows 3 3 4 0 0 1 1 1 2 2 2 0 0 2 2 0 1 0 0 0 2 1 2 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 2
Mac 2 7 10 11 0 1 2 3 6 6 0 1 1 0 1 0 2 1 2 4 0 1 1 0 1 0 2 0 1 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 0
Linux 0 0 1 0 0 0 5 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1

Readme

Source
raw.​githubusercontent.​com

Codex Sublime Text plug-in

Chat with the Codex CLI directly from Sublime Text. The plug-in spins up a codex proto subprocess, shows the conversation in a Markdown panel and lets you execute three simple commands from the Command Palette.


Features

  • Full Codex capabilities
    • Assistant-to-Bash interaction
    • Sandboxing (on macOS and Linux)
    • Model and provider selection
  • MCP support (via ~/.codex/config.toml)1
  • Deep Sublime Text integration
    • Multiline input field uses Markdown
    • Selected text is auto-copied into the message with syntax applied
    • Outputs to either the output panel or a separate tab
    • Symbol list included in answers
  • Works out of the box[2].

Installation

  1. Install the Codex CLI (the plug-in talks to the CLI, it is not bundled).
npm i -g @openai/codex

On Windows you can use

winget install OpenAI.Codex

By default the plug-in uses “which(codex)”

If yours lives somewhere else, set the codex_path setting (see below). It accepts either a single string (e.g. "codex.exe" when Codex is installed natively on Windows) or an array of strings – e.g.:

Error: language “jsonc” is not supported
{
  "codex_path": ["wsl", "-e", "codex"],
}
  1. Plugin installation

    1. With Package Control Package Control: Install PackageCodex
    2. Manual Clone / download into your Packages folder (e.g. ~/Library/Application Support/Sublime Text/Packages/Codex).
  2. Optionally create an OpenAI token and tell the plug-in about it.

Open the menuPreferences › Package Settings › Codex and put your key into the generated Codex.sublime-settings file:

Error: language “jsonc” is not supported
{
       "token": "sk-…"
   }

That’s it – hit ⌘⇧P / Ctrl ⇧ P, type Codex, select one of the commands and start chatting.


Commands (⌘⇧P)

Codex: Prompt – open a small Markdown panel, type a prompt, hit Super+Enter.

Codex: Open Transcript – open the conversation buffer in a normal tab.

Codex: Reset Chat – stop the Codex subprocess, clear the transcript and invalidate the stored session_id so the next prompt starts a brand-new session.


Per-project configuration

Every Sublime project can override Codex settings under the usual settings section. Example:

Error: language “jsonc” is not supported
{
    "folders": [{ "path": "." }],

    "settings": {
        "codex": {
            // will be filled automatically – delete or set null to reset
            "session_id": null,

            // model & provider options
            "model":            "o3",
            "provider_name":    "openai",
            "base_url":         "https://api.openai.com/v1",
            "wire_api":         "responses",
            "approval_policy":  "on-failure",

            // sandbox
            "sandbox_mode": "read-only",
            "permissions": [
                // additional writable paths (project folders are added automatically)
                "/Users/me/tmp-extra"
            ]
            ,
            // Auto-fold specific sections in the transcript by their header
            // name (case-insensitive). You can pass a string or a list.
            // Example: fold the model's internal reasoning block
            // (rendered as "## agent_reasoning").
            "fold_sections": ["agent_reasoning"]
        }
    }
}

Writable paths passed to Codex

The plug-in constructs the sandbox_policy.permissions list for each session:

  1. /private/tmp
  2. cwd – the first project folder (or the current working directory if there is none)
  3. All folders listed in the Sublime project (visible in the sidebar)
  4. Any extra paths you add via settings.codex.permissions

Those paths are sent to the CLI unchanged; Codex is free to read/write inside them depending on the selected sandbox_mode.


Default configuration sent to the CLI

The first thing the bridge does is send a configure_session message:

Error: language “jsonc” is not supported
{
    "id": "<session_id>",
    "op": {
        "type": "configure_session",

        // model / provider
        "model":            "codex-mini-latest",
        "approval_policy":  "on-failure",
        "provider": {
            "name":     "openai",
            "base_url": "https://api.openai.com/v1",
            "wire_api": "responses",
            "env_key":  "OPENAI_API_KEY"
        },

        // sandbox
        "sandbox_policy": {
            "permissions": [
                "disk-full-read-access",
                "disk-write-cwd",
                "disk-write-platform-global-temp-folder",
                "disk-write-platform-user-temp-folder",
                {
                    "disk-write-folder": {"folder": "$HOME/.cache"} // for clangd cache
                }
            ],
            "mode": "workspace-write"
        },

        "cwd": "<cwd>"
    }
}

All values can be overridden per-project as shown above.

Enjoy hacking with Codex inside Sublime Text! 🚀

Code sent to the language model

The plugin only sends the code snippets that you explicitly type or select in the input panel to the language model. It never uploads your entire file, buffer, or project automatically. Local configuration (such as sandbox permissions or project folders) is used only by the CLI to enforce file I/O rules and is not included in the prompt context.

However keep in mind that since this plugin and tool it relays on is agentish, any data from within your sandbox area could be sent to a server.

Suppressing noisy events

If the Codex backend floods the transcript with incremental updates such as agent_reasoning_delta, add them to the suppress_events array in your project-specific codex settings:

Error: language “jsonc” is not supported
{
  "suppress_events": ["agent_reasoning_delta"]
}

Auto-folding sections

You can tell the transcript to auto-fold certain sections by header name. The match is case-insensitive and can be configured globally or per-project.

  • Global (Preferences ▸ Package Settings ▸ Codex ▸ Settings):
Error: language “jsonc” is not supported
{
    // ... other settings ...
    "fold_sections": ["agent_reasoning"]
  }
  • Per project (.sublime-project under settings.codex):
Error: language “jsonc” is not supported
{
    "settings": {
      "codex": {
        "fold_sections": ["agent_reasoning"]
      }
    }
  }

Notes - Folding is scope-based and targets the Markdown meta.section for that header. Only the section body is folded, so the header line shows with an inline ellipsis (row style), e.g.: ## agent_reasoning .... - The fold is applied right after the section is appended. If your syntax definition delays section scopes, the plugin waits briefly to target the correct section.

[2]: If both requirements are met (1) codex is installed and (2) token in settings is provided.