[TOC]
Opencode
OpenCode 是一个开源的 AI 编程代理(AI coding agent),支持在终端(Terminal)、桌面应用和主流 IDE(如 VS Code)中与 AI 交互完成代码相关任务。
OpenCode 可以帮助我们理解代码库、编写新功能、重构代码、修复 Bug 等,大幅提升开发效率。
关键特性:
两种内置 Agent 模式:
- Build 模式: 全权限,可直接编辑文件、执行命令。
- Plan 模式: 只读规划,默认拒绝编辑,需要确认。
工具集: bash 执行、文件读写、 grep 搜索、 LSP 诊断等。
上下文感知: 自动分析项目结构,生成 AGENTS.md 指南。
分享与协作: 一键生成会话分享链接。
下载与安装
-
下载编译器 nodejs
此处要勾选:
-
执行下面命令一键安装:
npm install -g opencode-ai
-
验证安装:
opencode -version
如果输出类似 1.1.19 这种的版本号信息表示安装成功。
启动与使用
启动 OpenCode 只需要终端输入启动命令:
opencode
(标题因为win10系统和opencode艺术字渲染不兼容导致乱码,暂时无法解决)
首次启动会引导完成基础配置:
- 模型选择: 默认展示可用模型列表,可直接选择标注 Free 的免费模型(如 MiniMax M2.1、 GLM-4.7),无需 API Key 即可使用。
- 登录选项: 可选择跳过登录,后续需对接商业模型时再配置 API Key,也可登录 Claude Code Pro账号调用专属模型。
启动成功后进入 TUI 界面,即可开始使用核心功能。
我们可以在终端输入 /models 查看可用的免费模型:
配置 API 密钥与模型
如果你连接一个 AI 提供商的 API 密钥,例如 OpenAI 或 Anthropic Claude,运行:
opencode auth login
或者在终端启动后输入:
/connect
基本使用
进入你想处理的项目目录:
cd /path/to/your/project
opencode
项目初始化
在 OpenCode 界面中,运行:
/init
OpenCode TUI 常用 Slash 命令速查表
| 命令 | 描述 | 别名/快捷键 |
|---|---|---|
| /connect | 添加或配置 LLM 提供商(API Key) | 无 |
| /init | 创建或更新项目 AGENTS.md 文件(分析代码库) | Ctrl+X I |
| /models | 列出可用模型并切换 | Ctrl+X M |
| /new | 开始新会话(清除当前) | /clear / Ctrl+X N |
| /sessions | 列出并切换会话 | |
| /share | 分享当前会话(生成链接) | Ctrl+X S |
| /unshare | 取消分享当前会话 | |
| /compact | 压缩/总结当前会话 | |
| /undo | 撤销最后操作(需 Git 仓库,支持文件变更回滚 | Ctrl+X U |
| /redo | 重做已撤销的操作(需 Git 仓库) | Ctrl+X R |
| /details | 切换工具执行详情显示 | Ctrl+X D |
| /thinking | 切换思考/推理过程可见性 | |
| /theme | 列出并切换主题 | |
| /help | 显示帮助对话框 | Ctrl+X H |
| /export | 导出当前对话为 Markdown 并打开编辑 | |
| /exit | 退出 OpenCode | /quit / /q / Ctrl+X Q |
Agent Skills
Agent Skills 是一个由 Anthropic 牵头维护的 开放标准,通过定义特定任务执行规范,能便捷地将个人经验转化为技能,快速构建轻量级的智能体。
技能商店
推荐使用 Vercel 出品的The Agent Skills Directory 排行榜,可以直观查看当前最受欢迎的 Skills 仓库和单个 Skill 的使用情况。还可以辅助使用 Agent Skills 市场 - Claude、Codex 和 ChatGPT Skills | SkillsMP 商店,该商店中自动抓取了 Github 上的所有的 Skills 项目,并按照分类、更新时间、 Star 数量等标签进行了整理。
其他特色 Agent Skills 商店还有:
- Skillstore - 面向 Claude、Codex 与 Claude Code 的 AI 技能市场:对 Skill 进行了安全审计的中文商店
- Discover Agent Skills - Agent Skills:提供了云端 Skill 运行环境的商店
- Agent skills Library | skills.rest:提供 Skill 分析和安全审查的商店
编程工具
要在编程工具中安装 Agent Skills,只需要将 Skill 文件夹放入对应的路径即可。
建议使用 Vercel 官方出品的 npx skills add <owner/repo> 命令行工具快速添加,具体参数参见skills - npm。
精选技能
网络安全
- tanweai/wooyun-legacy:基于 WooYun 2010-2016 年间收录的 88,636 个真实漏洞案例,提炼出的安全知识库。装上这个 Skill 后, Claude/opencode 能像资深安全专家一样思考漏洞问题。(下面这种方式是全局配置)
npx skills add tanweai/wooyun-legacy
(可以让AI帮你执行安装命令并分析错误)
技能创建
-
anthropics/skills/skill-creator: Anthropic 官方出品用于创建 skill 的元技能,可快速创建和迭代个人专属的 skill
-
yusufkaraaslan/Skill_Seekers: 自动化抓取文档网站、 GitHub 仓库和 PDF 文件转换为 Agent Skills
文档处理
- docx:创建和编辑 Word 文档的 Skill
- pptx:创建和编辑 PowerPoint 的 Skill
- xlsx:创建和编辑 Excel 的 Skill
- pdf:创建和编辑 PDF 的 Skill
官方项目
- anthropics/skills: Anthropic 出品的 Skills 集合
- vercel-labs/agent-skills: Vercel 出品的 React Skills 集合
- expo/skills: Expo 出品的 React Native Skills 集合
- supabase/agent-skills: Supabase 出品的 PostgreSQL 最佳实践
- remotion-dev/skills: Remotion 出品的使用 Remotion 创建视频内容
- langgenius/dify: Dify 出品的多功能 Skills 集合
- huggingface/skills: HuggingFace 出品使用 Skill 训练大模型
- kepano/obsidian-skills: Obsidian CEO 出品增强 Obsidian 功能的 Skills 集合
内容创作
- JimLiu/baoyu-skills:宝玉的自用 SKills 集合,包括公众号写作、 PPT 制作等
- github.com/op7418):歸藏制作的一系列 Skills 集合,包括 PPT 制作、 Youtube 分析等
- wshuyi/x-article-publisher-skill: 王树义发布 X 文章的 Skillhuangserva/skill-prompt-generator: huangserva 使用 Skill 生成和优化 AI 人像文生图提示词的Skill
编程辅助
- obra/superpowers:涵盖完整编程项目工作流程的 Skills 集合
- ComposioHQ/awesome-claude-skills:涵盖多个编程类任务的优质 Skills 集合
- nextlevelbuilder/ui-ux-pro-max-skill:面向 UI/UX 设计的 Skills 集合
- OthmanAdi/planning-with-files:使用文件规划实现长期 Plan 效果的 Skill
- hyf0/vue-skills:面向 Vue.js 开发的 Skills 集合
产品使用
- teng-lin/notebooklm-py:操控 NotebookLM 的Skill
- czlonkowski/n8n-skills:创建 n8n 工作流的 Skills 集合
- cloudai-x/threejs-skills: 面向 Three.js 开发的 Skills 集合
配套工具
- openskills: Skills 全局加载工具,支持多种 Agent 工具
- skild.sh:在多个工具中安装、管理和同步 Skills 的命令行工具
- agent-skills-guard: Agent skills 可视化管理+精选仓库+安全扫描
- skillmaster:通过终端管理、安装和使用 Agent Skills
利用AI工具实现前端绕过
前端明文加密绕过
启用 encrypt 靶场,添加断点调试:
将整段加密函数复制到opencode目录下,并将发包信息和服务端模板一起丢给AI
app.py:
from flask import Flask, request
import re
import hashlib
import hmac
app = Flask(__name__)
secret_key = "be56e057f20f883e"
@app.route('/encode',methods=["POST"]) # base64加密
def encrypt():
param = request.form.get('dataBody')
@app.route('/decode',methods=["POST"])
def decrypt():
param = request.form.get('dataBody')
return param
if __name__ == '__main__':
app.run(host="0.0.0.0",port="5000")
最后让AI完善代码,用 python3 appp.py 启动服务端,利用burp的插件调用服务端:
成功实现前端明文加密绕过。
服务端请求加签 key 绕过
这里需要明确把服务端加签 key 请求包和响应包发给AI,再把登陆包也发给AI
再明确告诉AI,需要再app.py中复现前端加密过程,而不是实现签名生成或签名验证。
最后告诉 AI 需要用 param = request.form.get('dataBody') 固定的接受方式,不然无法兼容burp发包。
最后漏洞复现成功:
时间戳加密的禁止重放绕过
时间戳加密的key是经过混淆的,也在前端代码中。先将一部分直接执行的代码喂给AI,让AI指导我们去找到相关函数。
最好不要把全部前端都喂给一个AI。这样很容易误导AI的下一步操作。手动找到混淆过后的key后喂给AI看。
再让AI判断前端加密验证的类型,正确后让AI在app.py中复现加密过程。
最后复现成功:
用roocode编写表单爆破工具
burp插件
copy as python-requets插件,可以直接将http请求转化成python代码
安装即可使用:
粘贴并让AI在这个基础上进行编写
RooCode使用方法
配置API密钥:
角色用法:
编写后自动执行,结果爆破成功: