写插件codecraft
最近新看到一个神器planning-with-file:文件规划法,像 Manus 一样工作 ------这家人工智能代理公司被 Meta 以20 亿美元收购。
,
planning-with-files官网:[OthmanAdi/planning-with-files: Claude Code skill implementing Manus-style persistent markdown planning --- the workflow pattern behind the 2B acquisition.](https://github.com/OthmanAdi/planning-with-files "OthmanAdi/planning-with-files: Claude Code skill implementing Manus-style persistent markdown planning — the workflow pattern behind the 2B acquisition.")
可惜它只支持Claude Code
所以咱就用opencode为opencode写了一个类似planning-with-files文件规划法的插件codecraft,放在这里:codecraft:用opencode为opencode写了一个插件codecraft - AtomGit | GitCode
git remote add gitcode https://gitcode.com/skywalk163/codecraft
opencode的配置文件,windows下在这里:C:\Users\Admin\.config\opencode
即所在账户存储目录的.config\opencode目录下。
如果是linux,可能是
opencode写的挺快,但是怎么导入这个插件,颇费周折。
安装插件(导入插件)
安装
看安装手册,说用这种方法安装:
git clone https://gitcode.com/skywalk163/codecraft
cd codecraft
bun install
将文件复制到项目的.opencode目录或者全局的opencode配置目录。另外我不知道这个是并列的还是跟前面的bun install任选之一。按理说bun install之后,应该就不用手工再复制了。
# 复制到您的项目
cp src/index.ts .opencode/plugin/codecraft.ts
cp -r templates .opencode/
启动OpenCode碰到问题
启动opencode
opencode
不明白为什么是白屏,我应该安装codecraft之前先启动一下opencode试试的,那样就知道问题是否出在codecraft了。
去另外一台机器测试了一下,发现果然是插件导致的问题。其实是在3台机器进行了测试。
scp skywalk@192.168.0.13:/home/skywalk/.opencode/plugin/codeccraft.ts .
尝试让opencode解决这个问题,可以去把codecraft插件先弄掉,这样就能启动opencode了。以下是给opencode的prompt:
opencode run "codecraft插件导入到opencode后,opencode启动无响应(显示黑屏或者白屏,无输出),请解 决问题"
分别在两台机器windows和ubuntu上都尝试让opencode去解决。之所以第二台ubuntu解决后没留用,是发现它说把代码改简单了(多说一句话,现在AI也学会滑头了,如果问题解决不了,它就把问题"解决",企图蒙混过关。),那样我几乎要重新做这个项目,所以还是让第一台机器去解决。
第一台机器上的opencode崩的更彻底,直接用opencode run这个方法在第二台机器上是可以解决这样的问题的,但是这台机器上这条命令也是卡住。
所以最终是删除了opencode的所有配置文件,重新启动,然后再给它这个任务。具体见文档的调试部分。
opencode对问题的处理:
问题已识别。codecraft插件在初始化时尝试调用 client.app.log(),但这个API调用可能导致opencode挂起。我需要修复插件代码中的错误处理。
问题已修复!
现在让它安装插件
帮我安装codecraft插件
安装完成
帮我测试插件
手动测试插件
/codecraft plan --taskName "test" --objective "测试插件安装"
说实话,opencode写opencode的插件,逻辑上是有点绕的,尤其是opencode非常简洁,我根本无法判断opencode有没有导入codecraft插件。黑屏我知道是导入失败导致卡住,但是正常导入到底是个什么样子我不知道....
这个测试命令执行后也是输出一大堆,最后它说测试成功了,我是很懵的。不过看到它里面确实有创建三个文件:
-
.opencode/task_plan.md- 任务计划- 任务名称: test
- 目标: 测试插件安装
- 包含4个阶段和成功标准
-
.opencode/findings.md- 研究发现- 记录了插件安装分析
- 记录了OpenCode插件加载机制
- 包含问题、见解和建议
-
.opencode/progress.md- 进度日志- 记录了当前会话活动
- 包含时间线和统计数据
- 记录了遇到的错误和解决方案
这样大概上来说,这个插件确实导入成功,运行成功了。
CodeCraft插件生效机制:
- 默认生效 - 通过
opencode.json配置自动加载,无需手动调用 - 智能干预 - 在关键节点提供提醒,而非全程干预
暂时这个插件就先做到这里吧,感觉测试和评估是一大难题。
调试
用opencode跟其它人,或者说其它AI agent不一样,它算是唯二被我用崩的AI agent。另一个是Auto-Coder。 Auto-Coder那回是我的一个项目修改了python环境,导致基于python 的Auto-Coder领了便当。
OpenCode这回,是因为把给它安装了我写的插件(当然我只是监工,干活的还是OpenCode),结果这个插件把它搞崩了,OpenCode启动没有反应,显示黑屏或者白屏。黑色还是白色取决于所用终端的默认颜色。
解决的方法有两个,一、 把插件去掉,比如把插件名字从codeccraft.ts改成codeccraft.tsbak。二、直接让OpenCode使用opencode run指令来改进插件,修复问题,比如命令
opencode run "codecraft插件导入到opencode后,opencode启动无响应(显示黑屏或者白屏,无输出),请解 决问题"
另外还学了一招,就是可以开多个opencode窗口,一个负责写代码,一个负责调代码。一方面不用来回启动节省时间,另一方面就是万一环境崩了,还有一个能用的。
opencode启动无响应的问题(显示黑屏或者白屏,无输出)
是插件导致的,让opencode继续改bug 。
如果用opencode run "改bug" 还无法执行,那么可以去把插件先弄掉,我的方法是去吧插件改名
C:\Users\Admin\.config\opencode\plugin\codecraft.ts
# 改名成
C:\Users\Admin\.config\opencode\plugin\codecraft.tsbak
opencode启动显示报错ReferenceError: tool is not defined
报错信息
UnknownError
ReferenceError: tool is not defined
at <anonymous> (G:\opencode\.opencode\plugin\codecraft.ts:78:16)
at processTicksAndRejections (native:7:39)
提示:重启还是升级 ,当前版本Version: 1.1.13
看来这里也是一个放插件的地方:G:\opencode\.opencode\plugin\
因为另外一台机器已经做过升级,所以知道现在有新的版本,先升级看看,一直在Checking感觉好慢啊。等了很长时间,还是没有结束,重启,启动后同样的报错,看来需要把这个codecraft.ts文件也屏蔽了
把G:\opencode\.opencode\plugin\codecraft.ts改名为G:\opencode\.opencode\plugin\codecraft.tsbak,启动出现更多报错:
启动报错Something went wrong TypeError: Failed to fetch
TypeError: Failed to fetch
at customFetch (http://tauri.localhost/assets/index-DOiGjfJu.js:1705:31752)
at request (http://tauri.localhost/assets/index-DOiGjfJu.js:1705:6987)
at async retry (http://tauri.localhost/assets/index-DOiGjfJu.js:1705:32812)
at async Promise.all (index 3)
at async bootstrapInstance (http://tauri.localhost/assets/index-DOiGjfJu.js:1728:16349)
是不是因为升级一半,缺文件导致的?
重装
重装报错

晕,原来我还有一个opencode的命令行没关掉:
G:\opencode>e:\Programs\OpenCode\opencode-cli.exe
失策啊,如果早知道有这个活着的opencode,直接让它改插件代码就行了。
关掉之后重装就ok了。现在的问题是:
重装之后还是报错
还是这个Something went wrong TypeError: Failed to fetch 报错。
不过我还有一个npm的版本,它的报错是:
G:\opencode>opencode run "codecraft插件导入到opencode后,opencode启动无响应(显示黑屏或者白屏,无输出),请解决问题"
Error: Unexpected error, check log file at C:\Users\Admin\.local\share\opencode\log\2026-01-13T083643.log for more details
error: Cannot find module './chop-string.js' from 'C:\Users\Admin\.cache\opencode\node_modules\codecraft\src\index.js'
所以,我把C:\Users\Admin\.cache\opencode\ 全删掉试试吧
果然在这个目录的package.json文件里看到
{
"dependencies": {
"codecraft": "1.0.2"
}
}
应该跟这个有关系。删除这个文件,不管用。删除整个目录,还是不管用。
删除C:\Users\Admin\.config\opencode 目录里的文件,不管用。
删除G:\opencode\.opencode 目录里的文件,天啊,ok了!
终于可以启动进入opencode了,后面就是让opencode去解决代码的问题了
