Asia/Shanghai
ProjectsMay 5, 2026

opencode-vibe-island-plugin

image
一个社区维护的 OpenCode 插件,让 Vibe Island 在你装了 oh-my-openagent 时,仍然能正确识别 OpenCode 会话。 OpenCode + oh-my-openagent + Vibe Island 同机使用时,会同时出问题:
  • OpenCode 会话被显示为 Claude —— oh-my-openagent 的 Claude-hook 兼容层在 OpenCode 内重跑了 vibe-island-bridge --source claude,把 OpenCode 会话标成了 Claude。
  • 点击 Ghostty 跳转失效 —— 这些误标的记录没有 tty,Vibe Island 不知道该跳回哪里。
  • 会话标题被污染 —— /save 这类 slash 命令被展开成长长的 <auto-slash-command> 块;图片输入留下 [Image 1] dashboard:... 占位。两者都直接成了 notch 标题。
  • 订阅 OpenCode 插件事件(session.*message.part.updatedpermission.*question.*)。
  • 通过 Vibe Island 的 Unix socket(~/.vibe-island/run/vibe-island.sock)发送事件,显式带上 source: "opencode"
  • 沿进程树定位 opencode attach 终端的真实 tty,让点击跳转能回到对应 Ghostty tab。
  • 在 prompt 变成标题前,过滤 <auto-slash-command> / <command-instruction> 块和 [Image N] 占位。
  • PermissionRequestAskUserQuestion 复用 held connection 模式,等 Vibe Island 决策后再 in-process 回复 OpenCode。
Bash
curl -fsSL https://raw.githubusercontent.com/nxxxsooo/opencode-vibe-island-plugin/main/plugin/vibe-island.js \
  -o ~/.config/opencode/plugins/vibe-island.js
~/.config/opencode/opencode.json 里把它列在 oh-my-openagent 之前:
Json
{
  "plugin": [
    "./plugins/vibe-island.js",
    "oh-my-openagent@latest"
  ]
}
再用 ~/.config/opencode/opencode-cc-plugin.json 阻止 Claude bridge 在 OpenCode 内重复触发:
Json
{
  "disabledHooks": {
    "PreToolUse":       ["vibe-island-bridge"],
    "PostToolUse":      ["vibe-island-bridge"],
    "UserPromptSubmit": ["vibe-island-bridge"],
    "Stop":             ["vibe-island-bridge"],
    "PreCompact":       ["vibe-island-bridge"]
  }
}
Bash
tail -f ~/Library/Logs/VibeIsland/vibe-island.log | grep 'recv event'
应该看到 source=opencode 而不是 source=claude,点击 Vibe Island 卡片能跳回 Ghostty。
不隶属于 Vibe Island。Vibe Island 是 Edward Luo / vibeisland.app 的产品。本仓库针对其文档化的 socket 协议做社区集成。

Related projects

Clean Design

Clean Design

A local-first visual creation studio for Apple Silicon Macs, powered by the AI tools you already use.
Codex Minus

Codex Minus

面向 macOS 与 Windows 的精简 Codex 管理工具:安全切换供应商,管理官方与自定义模型目录,并保护 OAuth 与 Context。
JumpOTP

JumpOTP

面向授权 SSH/JumpServer 会话的按需 TOTP 助手。仅在严格匹配提示后调用已解锁的 Bitwarden CLI,每条连接最多自动提交一次,并保留可见手输回退。
Codex Doubao Pets

Codex Doubao Pets

六个可以直接安装到 Codex Desktop 的豆包桌宠。用真实角色图完成选择,用一条 npm 命令完成安装。
loop

loop

一次显式触发,按产物就绪状态自动连接 deep-grill、deep-design 和 deep-build,持续推进到已确认规格或可验证结果。
Slash Saver

Slash Saver

一个只为物理斜杠键做一件事的原生 macOS 工具:在原始按键进入当前应用前,切到用户指定的 ASCII 输入源。
deep-grill

deep-grill

同一个 Agent Skill,用探索模式把原始想法变成已确认 Product Brief,用审查模式压力测试成形方案,并在普通回复中持续当前会话。
Mingjian AI Services

Mingjian AI Services

A focused collaboration entry for teams moving from AI ideas to working products, Agent systems, and operable business workflows.
opencode-sub2api-haiku-fix

opencode-sub2api-haiku-fix

A focused OpenCode plugin that fixes Claude Haiku extra-usage failures through Sub2API while preserving thinking and leaving Sub2API, OpenCode, and OMO untouched.
opencode-metrics

opencode-metrics

OpenCode TUI 的分会话侧边栏指标插件。按 sessionID 记录速度、TTFT、token、缓存、计时,只显示你当前 attach 的会话,而不是 serve 模式下的全局汇总。
opencode-plugin-fixes

opencode-plugin-fixes

Archived OpenCode guardrail experiment. The final source tree covers four narrow tool-call repairs; no npm package was ever published.
OpenCode Themes

OpenCode Themes

Terminal-inspired dark themes for Obsidian, Typora, and Ghostty, all synced to the official OpenCode TUI palette.
wechat-mp-publisher

wechat-mp-publisher

从个人公众号 Skill 到可公开安装的 npm 包:本地校验与沙箱预览在前,用户确认后只创建草稿。
SIGINT

SIGINT

已归档的内容情报实验:曾把小红书/抖音采集、AI 分析、n8n 编排与实时仪表盘接成一条完整链路。
MdictLive

MdictLive

Modern web reader for MDict dictionaries with React 19 SPA, dark mode, and faithful rendering.
SiliconLM

SiliconLM

Local LLM dashboard for Apple Silicon Macs, currently preserved without an active local deployment.
mdx2apple

mdx2apple

Convert MDict (.mdx/.mdd) dictionaries to macOS Apple Dictionary format with one command.