nigo81/nigo-skills

opencode-session-visualizer

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

Zobacz źródło

Jak używać

  1. Skopiuj polecenie instalacji i sprawdź źródła przed instalacją we własnym środowisku agenta.
  2. W oryginale sprawdź wymagane narzędzia, dane dostępowe i obsługiwane środowiska.
  3. Opisz dane wejściowe i oczekiwany rezultat; porównaj wynik ze źródłami.
npx skills add https://github.com/nigo81/nigo-skills --skill opencode-session-visualizer

Przed rozpoczęciem

  • Instalacja nie obejmuje subskrypcji modelu, limitu API ani uprawnień do plików.
  • Gwiazdki i instalacje pokazują aktywność, a nie niezależny test jakości lub bezpieczeństwa.
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

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 微信公众号:逆行的狗
z tego samego repozytorium

Więcej Skills

Wszystkie Skills
nigo81
Społeczność

chen-yiwei-perspective

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

instalacje
1
GitHub Stars
135
Aktualizacja
23 sie
nigo81
Społeczność

chenyiwei-bbs

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

instalacje
1
GitHub Stars
135
Aktualizacja
23 sie
nigo81
Społeczność

local-rag

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

instalacje
1
GitHub Stars
135
Aktualizacja
23 sie
nigo81
Społeczność

related-party-identification

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

instalacje
1
GitHub Stars
135
Aktualizacja
23 sie