Skip to content

Commit fc36df5

Browse files
committed
Initial release: Super CLI — unified coding agent CLI launcher
One user-extensible VS Code extension that launches any coding agent CLI from a single sidebar and side terminal, across the VS Code family (VS Code, Cursor, Antigravity, Windsurf) on Windows, macOS, and Linux. - Sidebar view and quick-pick command to launch any configured agent in a native integrated terminal (shell integration with a sendText fallback). - Built-in presets: Claude Code, Codex, GitHub Copilot CLI, Gemini, Grok, Kilo, Antigravity. - User-extensible agent registry via the machine-scoped "superCli.agents" setting, with id-based overrides of the built-ins; workspace overrides are ignored for security. - Cross-platform missing-command detection with optional guided install. - Themed monochrome activity-bar icon and a full-color toolbar/Marketplace icon. - Unit + metadata + VS Code integration tests, and CI on Windows and Linux.
0 parents  commit fc36df5

26 files changed

Lines changed: 5612 additions & 0 deletions

.gitattributes

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Normalize line endings to LF in the repository for all text files.
2+
* text=auto eol=lf
3+
4+
# Treat binary assets as binary so Git never tries to normalize them.
5+
*.png binary
6+
*.vsix binary

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
check:
11+
strategy:
12+
matrix:
13+
os: [windows-latest, ubuntu-latest]
14+
15+
runs-on: ${{ matrix.os }}
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version: '22'
24+
cache: npm
25+
26+
- name: Install dependencies
27+
run: npm ci
28+
29+
- name: Start Xvfb (Ubuntu only)
30+
if: runner.os == 'Linux'
31+
run: |
32+
sudo apt-get update
33+
sudo apt-get install -y xvfb
34+
export DISPLAY=:99
35+
sudo Xvfb :99 -screen 0 1920x1080x24 > /dev/null 2>&1 &
36+
37+
- name: Verify
38+
run: npm run check
39+
env:
40+
DISPLAY: ':99.0'

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
node_modules/
2+
out/
3+
.vscode-test/
4+
.vsce/
5+
coverage/
6+
*.vsix
7+
*.log
8+
*.tsbuildinfo

.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Run Extension",
6+
"type": "extensionHost",
7+
"request": "launch",
8+
"args": [
9+
"--extensionDevelopmentPath=${workspaceFolder}"
10+
],
11+
"outFiles": [
12+
"${workspaceFolder}/out/**/*.js"
13+
],
14+
"preLaunchTask": "npm: compile"
15+
}
16+
]
17+
}

.vscode/tasks.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"type": "npm",
6+
"script": "compile",
7+
"label": "npm: compile",
8+
"problemMatcher": "$tsc",
9+
"group": "build"
10+
},
11+
{
12+
"type": "npm",
13+
"script": "watch",
14+
"label": "npm: watch",
15+
"problemMatcher": "$tsc-watch",
16+
"isBackground": true,
17+
"group": "build"
18+
}
19+
]
20+
}

.vscodeignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.github/**
2+
.vscode/**
3+
.vscode-test/**
4+
.vsce/**
5+
src/**
6+
test/**
7+
node_modules/**
8+
**/*.map
9+
**/*.ts
10+
.gitignore
11+
.vscodeignore
12+
tsconfig.json
13+
*.tsbuildinfo
14+
package-lock.json

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Changelog
2+
3+
All notable changes to this project are documented here. The format is based on
4+
[Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
5+
6+
## [0.1.0]
7+
8+
- Initial release.
9+
- Unified launcher for coding agent CLIs with a **Super CLI** sidebar view and a quick-pick command.
10+
- Built-in presets: Claude Code, Codex, GitHub Copilot CLI, Gemini, Grok, Kilo, Antigravity.
11+
- User-extensible agent registry via the `superCli.agents` setting, with id-based overrides of the
12+
built-ins.
13+
- Native integrated terminal launch with cross-platform missing-command detection and optional
14+
guided install.
15+
- Themed monochrome activity-bar icon and a full-color toolbar/Marketplace icon.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Michael Gasperini
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Super CLI
2+
3+
One VS Code extension to launch any coding agent CLI — **Claude Code, Codex, GitHub Copilot CLI,
4+
Gemini, Grok, Kilo, Antigravity, and your own** — from a single sidebar and a side terminal.
5+
6+
Works on Windows, macOS, and Linux, and across the VS Code family (VS Code, Cursor, Antigravity,
7+
Windsurf).
8+
9+
This extension is unofficial and is not affiliated with, endorsed by, or sponsored by Anthropic,
10+
OpenAI, GitHub, Google, or any other vendor.
11+
12+
## Features
13+
14+
- **One launcher for every agent.** A **Super CLI** view in the activity bar lists all configured
15+
agents; click one to open it in a terminal beside your editor. A toolbar button and the
16+
**Super CLI: Launch Coding Agent** command open a quick pick of the same list.
17+
- **Built-in presets.** Claude Code, Codex, GitHub Copilot CLI, Gemini, Grok, Kilo, and Antigravity
18+
are available out of the box.
19+
- **Add your own, no code required.** Define new agents in `settings.json`. The sidebar updates
20+
automatically.
21+
- **Native integrated terminal.** Each agent runs in a real VS Code terminal, inheriting your
22+
shell, `PATH`, and environment. No bundled emulator, no runtime dependencies.
23+
24+
## Adding or overriding an agent
25+
26+
Add agents through the `superCli.agents` setting. Each entry creates a new agent, or — when it
27+
reuses a built-in `id` — overrides that built-in (for example to point at a custom binary path).
28+
29+
```json
30+
"superCli.agents": [
31+
{
32+
"id": "my-agent",
33+
"label": "My Agent",
34+
"command": "my-agent",
35+
"icon": "rocket",
36+
"installCommand": "npm install -g my-agent",
37+
"autoInstall": false
38+
},
39+
{
40+
"id": "claude",
41+
"label": "Claude Code",
42+
"command": "\"C:\\Tools\\claude\\claude.exe\""
43+
}
44+
]
45+
```
46+
47+
- `id` — unique identifier; reuse a built-in id to override it.
48+
- `label` — name shown in the sidebar and quick pick.
49+
- `command` — the command that starts the CLI. On Windows, quote executable paths that contain
50+
spaces.
51+
- `icon` — optional [ThemeIcon](https://code.visualstudio.com/api/references/icons-in-labels) id,
52+
e.g. `sparkle` or `rocket`.
53+
- `installCommand` / `autoInstall` — optional; when the command is missing and `autoInstall` is
54+
`true`, the launcher offers a guided install after explicit confirmation.
55+
56+
Only the user (global) value of `superCli.agents` is used; workspace overrides are ignored so that
57+
an untrusted repository cannot inject commands.
58+
59+
## Configuration
60+
61+
| Setting | Default | Description |
62+
| --- | --- | --- |
63+
| `superCli.agents` | `[]` | Your agents (added to or overriding the built-ins). |
64+
| `superCli.useBuiltins` | `true` | Include the built-in agent presets. |
65+
| `superCli.terminalLocation` | `beside` | Open the terminal `beside` the editor or in the `panel`. |
66+
67+
Run **Super CLI: Open Settings** from the sidebar or the command palette to jump straight to these
68+
settings.
69+
70+
## Troubleshooting
71+
72+
- **"… could not be started."** The configured `command` was not found. Install the CLI, or fix the
73+
command in settings. The launcher uses the active editor's workspace folder as the working
74+
directory.
75+
- **Nothing happens on launch.** Make sure the workspace is trusted — the launcher is disabled in
76+
untrusted workspaces because it runs terminal commands.
77+
78+
## Privacy
79+
80+
This extension does not collect telemetry, analytics, or personal data. It only runs the commands
81+
you configure, in your own integrated terminal.
82+
83+
## Building
84+
85+
```bash
86+
npm install
87+
npm run check # compile + unit tests + VS Code integration smoke test
88+
npm run package # produce the .vsix
89+
```

media/icon.png

31.5 KB
Loading

0 commit comments

Comments
 (0)