用opencode写代码的人,大概都经历过同一种烦躁:想删掉一个失效的API密钥,却发现官方根本没给删除按钮。
开发者@Blue-B的日常就是这样。他习惯把opencode当作主力终端编码工具,但密钥轮换后的清理工作成了心病。官方只提供两个选项——要么重新授权所有服务商,要么手动打开~/.local/share/opencode/auth.json用vim硬删,还得祈祷别碰坏那个该死的尾随逗号。他选了后者,重复了4次,终于决定自己动手。
成果是一个叫opencode-tui-utils的插件。安装后,在TUI里敲/disconnect,会弹出opencode原生的服务商选择器——和系统其他对话框用的是同一套组件,视觉上毫无割裂感。选中要断开的账号,确认,完成。整个过程不会暴露任何token值,只显示服务商名称和认证类型,录屏演示也不必担心泄露。
顺手做的还有3个命令。/lsp-toggle开关语言服务器,/websearch-toggle控制联网搜索,/tool-status查看当前启用的功能。这些切换命令会修改shell配置文件并提示重启,和opencode处理启动参数的方式保持一致。
为什么选择插件而非fork?opencode的插件机制足够轻量:把包丢进~/.config/opencode/tui.json的plugin字段,重启后斜杠命令就会出现在调色板里,和内置命令并排。不用维护分支,不用在版本更新时解决合并冲突。扩展也很机械化——共享的API封装和加载器已经就位,加第5个命令只是重复劳动。项目CONTRIBUTING.md里还列着"待认领的命令想法",等其他人补充。
代码托管在GitHub,npm可直接安装,MIT协议。灵感来自opencode的#10494号issue——有人提过这个断开流程的需求,但官方一直没做。@Blue-B说欢迎反馈,特别是那些他没想到过的使用场景。
热门跟贴