Package Control

The Sublime Text package directory, reinvigorated.

OpenAI completion

First class Sublime Text AI assistant with gpt-5, Opus 4.6, Gemini 3 and ollama support!

AugJulJunMayAprMarFebJan Dec2025 NovOctSep 2026-W39 | installs: 108 | removals: 80 | upgrades: 1,409 2026-W39 | installs: 108 | removals: 80 | upgrades: 1,409 2026-W39 | installs: 108 | removals: 80 | upgrades: 1,409 2026-W38 | installs: 47 | removals: 18 | upgrades: 61 2026-W38 | installs: 47 | removals: 18 | upgrades: 61 2026-W38 | installs: 47 | removals: 18 | upgrades: 61 2026-W37 | installs: 44 | removals: 16 | upgrades: 120 2026-W37 | installs: 44 | removals: 16 | upgrades: 120 2026-W37 | installs: 44 | removals: 16 | upgrades: 120 2026-W36 | installs: 43 | removals: 27 | upgrades: 148 2026-W36 | installs: 43 | removals: 27 | upgrades: 148 2026-W36 | installs: 43 | removals: 27 | upgrades: 148 2026-W35 | installs: 43 | removals: 23 | upgrades: 179 2026-W35 | installs: 43 | removals: 23 | upgrades: 179 2026-W35 | installs: 43 | removals: 23 | upgrades: 179 2026-W34 | installs: 48 | removals: 18 | upgrades: 266 2026-W34 | installs: 48 | removals: 18 | upgrades: 266 2026-W34 | installs: 48 | removals: 18 | upgrades: 266 2026-W33 | installs: 42 | removals: 20 | upgrades: 413 2026-W33 | installs: 42 | removals: 20 | upgrades: 413 2026-W33 | installs: 42 | removals: 20 | upgrades: 413 2026-W32 | installs: 54 | removals: 48 | upgrades: 1,249 2026-W32 | installs: 54 | removals: 48 | upgrades: 1,249 2026-W32 | installs: 54 | removals: 48 | upgrades: 1,249 2026-W31 | installs: 68 | removals: 28 | upgrades: 177 2026-W31 | installs: 68 | removals: 28 | upgrades: 177 2026-W31 | installs: 68 | removals: 28 | upgrades: 177 2026-W30 | installs: 56 | removals: 16 | upgrades: 13 2026-W30 | installs: 56 | removals: 16 | upgrades: 13 2026-W30 | installs: 56 | removals: 16 | upgrades: 13 2026-W29 | installs: 69 | removals: 35 | upgrades: 17 2026-W29 | installs: 69 | removals: 35 | upgrades: 17 2026-W29 | installs: 69 | removals: 35 | upgrades: 17 2026-W28 | installs: 59 | removals: 22 | upgrades: 20 2026-W28 | installs: 59 | removals: 22 | upgrades: 20 2026-W28 | installs: 59 | removals: 22 | upgrades: 20 2026-W27 | installs: 63 | removals: 31 | upgrades: 17 2026-W27 | installs: 63 | removals: 31 | upgrades: 17 2026-W27 | installs: 63 | removals: 31 | upgrades: 17 2026-W26 | installs: 70 | removals: 34 | upgrades: 19 2026-W26 | installs: 70 | removals: 34 | upgrades: 19 2026-W26 | installs: 70 | removals: 34 | upgrades: 19 2026-W25 | installs: 64 | removals: 26 | upgrades: 21 2026-W25 | installs: 64 | removals: 26 | upgrades: 21 2026-W25 | installs: 64 | removals: 26 | upgrades: 21 2026-W24 | installs: 81 | removals: 38 | upgrades: 31 2026-W24 | installs: 81 | removals: 38 | upgrades: 31 2026-W24 | installs: 81 | removals: 38 | upgrades: 31 2026-W23 | installs: 59 | removals: 26 | upgrades: 22 2026-W23 | installs: 59 | removals: 26 | upgrades: 22 2026-W23 | installs: 59 | removals: 26 | upgrades: 22 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W22 | installs: 0 | removals: 0 | upgrades: 0 2026-W21 | installs: 82 | removals: 34 | upgrades: 28 2026-W21 | installs: 82 | removals: 34 | upgrades: 28 2026-W21 | installs: 82 | removals: 34 | upgrades: 28 2026-W20 | installs: 91 | removals: 38 | upgrades: 39 2026-W20 | installs: 91 | removals: 38 | upgrades: 39 2026-W20 | installs: 91 | removals: 38 | upgrades: 39 2026-W19 | installs: 77 | removals: 46 | upgrades: 36 2026-W19 | installs: 77 | removals: 46 | upgrades: 36 2026-W19 | installs: 77 | removals: 46 | upgrades: 36 2026-W18 | installs: 97 | removals: 56 | upgrades: 41 2026-W18 | installs: 97 | removals: 56 | upgrades: 41 2026-W18 | installs: 97 | removals: 56 | upgrades: 41 2026-W17 | installs: 93 | removals: 35 | upgrades: 66 2026-W17 | installs: 93 | removals: 35 | upgrades: 66 2026-W17 | installs: 93 | removals: 35 | upgrades: 66 2026-W16 | installs: 80 | removals: 33 | upgrades: 102 2026-W16 | installs: 80 | removals: 33 | upgrades: 102 2026-W16 | installs: 80 | removals: 33 | upgrades: 102 2026-W15 | installs: 77 | removals: 26 | upgrades: 130 2026-W15 | installs: 77 | removals: 26 | upgrades: 130 2026-W15 | installs: 77 | removals: 26 | upgrades: 130 2026-W14 | installs: 84 | removals: 41 | upgrades: 149 2026-W14 | installs: 84 | removals: 41 | upgrades: 149 2026-W14 | installs: 84 | removals: 41 | upgrades: 149 2026-W13 | installs: 100 | removals: 44 | upgrades: 403 2026-W13 | installs: 100 | removals: 44 | upgrades: 403 2026-W13 | installs: 100 | removals: 44 | upgrades: 403 2026-W12 | installs: 99 | removals: 50 | upgrades: 1,030 2026-W12 | installs: 99 | removals: 50 | upgrades: 1,030 2026-W12 | installs: 99 | removals: 50 | upgrades: 1,030 2026-W11 | installs: 87 | removals: 32 | upgrades: 367 2026-W11 | installs: 87 | removals: 32 | upgrades: 367 2026-W11 | installs: 87 | removals: 32 | upgrades: 367 2026-W10 | installs: 79 | removals: 45 | upgrades: 3 2026-W10 | installs: 79 | removals: 45 | upgrades: 3 2026-W10 | installs: 79 | removals: 45 | upgrades: 3 2026-W09 | installs: 72 | removals: 29 | upgrades: 1 2026-W09 | installs: 72 | removals: 29 | upgrades: 1 2026-W09 | installs: 72 | removals: 29 | upgrades: 1 2026-W08 | installs: 67 | removals: 28 | upgrades: 2 2026-W08 | installs: 67 | removals: 28 | upgrades: 2 2026-W08 | installs: 67 | removals: 28 | upgrades: 2 2026-W07 | installs: 84 | removals: 38 | upgrades: 5 2026-W07 | installs: 84 | removals: 38 | upgrades: 5 2026-W07 | installs: 84 | removals: 38 | upgrades: 5 2026-W06 | installs: 83 | removals: 43 | upgrades: 3 2026-W06 | installs: 83 | removals: 43 | upgrades: 3 2026-W06 | installs: 83 | removals: 43 | upgrades: 3 2026-W05 | installs: 83 | removals: 36 | upgrades: 7 2026-W05 | installs: 83 | removals: 36 | upgrades: 7 2026-W05 | installs: 83 | removals: 36 | upgrades: 7 2026-W04 | installs: 79 | removals: 42 | upgrades: 6 2026-W04 | installs: 79 | removals: 42 | upgrades: 6 2026-W04 | installs: 79 | removals: 42 | upgrades: 6 2026-W03 | installs: 74 | removals: 34 | upgrades: 7 2026-W03 | installs: 74 | removals: 34 | upgrades: 7 2026-W03 | installs: 74 | removals: 34 | upgrades: 7 2026-W02 | installs: 73 | removals: 29 | upgrades: 2 2026-W02 | installs: 73 | removals: 29 | upgrades: 2 2026-W02 | installs: 73 | removals: 29 | upgrades: 2 2026-W01 | installs: 34 | removals: 14 | upgrades: 1 2026-W01 | installs: 34 | removals: 14 | upgrades: 1 2026-W01 | installs: 34 | removals: 14 | upgrades: 1 2025-W52 | installs: 54 | removals: 21 | upgrades: 1 2025-W52 | installs: 54 | removals: 21 | upgrades: 1 2025-W52 | installs: 54 | removals: 21 | upgrades: 1 2025-W51 | installs: 73 | removals: 31 | upgrades: 5 2025-W51 | installs: 73 | removals: 31 | upgrades: 5 2025-W51 | installs: 73 | removals: 31 | upgrades: 5 2025-W50 | installs: 85 | removals: 28 | upgrades: 3 2025-W50 | installs: 85 | removals: 28 | upgrades: 3 2025-W50 | installs: 85 | removals: 28 | upgrades: 3 2025-W49 | installs: 84 | removals: 31 | upgrades: 8 2025-W49 | installs: 84 | removals: 31 | upgrades: 8 2025-W49 | installs: 84 | removals: 31 | upgrades: 8 2025-W48 | installs: 76 | removals: 31 | upgrades: 6 2025-W48 | installs: 76 | removals: 31 | upgrades: 6 2025-W48 | installs: 76 | removals: 31 | upgrades: 6 2025-W47 | installs: 76 | removals: 36 | upgrades: 2 2025-W47 | installs: 76 | removals: 36 | upgrades: 2 2025-W47 | installs: 76 | removals: 36 | upgrades: 2 2025-W46 | installs: 65 | removals: 32 | upgrades: 4 2025-W46 | installs: 65 | removals: 32 | upgrades: 4 2025-W46 | installs: 65 | removals: 32 | upgrades: 4 2025-W45 | installs: 82 | removals: 25 | upgrades: 8 2025-W45 | installs: 82 | removals: 25 | upgrades: 8 2025-W45 | installs: 82 | removals: 25 | upgrades: 8 2025-W44 | installs: 64 | removals: 26 | upgrades: 10 2025-W44 | installs: 64 | removals: 26 | upgrades: 10 2025-W44 | installs: 64 | removals: 26 | upgrades: 10 2025-W43 | installs: 92 | removals: 38 | upgrades: 7 2025-W43 | installs: 92 | removals: 38 | upgrades: 7 2025-W43 | installs: 92 | removals: 38 | upgrades: 7 2025-W42 | installs: 94 | removals: 57 | upgrades: 9 2025-W42 | installs: 94 | removals: 57 | upgrades: 9 2025-W42 | installs: 94 | removals: 57 | upgrades: 9 2025-W41 | installs: 65 | removals: 29 | upgrades: 14 2025-W41 | installs: 65 | removals: 29 | upgrades: 14 2025-W41 | installs: 65 | removals: 29 | upgrades: 14 2025-W40 | installs: 60 | removals: 25 | upgrades: 9 2025-W40 | installs: 60 | removals: 25 | upgrades: 9 2025-W40 | installs: 60 | removals: 25 | upgrades: 9 2025-W39 | installs: 75 | removals: 39 | upgrades: 13 2025-W39 | installs: 75 | removals: 39 | upgrades: 13 2025-W39 | installs: 75 | removals: 39 | upgrades: 13 050100 WeeklyInstalls 01K2K WeeklyUpgrades 2026-09-23 | upgrades: 1,409 | 247 on that day 6.3.1 2026-W35 | upgrades: 179 6.3.0 2026-W32 | upgrades: 1,249 6.2.0 2026-W31 | upgrades: 177 6.1.0 2026-W11 | upgrades: 367 6.0.0
Installations: recent average 70 per week, 3,758 in the 53 weeks shown
Installations minus removals
Upgrades

Links

Versions

6.3.1 (>ST4204) ·
2026-09-23 10:39

6.1.0 (ST4050 - 4204) ·
2026-08-02 11:14

More

Star on GitHub Package Control

OpenAI Sublime Text Plugin

tldr;

Cursor level of AI assistance for Sublime Text. I mean it.

Works with OpenAI Responses, Anthropic Claude, Google Gemini and the whole zoo of OpenAI-compatible APIs: llama.cpp server, ollama or whatever third party LLM hosting you decided to trust today.

Features

Requirements

Package Control keeps Sublime Text builds 4050–4204 on the frozen 6.1.0 / Python 3.8-compatible release line.

Installation

Via Package Control

  1. Install the Sublime Text Package Control plugin if you haven't done this before.
  2. Open the command palette and type Package Control: Install Package.
  3. Type OpenAI and press Enter.

Via Git Clone

  1. Go to your packages folder: Preferences: Browse Packages.
  2. Run git clone https://github.com/yaroslavyaroslav/OpenAI-sublime-text.git OpenAI\ completion in that folder that Sublime opened.
  3. Open Sublime Text and let it installed the dependencies.
  4. It may ask you to restart Sublime, do that if it does.
  5. Open Sublime again and type OpenAI and press Enter.

Usage

Interacting with the AI

You can interact with the AI in several ways, primarily through commands available in the Sublime Text Command Palette:

  1. Select Text (Optional): You can select a region of text in your current file to be included as part of the context for your prompt.
  2. Choose Your Command:
    • OpenAI: Chat Model Select: This is the most flexible command. It opens a panel allowing you to:
      • Choose a specific "assistant" (which defines the model, API key, temperature, etc.).
      • Select an "output_mode" (inline Phantom or a chat View in a panel/new tab). This command automatically includes any files you've marked for context (see "Additional Request Context Management" below).
    • OpenAI: New Message: This command sends your input directly using the assistant and output mode that were last selected or are currently active. It's quicker if you're consistently using the same settings. This command also includes any files marked for context.
  3. Input Your Prompt: A multiline input panel will appear, allowing you to type your question or instruction for the AI.
    • Press Cmd+Enter on macOS or Ctrl+Enter on Windows/Linux to submit.
    • Press Esc to close the panel and keep the current draft for the next time you open it.
    • At the first row and first column, press Up to browse older submitted prompts. While browsing history, press Down to move toward newer prompts and eventually restore the draft you started with.
    • Pasting with Cmd+V or Ctrl+V wraps clipboard text in a Markdown code block.
  4. View Response:
    • The AI's response will typically appear in the OpenAI output panel.
    • If you chose "Phantom" mode (with OpenAI: Chat Model Select), the response will appear as an inline overlay.
    • You can switch to a dedicated tab for the chat using the OpenAI: Open in Tab command.

Including Build/LSP Output: For more specific contexts, especially when coding, you can use commands that automatically include output from Sublime Text's diagnostic panels:

These commands will append recent lines from the respective output panels (Build results or LSP diagnostics) to your request. The number of lines included can be configured with the build_output_limit setting in openAI.sublime-settings. This is useful for asking the AI to explain errors, debug code, or summarize diagnostics.

Managing Chat Sessions:

Chat section folding

Chat roles are rendered as hard-bounded Markdown sections such as Question, Selection, and Answer. Configure section names to fold automatically in openAI.sublime-settings; matching is case-insensitive and excludes the leading Markdown hashes:

{
    "fold_sections": ["Question", "Answer"]
}

Manual fold and unfold choices remain local to each chat view and survive subsequent streaming updates.

Chat history management

You can separate a chat history and assistant settings for a given project by appending the following snippet to its settings:

{
    "settings": {
        "ai_assistant": {
            "cache_prefix": "/absolute/path/to/project/"
        }
    }
}

Additional Request Context Management

You can include the content of specific files as context for the AI. Files marked for context will have their content sent along with your prompt. There are several ways to manage this:

Once files are added to the context:

Files can be deselected using the same methods (the commands effectively toggle the inclusion status).

Image handling

Image handle can be called by OpenAI: Handle Image command.

It expects an absolute path to image to be selected in a buffer or stored in clipboard on the command call (smth like /Users/username/Documents/Project/image.png). In addition command can be passed by input panel to proceed the image with special treatment. png and jpg images are only supported.

Note

Currently plugin expects the link or the list of links separated by a new line to be selected in buffer or stored in clipboard only.

In-buffer llm use case

Phantom use case

Phantom is the overlay UI placed inline in the editor view (see the picture below). It doesn't affects content of the view.

  1. [optional] Select some text to pass in context in to manipulate with.
  2. Pick Phantom as an output mode in quick panel OpenAI: Chat Model Select.
  3. After the AI responds, the phantom will display actions like:
    • [x] (Close): Dismisses the phantom.
    • Copy: Copies the AI's response (or just the code, if phantom_integrate_code_only is true) to the clipboard.
    • Append: Appends the AI's response to the end of your current selection in the editor (or at the cursor position if no selection).
    • Replace: Replaces your current selection with the AI's response.
    • In New Tab: Opens the AI's full response in a new tab.
    • Add to History: Saves the current interaction (your prompt and the AI's response) to the chat history panel/view.
  4. You can hit ctrl+c to stop prompting same as with in panel mode.

Other features

Open Source models support (llama.cpp, ollama)

  1. Replace "url" setting of a given model to point to whatever host you're server running on (e.g.http://localhost:8080/v1/chat/completions).
  2. Provide a "token" if your provider required one.
  3. Set "api_type": "plain_text" for older OpenAI-compatible hosts or "api_type": "open_ai" for modern chat-completions implementations.
  4. Tweak "chat_model" to a model of your choice and you're set.

Google Gemini models

  1. Set "url" to the Gemini API root: https://generativelanguage.googleapis.com/v1beta.
  2. Set "api_type": "google".
  3. Provide a "token" if your provider required one.
  4. Tweak "chat_model" to a model from the list of supported models.

OpenAI Responses API

  1. Set "url" to https://api.openai.com/v1/responses.
  2. Set "api_type": "open_ai_responses".
  3. Use an OpenAI Responses-capable model such as gpt-5.

Anthropic Claude models

  1. Set "url" to https://api.anthropic.com/v1/messages.
  2. Set "api_type": "anthropic".
  3. Provide your Anthropic API key as "token".
  4. Set "chat_model" to the Claude model you want to use.

Note

You can set both url and token either global or on per assistant instance basis, thus being capable to freely switching between closed source and open sourced models within a single session.

Settings

The OpenAI Completion plugin has a settings file where youcan set your OpenAI API key. This is required for the most of providers to work. To set your API key, open the settings with the Preferences: OpenAI Settings command and paste your API key in the token property, as follows: You can also access these settings and the default keybindings via the main menu: Preferences -> Package Settings -> OpenAI completion.

{
    "token": "sk-your-token",
}

Advertisement disabling

To disable advertisement you have to add "advertisement": false line into an assistant setting where you wish it to be disabled.

Key Bindings

You can create custom keybindings for OpenAI commands by adding entries to your user keymap file. Access this file via the Command Palette (Preferences: Key Bindings) or the main menu (Preferences -> Key Bindings). Sublime Text keybindings often use sequences, for example, pressing super+k (or ctrl+k on Windows/Linux) followed by another key.

Here are some examples to get you started:

1. New Message with current assistant (includes files marked for context):

{
    "keys": ["super+k", "m"], // macOS: Cmd+k, then m
    "command": "openai"
}

2. Open Chat Model Select panel (includes files marked for context):

{
    "keys": ["super+k", "super+m"], // macOS: Cmd+k, then Cmd+m
    "command": "openai_panel"
}

3. New Message with Build Output (using current assistant):

{
    "keys": ["super+k", "b"], // macOS: Cmd+k, then b
    "command": "openai",
    "args": { "build_output": true }
}

4. Toggle current file's inclusion in AI Context (matches "OpenAI: Add Sheets to Context" command):

{
    "keys": ["super+k", "c"], // macOS: Cmd+k, then c
    "command": "toggle_view_ai_context_included"
}

5. Show the AI Chat output panel:

{
    "keys": ["super+k", "p"], // macOS: Cmd+k, then p
    "command": "show_panel",
    "args": { "panel": "output.AI Chat" }
}

Proxy support

You can setup it up by overriding the proxy property in the OpenAI completion settings like follow:

"proxy": {
    "address": "127.0.0.1", // required
    "port": 9898, // required
    "username": "account",
    "password": "sOmEpAsSwOrD"
}

Development

Shared chat UI

Panel primitives and the fixed Chat Markdown syntax are vendored from the public sublime-chat-ui source repository. Edit that repository, then update this read-only subtree with:

./scripts/update_sublime_chat_ui.sh <ref>

Set SUBLIME_CHAT_UI_REPO to a local clone path to pull unpushed development branches.

Disclaimers

Warning

All selected code will be sent to the OpenAI servers (if not using custom API provider) for processing, so make sure you have all necessary permissions to do so.

Note

Dedicated to GPT3.5 that one the one who initially written at 80% of this back then. This was felt like a pure magic!

[^1]: PR's are welcome tho.

Results

Packages