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
近 7 天 5
22.2
生态多维模型
3 个月前
2026-05-04
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["vibe-island-opencode@1.0.2"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["vibe-island-opencode@1.0.2"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D vibe-island-opencodeopencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
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