nigo81/nigo-skills

opencode-session-visualizer

将 OpenCode 会话导出为可视化的 HTML 网页,复刻官方 share 页面的暗色主题样式。 从本地 SQLite 数据库提取完整对话数据(包括上下文压缩前的早期消息), 生成的 HTML 包含 Markdown 渲染、代码高亮、工具调用折叠卡片(含完整 input/output)、 思考过程折叠、左侧对话导航边栏、删除/截断对话功能。 触发词:可视化会话、导出会话、会话分享、session visualizer、share session、 导出完整对话、查看压缩前对话、生成会话网页、会话 HTML…

Voir la source

Mode d’emploi

  1. Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
  2. Consultez le document original pour les outils, identifiants et environnements requis.
  3. Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/nigo81/nigo-skills --skill opencode-session-visualizer

Avant de commencer

  • L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
  • Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

OpenCode 会话可视化

将 OpenCode 会话从本地数据库导出,生成复刻官方 share 页面样式的单文件 HTML。

核心价值

OpenCode 的上下文压缩(compaction)是不可逆的——恢复会话时只能看到 checkpoint 之后的内容。 但数据库里完整保存了所有消息。这个 skill 直接从数据库提取完整数据,生成可分享的 HTML 网页。

跨平台说明

脚本支持 macOS、Linux 和 Windows。无需额外配置。

  • Python 命令:macOS/Linux 用 python3,Windows 用 python(下方示例统一写 python3,Windows 用户自行替换)
  • 脚本路径:脚本通过 __file__ 自动定位自身目录,无需关心 skill 安装在哪个路径。下方命令中的 SKILL_DIR 指本 skill 的安装目录(因 AI Agent 工具而异,如 ~/.claude/skills/opencode-session-visualizer/、~/.config/opencode/skills/opencode-session-visualizer/ 等)
  • 数据库路径(脚本自动搜索,无需手动指定):
  • Linux: ~/.local/share/opencode/opencode.db
  • macOS: ~/.local/share/opencode/opencode.db 或 ~/Library/Application Support/opencode/opencode.db
  • Windows: %LOCALAPPDATA%\opencode\opencode.db 或 %APPDATA%\opencode\opencode.db

工作流程

快速路径(推荐)

一行命令从数据库直接生成 HTML(SKILL_DIR = 本 skill 目录):

bash
python3 SKILL_DIR/scripts/generate_html.py --session <session_id> [output.html]

如果用户没有提供 session_id,先列出最近会话:

bash
python3 SKILL_DIR/scripts/export_session.py --list -n 15

分步路径

  1. 导出 JSON:python3 SKILL_DIR/scripts/export_session.py <session_id> session.json
  2. 生成 HTML:python3 SKILL_DIR/scripts/generate_html.py session.json [output.html]

生成后提示用户在浏览器中打开(macOS: open <path>,Windows: start <path>,Linux: xdg-open <path>)。

HTML 功能特性

生成的 HTML 是完全自包含的单文件,具备以下交互功能:

渲染

  • Markdown 渲染:助手消息支持完整 Markdown(表格、代码块、列表、标题),用 marked.js
  • 代码高亮:highlight.js 语法高亮,深色主题
  • 暗色主题:背景 #131315,代码块 #0b0b0c,链接 #89b4fa,系统字体 13px

交互

  • 左侧导航边栏:列出所有用户消息摘要,点击平滑滚动跳转,滚动时自动高亮当前消息
  • 工具调用卡片:默认折叠,显示工具名+摘要(如 read · format.ts),点击展开显示完整 Input 和 Output(代码块样式,可滚动)
  • 思考过程折叠:reasoning 内容默认折叠,点击展开查看
  • 压缩事件标记:compaction checkpoint 显示为琥珀色卡片
  • 回到顶部按钮:长页面右下角浮动按钮

编辑(浏览器内操作)

  • 删除消息 🗑:悬浮用户消息显示删除按钮,删除该消息及其后续连续的助手回复
  • 截断对话 ✂️:悬浮用户消息显示截断按钮,删除该消息之后的所有内容(批量删除尾部对话)
  • 导出清理后的 HTML:执行删除/截断操作后,导航栏出现导出按钮,点击下载清理后的单文件 HTML

数据结构

导出的 JSON 结构:

json
{
  "session": {
    "id": "ses_xxx",
    "title": "会话标题",
    "stats": { "total_messages": 222, "user_messages": 59, ... }
  },
  "messages": [
    {
      "id": "msg_xxx",
      "role": "user|assistant",
      "timestamp": "2026-07-23 16:18:45",
      "agent": "Orchestrator",
      "model": "glm-5.1",
      "parts": [
        {"type": "text", "data": {"text": "markdown内容"}},
        {"type": "tool", "data": {"type": "tool", "tool": "bash", "callID": "...", "state": {"status": "completed", "input": {"command": "..."}, "output": "...", "title": "...", "time": {"start": 123, "end": 456}}}},
        {"type": "reasoning", "data": {"text": "思考内容"}},
        {"type": "step-start", "data": {...}},
        {"type": "step-finish", "data": {...}},
        {"type": "compaction", "data": {...}},
        {"type": "patch", "data": {...}}
      ]
    }
  ]
}

Part 类型处理:

  • text:渲染为 Markdown(用户消息和助手消息的正文)
  • tool:折叠卡片,显示工具名+摘要,展开显示 Input 参数和 Output 结果
  • reasoning:折叠卡片,点击展开查看思考过程
  • step-start / step-finish:步骤分隔标记(不在页面显示)
  • compaction:琥珀色压缩事件卡片
  • patch:代码补丁卡片
  • agent:agent 切换标记

Tool 的 input 字段因工具而异:

  • read/edit/write:{filePath: "/path/to/file"}
  • bash:{command: "ls -la"}
  • grep:{pattern: "...", include: "*.ts"}
  • glob:{pattern: "**/*.py"}
  • task:{description: "...", prompt: "..."}

文件结构

opencode-session-visualizer/
├── SKILL.md                      # 本文件
├── scripts/
│   ├── export_session.py         # 数据库导出脚本(session_id → JSON)
│   └── generate_html.py          # HTML 生成脚本(JSON/DB → HTML)
└── assets/
    └── template.html             # HTML 模板(含 __SESSION_DATA__ 占位符)

脚本说明

export_session.py — 从 opencode.db 导出完整会话数据

  • python3 export_session.py <session_id> [output.json] — 导出指定会话
  • python3 export_session.py --list -n 15 — 列出最近 15 个会话
  • session_id 支持部分匹配

generate_html.py — 将会话数据注入模板生成 HTML

  • python3 generate_html.py --session <session_id> [output.html] — 直接从数据库生成(推荐)
  • python3 generate_html.py <session.json> [output.html] — 从导出的 JSON 生成
  • 模板路径自动解析为同目录下 assets/template.html

template.html — HTML 模板

  • 占位符 __SESSION_DATA__ 位于 <script id="conv-data"> 内
  • generate_html.py 将 JSON 数据注入占位符位置
  • 包含完整的 CSS/JS(暗色主题、Markdown 渲染、交互功能、删除/截断/导出)
  • CDN 依赖:marked.js、highlight.js、JetBrains Mono 字体

注意事项

  • 数据库路径由脚本自动检测(见上方「跨平台说明」),通常 5GB+,查询务必带 WHERE session_id
  • session_id 支持部分匹配(脚本会自动补全)
  • 大会话(200+ 条消息)生成的 HTML 可能 5MB+,浏览器可正常处理
  • 删除/截断功能在浏览器端操作,不影响原始数据库数据
  • 导出清理后的 HTML 时,只包含未被删除的消息

作者:nigo 微信公众号:逆行的狗
du même dépôt

Autres Skills

Tous les Skills
nigo81
Communauté

chen-yiwei-perspective

陈奕蔚(会计视野论坛版主,中审众环会计师事务所合伙人)的专业咨询思维框架。基于2003-2026年24年、约3000万字答疑文章提炼,涵盖5个核心心智模型、10条决策启发式、完整的表达DNA和回答工作流。用于会计准则实务解读、审计问题咨询、财务处理判断。触发词:陈版主、陈奕蔚、会计准则咨询、审计实务、合并报表、收入确认、权益性交易、会计处理、企业会计准则、CAS 14、CAS 21、CAS 33。

installations
1
GitHub Stars
135
Mis à jour
23 août
nigo81
Communauté

chenyiwei-bbs

陈版主实务问答检索 Skill。当用户想查询"陈版主"、"陈奕蔚"、"审计问答"、"视野论坛"、"会计准则"、"审计实务"、"CPA问答"、"注册会计师"、"会计处理"、"审计问题"、"收入确认"、"合并报表"、"商誉减值"等任何审计/会计实务问答时使用。Skill 会直接 curl 公开 REST API 拉取数据并整理成中文 markdown,不需要 API Key 或 MCP server。不要 undertrigger——用户问审计/会计实务问题而你不调本 Skill 就是把过时的训练数据当作最新实务解答,对用户有害。

installations
1
GitHub Stars
135
Mis à jour
23 août
nigo81
Communauté

local-rag

本地向量知识库,支持按项目管理文档(docx/doc/pdf/md),语义检索。默认用硅基流动免费 API,零模型安装即可使用。支持多项目隔离、中文制度文档专用切片、Embedding+Rerank 两阶段检索。触发词:知识库、向量检索、RAG、制度检索、文档入库、语义搜索、local rag、搜制度、查条款、文档检索、从文档中搜、语义匹配。即使用户只是说"帮我从这些文件里找到关于XX的规定"或"对比两份制度的差异",也应使用本 skill。

installations
1
GitHub Stars
135
Mis à jour
23 août
nigo81
Communauté

related-party-identification

基于工商数据自动识别"隐形关联方"的审计核查工具。读取被审计单位及其客户、供应商的工商完整维度(52个Excel), 自动比对地址/电话/邮箱/网址/法定代表人/董监高/股权穿透/客商异常画像/无形资产共用/担保链/历史关联痕迹等八大维度, 输出多sheet Excel核查报告(汇总判断sheet + 各维度证据sheet),揪出未披露的关联方关系。 当用户提到 关联方、关联方核查、关联方识别、隐形关联方、隐性关联方、未披露关联方、关联交易非关联化、 关联关系、客户供应商关联关系、客户是不是关联方、供应商有没有猫腻、股权穿透、实际控制人核查、 关联方尽调、审计关联方、related party、关联方核查底稿 时使用。 即使用户只说"查一下这几家公司之间有没有关联""帮我看下这批客户供应商的工商数据""这公司是不是空壳" "审计要核查关联方"也应触发。配合 cicpa-company-query skill 取数,规则集对齐证监会/财政部近年处罚案例。

installations
1
GitHub Stars
135
Mis à jour
23 août