vibe-island-opencodeOpenCode plugin for Vibe Island (vibeisland.app) — forwards session events to the macOS notch app via TCP (SSH remote) or Unix socket
0
18
5 in 7 days
22.2
Multi-signal model
3 months ago
2026-05-04
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["vibe-island-opencode@1.0.2"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["vibe-island-opencode@1.0.2"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D vibe-island-opencodeopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
OpenCode plugin for Vibe Island — the macOS app that lives in your notch and monitors AI coding sessions in real time.
Vibe Island (vibeisland.app) is a native macOS app that shows your AI agent's activity directly in the notch: session status, tool calls, permissions, and more. This plugin bridges OpenCode to Vibe Island.
Supports local (Unix socket) and remote (TCP via SSH reverse tunnel) connections.
Features
- Full session lifecycle: start, busy/idle tracking, stop
- Tool execution tracking (PreToolUse / PostToolUse)
- Permission request interception (blocking — reply from Vibe Island UI)
- Automatic connection: TCP first (for SSH remote), Unix socket fallback (for local)
- Rate-limit retry awareness
- Session error handling (abort → immediate Stop)
Installation
Quick install (recommended)
curl -fsSL https://raw.githubusercontent.com/arkan/vibe-island-opencode/main/install.sh | bash
Manual install
git clone https://github.com/arkan/vibe-island-opencode.git /tmp/vi-oc
mkdir -p ~/.config/opencode/plugins
cp /tmp/vi-oc/index.js ~/.config/opencode/plugins/vibe-island-opencode.js
Then add to ~/.config/opencode/opencode.json:
{
"plugin": [
"file:///home/YOUR_USER/.config/opencode/plugins/vibe-island-opencode.js"
]
}
npm install
npm install -g vibe-island-opencode
# Then run the installer:
bash <(npm root -g)/vibe-island-opencode/install.sh
Or add the npm package directly to opencode.json:
{
"plugin": ["vibe-island-opencode@latest"]
}
How it works
OpenCode (VPS) Vibe Island (Mac)
┌──────────────────────┐ SSH -R ┌─────────────────────────┐
│ Plugin (index.js) │──► TCP 17891─┼──► Listener :17891 ───► │
│ │ tunnel │ Notch UI │
└──────────────────────┘ └─────────────────────────┘
- Vibe Island on the Mac creates a reverse SSH tunnel:
ssh -R 17891:127.0.0.1:17891 user@vps - The plugin connects to
127.0.0.1:17891on the VPS - Data flows through the SSH tunnel back to Vibe Island on the Mac
- When running locally, the plugin falls back to the Unix socket
Configuration
| Env var | Default | Description |
|---|---|---|
VIBE_ISLAND_HOST |
127.0.0.1 |
TCP host for remote connections |
VIBE_ISLAND_PORT |
17891 |
TCP port for remote connections |
VIBE_ISLAND_TIMEOUT |
3000 |
Connection timeout in ms |
Event mapping
| OpenCode event | Vibe Island event |
|---|---|
session.created |
SessionStart |
session.deleted |
SessionEnd |
session.status {busy} |
UserPromptSubmit |
session.status {idle} |
Stop |
session.status {retry} |
Notification |
session.error |
Stop |
session.idle |
Stop |
message.part.updated (tool) |
PreToolUse / PostToolUse |
permission.asked |
PermissionRequest (blocking) |
License
MIT