nuOpenCode
A minimal VS Code extension that adds a flame icon button to the status bar — right next to the notification bell in the bottom-right corner. One click opens a terminal tab named OpenCode running the opencode CLI.
Features
| Feature |
Detail |
| Status bar button |
Flame icon ($(flame)) in the bottom-right status bar, next to the notification bell |
| OpenCode CLI terminal |
Opens in the editor area as a tab named OpenCode, running the opencode CLI |
| Reusable terminal |
Reuses the already-open OpenCode tab instead of spawning duplicates |
| Keyboard shortcut |
Ctrl+Alt+O (Cmd+Alt+O on macOS) |
Getting Started
Prerequisites
Clone & Install
git clone https://github.com/necdetuygur/nuOpenCode.git
cd nuOpenCode
pnpm install
Run in Development
# Start TypeScript in watch mode (in a separate terminal)
pnpm run watch
# Open VS Code Extension Development Host
# Then press F5 inside VS Code
A new VS Code window (Extension Development Host) will open with the extension active. Click the flame icon next to the notification bell in the bottom-right status bar or press Ctrl+Alt+O to launch an OpenCode terminal.
Build for Production
pnpm run compile
Package the Extension
pnpm run package
# Produces: nuopencode-1.0.0.vsix
Install the Packaged Extension
code --install-extension nuopencode-1.0.0.vsix
Total
code --uninstall-extension necdetuygur.nuopencode && pnpm run package && code --install-extension nuopencode-1.0.0.vsix
Keyboard Shortcut
| Key |
Action |
Ctrl+Alt+O |
Launch OpenCode terminal (Windows/Linux) |
Cmd+Alt+O |
Launch OpenCode terminal (macOS) |
How It Works
- The extension registers a command
nuopencode.openInEditor and activates once VS Code finishes starting (onStartupFinished), with the command/keybinding (onCommand) as an additional trigger.
- It creates a status bar item (aligned right) showing the flame icon
$(flame), placed next to the notification bell in the bottom-right corner.
- On click (or keybinding), it looks for an already-open terminal named
OpenCode. If one exists, it simply focuses it. Otherwise it calls vscode.window.createTerminal() with { name: "OpenCode", shellPath: "opencode", location: { viewColumn: ViewColumn.Active } }, so the terminal opens in the editor area — as a tab among your code windows — running the opencode CLI.
- The terminal tab is titled OpenCode, matching the active CLI session.
Project Structure
nuOpenCode/
├── src/extension.ts # Extension entry point
├── package.json # Extension manifest + contributions
├── tsconfig.json # TypeScript config
├── pnpm-lock.yaml # Locked dependencies
├── .vscode/
│ ├── launch.json # Debug launch config (F5)
│ └── tasks.json # Build/watch tasks
├── .gitignore
└── README.md
License
MIT