diff --git a/.github/social-preview.png b/.github/social-preview.png new file mode 100644 index 0000000..46eedb7 Binary files /dev/null and b/.github/social-preview.png differ diff --git a/.github/social-preview.svg b/.github/social-preview.svg new file mode 100644 index 0000000..a51c8f1 --- /dev/null +++ b/.github/social-preview.svg @@ -0,0 +1,82 @@ + + Codex CLI Launcher social preview + Unofficial VS Code extension that launches Codex CLI in a side terminal. + + + + + + + + + + + + + + + + + + + + + + + + + + + + UNOFFICIAL · OPEN SOURCE + + Codex CLI + Launcher + + One click. Fresh side terminal. Local CLI. + VS Code · Windows · macOS · Linux + + + + Editor → Terminal + + + + + + + + + + + project.ts — Visual Studio Code + + + 1 + + 2 + + 3 + + 4 + + + + + + + + CODEX CLI + + + ❯ codex + + + + + + + THESTREAMCODE / MIKESOFT + MIT LICENSE + + diff --git a/CHANGELOG.md b/CHANGELOG.md index 81d6ca0..9d23ba1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/CITATION.cff b/CITATION.cff index 66c0ca8..f1b80ea 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -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 diff --git a/README.md b/README.md index 050e301..fed7fab 100644 --- a/README.md +++ b/README.md @@ -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 @@ -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: @@ -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). diff --git a/package-lock.json b/package-lock.json index 21b8c3f..371c319 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-codex-cli-launcher", - "version": "0.1.9", + "version": "0.1.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vscode-codex-cli-launcher", - "version": "0.1.9", + "version": "0.1.10", "license": "MIT", "devDependencies": { "@types/node": "^22.20.1", diff --git a/package.json b/package.json index 01b9e3a..3e2ea78 100644 --- a/package.json +++ b/package.json @@ -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" diff --git a/test/metadata.test.js b/test/metadata.test.js index 8206cef..6493848 100644 --- a/test/metadata.test.js +++ b/test/metadata.test.js @@ -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'); @@ -88,6 +88,18 @@ 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, / { const readme = readText('README.md'); @@ -95,6 +107,13 @@ test('README covers setup, official installation docs, privacy, and affiliation 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); @@ -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/);