Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/social-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
82 changes: 82 additions & 0 deletions .github/social-preview.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,21 @@

## [Unreleased]

## 0.1.10 - 2026-08-08

### Fixed

- Recognized PowerShell commands that use the `&` call operator with a quoted Codex executable path, while continuing to send the configured command to the shell unchanged.

### Added

- Added a deterministic GitHub social preview and regression checks for its dimensions, affiliation wording, and repository-only packaging.

### Changed

- Documented shell-specific Windows command examples and explicit signed-tag creation and verification steps for future releases.
- Refined the GitHub and Marketplace presentation with clearer installation paths, a concise trust model, an explicit compatibility matrix, and less prominent cross-promotion.
- Removed unverified Cursor and Windsurf compatibility claims from Marketplace metadata.

### Security

Expand Down
3 changes: 2 additions & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ authors:
- family-names: Gasperini
given-names: Michael
url: "https://github.com/TheStreamCode/codex-cli-launcher"
version: "0.1.9"
version: "0.1.10"
date-released: "2026-08-08"
license: MIT
74 changes: 47 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,43 +5,65 @@
[![Open VSX](https://img.shields.io/open-vsx/v/mikesoft/vscode-codex-cli-launcher?label=Open%20VSX&color=a60ee5)](https://open-vsx.org/extension/mikesoft/vscode-codex-cli-launcher)
[![CI](https://github.com/TheStreamCode/codex-cli-launcher/actions/workflows/ci.yml/badge.svg)](https://github.com/TheStreamCode/codex-cli-launcher/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Sponsor](https://img.shields.io/badge/Sponsor-TheStreamCode-ea4aaa?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/TheStreamCode)

Codex CLI Launcher is an unofficial VS Code extension that opens OpenAI Codex CLI in a new side terminal directly from the editor toolbar.
Launch OpenAI Codex CLI in a fresh side terminal directly from the VS Code editor toolbar.

Works on Windows, macOS, and Linux where Codex CLI is available to the integrated terminal.
[**Install from Visual Studio Marketplace**](https://marketplace.visualstudio.com/items?itemName=mikesoft.vscode-codex-cli-launcher) · [**Install from Open VSX**](https://open-vsx.org/extension/mikesoft/vscode-codex-cli-launcher)

Current release: `0.1.9`.
Latest GitHub release: [`v0.1.10`](https://github.com/TheStreamCode/codex-cli-launcher/releases/tag/v0.1.10)

> **Disclaimer**
> This extension is unofficial and is not affiliated with, endorsed by, sponsored by, or approved by OpenAI. "OpenAI", "Codex", and related names are trademarks of their respective owners.
Codex CLI Launcher is a small, unofficial VS Code extension for developers who already use Codex CLI and want a predictable one-click launcher inside the editor. It works on Windows, macOS, and Linux wherever `codex` is available to the integrated terminal.

> **✨ Want one launcher for every agent?** Try **[Super CLI](https://marketplace.visualstudio.com/items?itemName=mikesoft.vscode-super-cli)** — a single sidebar that launches Claude Code, Codex, Copilot, Cursor, Grok, Kilo, Antigravity, OpenCode, and more. Install this launcher for Codex alone, or Super CLI for the whole set.
> **Unofficial project:** This extension is not affiliated with, endorsed by, sponsored by, or approved by OpenAI. "OpenAI", "Codex", and related names are trademarks of their respective owners.

## Features

- Adds a launcher button to the editor title area
- Uses local Marketplace and toolbar artwork packaged with the extension
- Opens a fresh terminal beside the active editor on every launch
- Uses the active editor workspace when available, with a fallback to the first open workspace folder
- Runs a configurable Codex CLI command
- Launch Codex CLI from the editor title with one click
- Open a fresh side terminal for every launch instead of reusing existing sessions
- Start in the active editor's workspace, with a predictable fallback for multi-root windows
- Configure the launch command and terminal name without repository-controlled overrides
- Links to the official Codex CLI installation documentation when the default `codex` command is not available
- Supports quoted Windows executable paths, including PowerShell's call operator
- Does not collect telemetry, analytics, or personal data

## Requirements
## Quick Start

- VS Code `^1.103.0`
- Codex CLI available in the integrated terminal environment, or a working custom launch command configured in settings
1. Install Codex CLI using the [official Codex CLI documentation](https://learn.chatgpt.com/docs/codex/cli).
2. Install Codex CLI Launcher from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=mikesoft.vscode-codex-cli-launcher) or [Open VSX](https://open-vsx.org/extension/mikesoft/vscode-codex-cli-launcher).
3. Open a file in a trusted workspace.
4. Click the launcher button in the editor title.

## Installation
VS Code users can also install the extension from a terminal:

1. Install the extension from the VS Code Marketplace.
2. Install Codex CLI by following the [official Codex CLI installation documentation](https://learn.chatgpt.com/docs/codex/cli).
3. Open any file in VS Code.
4. Click the launcher button in the editor title.
```bash
code --install-extension mikesoft.vscode-codex-cli-launcher
```

## Trust and Privacy

- The launcher is disabled until the workspace is trusted.
- The CLI command is machine-scoped and cannot be supplied by a repository.
- The extension never downloads Codex CLI, generates installer scripts, or runs package-manager installation commands.
- Shell-output capture is bounded and used only to recognize a missing default `codex` command. Output from custom commands is not read.
- No telemetry, analytics, or personal data is collected.
- All extension artwork is packaged in the VSIX; no external images are loaded at runtime.

See [SECURITY.md](SECURITY.md) and the [architecture documentation](docs/architecture.md) for the maintained trust boundaries.

## Compatibility

Any equivalent install or launch method that makes `codex` available in your terminal also works.
| Environment | Status |
| --- | --- |
| VS Code `^1.103.0` | Supported and covered by the minimum-version integration test |
| Windows | Supported and validated in CI |
| Linux | Supported and validated in CI |
| macOS | Supported; not currently included in the CI matrix |
| Other VS Code-compatible editors | May work when they provide the required VS Code APIs, but are not part of the supported test matrix |

## Requirements

- VS Code `^1.103.0`
- Codex CLI available in the integrated terminal environment, or a working custom launch command configured in settings

## Missing CLI

Expand Down Expand Up @@ -106,12 +128,6 @@ Quote executable paths that contain spaces. In PowerShell, use its call operator

The launcher prefers the workspace folder of the active editor. To control where Codex starts in a multi-root window, open a file from the target workspace before clicking the toolbar button.

## Privacy

Codex CLI Launcher does not collect telemetry, analytics, or personal data.

All extension artwork is packaged locally in the VSIX. No external image assets are loaded at runtime.

## Development

Local verification and packaging:
Expand All @@ -137,6 +153,10 @@ Open a [GitHub issue](https://github.com/TheStreamCode/codex-cli-launcher/issues

Financial support for the independent maintainer is available through GitHub Sponsors: [github.com/sponsors/TheStreamCode](https://github.com/sponsors/TheStreamCode).

## Related Project

Need one launcher for multiple coding agents? [Super CLI](https://marketplace.visualstudio.com/items?itemName=mikesoft.vscode-super-cli) provides a single sidebar for Codex, Claude Code, Copilot, Cursor, Grok, Kilo, Antigravity, OpenCode, and other agent CLIs.

## License

Released under the [MIT License](LICENSE).
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
"name": "vscode-codex-cli-launcher",
"private": true,
"displayName": "Codex CLI Launcher — Run OpenAI Codex in a Side Terminal",
"description": "Launch the OpenAI Codex AI coding agent in a side terminal from your editor toolbar. Unofficial; works in VS Code, Cursor & Windsurf on Windows, macOS & Linux.",
"description": "Launch the OpenAI Codex AI coding agent in a side terminal from the VS Code editor toolbar. Unofficial; uses your existing CLI setup on Windows, macOS, and Linux.",
"publisher": "mikesoft",
"version": "0.1.9",
"version": "0.1.10",
"repository": {
"type": "git",
"url": "https://github.com/TheStreamCode/codex-cli-launcher.git"
Expand Down
32 changes: 30 additions & 2 deletions test/metadata.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ test('package metadata is public-ready and clearly unofficial', () => {
assert.equal(packageJson.name, 'vscode-codex-cli-launcher');
assert.equal(packageJson.private, true);
assert.equal(packageJson.displayName, 'Codex CLI Launcher — Run OpenAI Codex in a Side Terminal');
assert.equal(packageJson.description, 'Launch the OpenAI Codex AI coding agent in a side terminal from your editor toolbar. Unofficial; works in VS Code, Cursor & Windsurf on Windows, macOS & Linux.');
assert.equal(packageJson.description, 'Launch the OpenAI Codex AI coding agent in a side terminal from the VS Code editor toolbar. Unofficial; uses your existing CLI setup on Windows, macOS, and Linux.');
assert.equal(packageJson.publisher, 'mikesoft');
assert.equal(packageJson.version, '0.1.9');
assert.equal(packageJson.version, '0.1.10');
assert.equal(packageJson.icon, 'media/icon.png');
assert.equal(packageJson.license, 'MIT');
assert.equal(packageJson.repository.url, 'https://github.com/TheStreamCode/codex-cli-launcher.git');
Expand Down Expand Up @@ -88,13 +88,32 @@ test('extension assets are packaged on expected paths', () => {
assert.ok(commandIcon.length > 0);
});

test('GitHub social preview is deterministic and repository-only', () => {
const socialPreview = readPngSize('.github/social-preview.png');
const socialPreviewSource = readText('.github/social-preview.svg');

assert.equal(socialPreview.width, 1280);
assert.equal(socialPreview.height, 640);
assert.match(socialPreviewSource, /UNOFFICIAL · OPEN SOURCE/);
assert.match(socialPreviewSource, /One click\. Fresh side terminal\. Local CLI\./);
assert.doesNotMatch(socialPreviewSource, /<image/i);
assert.doesNotMatch(socialPreviewSource, /openai/i);
});

test('README covers setup, official installation docs, privacy, and affiliation disclaimer', () => {
const readme = readText('README.md');

assert.match(readme, /^# Codex CLI Launcher$/m);
assert.match(readme, /unofficial VS Code extension/i);
assert.match(readme, /not affiliated with, endorsed by, sponsored by, or approved by OpenAI/i);
assert.match(readme, /## Features/);
assert.match(readme, /## Quick Start/);
assert.match(readme, /## Trust and Privacy/);
assert.match(readme, /## Compatibility/);
assert.match(readme, /Install from Visual Studio Marketplace/);
assert.match(readme, /Install from Open VSX/);
assert.match(readme, /machine-scoped and cannot be supplied by a repository/i);
assert.match(readme, /macOS \| Supported; not currently included in the CI matrix/);
assert.match(readme, /## Missing CLI/);
assert.match(readme, /https:\/\/learn\.chatgpt\.com\/docs\/codex\/cli/);
assert.match(readme, /does not download installers, create installation scripts, or run package-manager installation commands/i);
Expand Down Expand Up @@ -198,8 +217,17 @@ test('repository governance files provide structured contribution paths', () =>

test('changelog documents the initial release scope', () => {
const changelog = readText('CHANGELOG.md');
const citation = readText('CITATION.cff');
const readme = readText('README.md');
const packageLock = JSON.parse(readText('package-lock.json'));

assert.match(changelog, /^# Changelog$/m);
assert.match(changelog, /## 0\.1\.10 - 2026-08-08/);
assert.match(readme, /releases\/tag\/v0\.1\.10/);
assert.match(citation, /version: "0\.1\.10"/);
assert.match(citation, /date-released: "2026-08-08"/);
assert.equal(packageLock.version, '0.1.10');
assert.equal(packageLock.packages[''].version, '0.1.10');
assert.match(changelog, /## 0\.1\.9/);
assert.match(changelog, /launch-scoped listeners/);
assert.match(changelog, /## 0\.1\.8/);
Expand Down