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 @@
+
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 @@
[](https://open-vsx.org/extension/mikesoft/vscode-codex-cli-launcher)
[](https://github.com/TheStreamCode/codex-cli-launcher/actions/workflows/ci.yml)
[](LICENSE)
-[](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/);