WaveTerm 插件开发指南:30分钟跑通你的第一个自定义终端扩展

发布时间:2026/9/6 21:11:16

WaveTerm 插件开发指南:30分钟跑通你的第一个自定义终端扩展
WaveTerm 插件开发指南30分钟跑通你的第一个自定义终端扩展【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm正在跑编译想在旁边的分屏里固定挂一个实时资源监控面板WaveTerm 插件开发刚好解决这件事几行 JSON 就能让终端长出 CPU 监控窗口用 Go 再能做出带图表、带按钮的交互插件。这篇文章面向刚接触 WaveTerm 的新手两个实战的代码都能直接照抄运行跟着走就能出第一个可用的终端扩展。先看插件体系你需要的是哪一种WaveTerm 的插件官方叫 Widget就是出现在窗口顶部图标栏里、点一下就能打开对应面板的入口。所有插件都写在WAVETERM_HOME/config/widgets.json一个文件里按能力分成四类类型能力难度适用场景终端/CLI 插件开一个终端跑指定 shell 或命令低纯 JSON一键启动 fish、pwsh 等非默认 shell固定跑某条命令Web 插件在终端里嵌一个网页低纯 JSON把常用网页服务变成栏上一键图标系统信息插件CPU、内存实时曲线图低纯 JSON编译、部署时盯着资源占用Go 插件Tsunami图表、按钮、定时器等完整交互界面中Go 语言需要状态和交互的监控台、小工具前三类改配置就行第四类才写代码。本文的实战正好各取一个先用 JSON 声明一个 CPU 监控面板再用 Go 写一个会自己采样的交互应用。环境准备装好 WaveTerm找到配置目录从源码构建只需要三步详细步骤见仓库的BUILD.mdgit clone https://gitcode.com/GitHub_Trending/wa/waveterm cd waveterm # 按 BUILD.md 完成编译安装也可直接装官方预编译包装好后认准一个路径WAVETERM_HOME/config/widgets.json。其中 Linux 是~/.config/WavemacOS 是~/Library/Application Support/WaveWindows 是%USERPROFILE%\.config\Wave。这个文件存在就打开编辑不存在就新建。实战一用一段 JSON 声明一个 CPU 监控面板目标在插件栏加一个图标点它打开所有 CPU 核心的实时曲线图。1. 往 widgets.json 里加这段文件已有内容时把all-cpu整块合并进大括号里即可{ all-cpu: { icon: chart-scatter, label: all-cpu, blockdef: { meta: { view: sysinfo, // 窗口类型系统信息 sysinfo:type: All CPU, // 图表集合大小写敏感 graph:numpoints: 180 // 图表窗口长度180 秒 } } } }2. 逐项拆开看view决定开出来的是什么窗口系统信息固定写sysinfosysinfo:type大小写敏感合法值只有四个CPU、Mem、CPU Mem、All CPUgraph:numpoints等价于回看多少秒不写默认 100icon是 Font Awesome 图标名label是图标下方的文字。3. 保存后看效果插件栏立刻出现新图标点开就是滚动更新的曲线。4. 顺手改个参数把sysinfo:type换成CPU Mem再保持graph:numpoints: 180就得到一个CPU内存、回看 3 分钟的面板——跑 3 分钟的编译全程都在图里。JSON 这条线到这就通了改配置、存文件、点图标没有任何编译步骤。实战二用 Tsunami 框架开发一个 Go 交互插件Tsunami 是 WaveTerm 官方的 Go 语言 UI 框架——用 Go 写界面和逻辑框架负责渲染和交互。不想从零写的话仓库自带完整示例 tsunami/demo/本文直接以其中的cpuchart为骨架它做的就是每秒采样一次 CPU、滚动画图。目标看懂一个最小可用 Go 插件的四个组成部分应用元信息、数据原子、定时器、界面。1. 应用元信息 数据原子对照tsunami/demo/cpuchart/app.go// AppMeta 是应用基本信息每个插件都必须有 var AppMeta app.AppMeta{ Title: CPU Usage Monitor, ShortDesc: Real-time CPU usage monitoring and charting, } // 数据原子Atom带名字的状态存储值一变界面自动重渲染 var cpuDataAtom app.DataAtom(cpuData, []CPUDataPoint{}) var currentCpuUsageAtom app.DataAtom(currentCpuUsage, 0.0)2. 根组件 定时器var App app.DefineComponent(App, func(_ struct{}) any { // UseTicker每秒采样一次窗口关闭时自动清理 app.UseTicker(time.Second, func() { point : generateCPUDataPoint() // 采集一个 CPU 使用率样本 cpuDataAtom.SetFn(func(data []CPUDataPoint) []CPUDataPoint { data append(data, point) return data[len(data)-60:] // 只保留最近 60 秒 }) }, []any{}) // vdom.H(...)用类 HTML 的嵌套调用描述界面 return vdom.H(div, map[string]any{className: p-6}, CPU Monitor) })3. 关键点app.DefineComponent定义组件名字叫App的是根组件插件从它开始渲染vdom.H(标签名, 属性map, 子节点...)就是用 Go 拼 HTML属性里可以直接挂onClick这类事件函数SetFn是对数据原子做函数式更新改完自动触发重绘——不需要任何手动刷新逻辑完整示例里还有 gopsutil 采样、Recharts 图表照抄tsunami/demo/cpuchart/即可。从构建到验证的可复现命令链Go 插件的调试与打包是两条命令tsunamiCLI 随开发环境构建命令定义见 tsunami/cmd/# 1. 本地调试编译 启动边改边看 tsunami run tsunami/demo/cpuchart # 2. 打包把插件目录压成单个 .tsapp 文件 tsunami package -o cpuchart.tsapp tsunami/demo/cpuchartJSON 插件不需要这条链它自己的安装就是保存widgets.json。装成功的三个检查点JSON 插件插件栏出现新图标且label正确点击后对应窗口打开系统信息插件窗口里的曲线随时间滚动点图可切换图表集合Go 插件tsunami run编译通过、窗口打开图表每秒刷新打包后在指定路径生成了.tsapp文件。⚠️ 新手高频的三个坑现象一找不到 widgets.json打开~/.config/Wave却空空如也。原因是 WAVETERM_HOME 因系统而异Windows 和 macOS 都不在这个位置。解决按上面环境准备一节对照系统找路径实在不行find ~ -name widgets.json搜一下。现象二改了配置没生效插件栏纹丝不动。多半是 JSON 语法错误多一个逗号、少一个引号导致整个文件解析失败。解决先把文件喂给python3 -m json.tool校验报错定位到行修完保存——WaveTerm 会监视该文件修正后自动生效。现象三Go 插件构建失败报找不到 tsunami 模块go build提示github.com/wavetermdev/waveterm/tsunami解析失败。原因是 Tsunami SDK 是主仓库里的本地目录不会从公共 Go 代理下载仓库示例的 go.mod 里就有这条 replace。解决在插件项目目录执行go mod edit -replace github.com/wavetermdev/waveterm/tsunami/你的路径/waveterm/tsunami再go mod tidy。延伸学习到这里JSON 声明式和 Go 开发式两条插件路线都已经跑通后续往哪个方向深挖都可以。官方文档Widget 配置全字段参考docs/docs/customwidgets.mdx可直接照抄的示例插件集tsunami/demo/Tsunami 框架源码组件、定时器、数据原子的实现tsunami/engine/【免费下载链接】wavetermAn open-source, AI-integrated, cross-platform terminal for seamless workflows项目地址: https://gitcode.com/GitHub_Trending/wa/waveterm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

5 分钟跑通 MaxKB:开源知识库问答智能体平台部署与使用完整指南

5 分钟跑通 MaxKB:开源知识库问答智能体平台部署与使用完整指南

2026/9/6 21:11:16

5 分钟跑通 MaxKB:开源知识库问答智能体平台部署与使用完整指南 【免费下载链接】MaxKB 🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。 项目地址: https://gitcode.com/GitHub_Trendi…

如何让 AI 安全地替你操作电脑:Cua 计算机使用代理入门指南

如何让 AI 安全地替你操作电脑:Cua 计算机使用代理入门指南

2026/9/6 21:11:16

如何让 AI 安全地替你操作电脑:Cua 计算机使用代理入门指南 【免费下载链接】cua Scale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation. 项目地址: https://gitcode.com/GitHub_Tr…

AI-Trader快速指南:10分钟让AI代理自动交易

AI-Trader快速指南:10分钟让AI代理自动交易

2026/9/6 21:11:16

AI-Trader快速指南:10分钟让AI代理自动交易 【免费下载链接】AI-Trader "AI-Trader: 100% Fully-Automated Agent-Native Trading" 项目地址: https://gitcode.com/GitHub_Trending/aitrad/AI-Trader 你还在手动盯盘到深夜,而你的AI代…

论文降重服务避坑指南:从风险识别到流程管控的完整攻略

论文降重服务避坑指南:从风险识别到流程管控的完整攻略

2026/9/6 22:21:19

引言:降重服务为何成为双刃剑 毕业季来临,论文降重和文本改写服务成为许多同学的“救命稻草”。然而,选择不当可能导致一系列问题,甚至影响论文的质量和查重结果。本文将从风险识别、原因剖析、核对方法、风险防控到流程管控&…

Sunshine 游戏串流服务器 10 分钟上手:安装、首次配对与 Moonlight 开玩完整指南

Sunshine 游戏串流服务器 10 分钟上手:安装、首次配对与 Moonlight 开玩完整指南

2026/9/6 22:21:19

Sunshine 游戏串流服务器 10 分钟上手:安装、首次配对与 Moonlight 开玩完整指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine Sunshine 是一款完全免费开源的自托管…

基于AT89C52和DS18B20的智能温控风扇设计:从硬件到代码全解析

基于AT89C52和DS18B20的智能温控风扇设计:从硬件到代码全解析

2026/9/6 22:21:19

简介:一套基于AT89C52单片机的智能温控风扇设计文档,适合电子、嵌入式及单片机方向的初学者,也可作为课程设计或毕业设计的参考资料。方案采用温度传感器实时采集环境温度,经AT89C52单片机处理后,根据预设温控逻辑自动…

STM32与51单片机双芯片AGV寻迹避障小车实战:从硬件选型到源码解析

STM32与51单片机双芯片AGV寻迹避障小车实战:从硬件选型到源码解析

2026/9/6 22:21:19

简介:这是一套基于STM32与51单片机的AGV智能小车寻迹避障系统完整项目资料,面向具备一定嵌入式基础、对智能小车与单片机开发感兴趣的研发人员和工程师,可帮助读者快速掌握从硬件搭建、传感器配置到路径跟踪与避障控制的完整开发流程。文档以…

Claude How To 的 /setup-ci-cd 命令实战:用 pre-commit 钩子与 GitHub Actions 搭建双层质量门禁

Claude How To 的 /setup-ci-cd 命令实战:用 pre-commit 钩子与 GitHub Actions 搭建双层质量门禁

2026/9/6 22:21:19

Claude How To 的 /setup-ci-cd 命令实战:用 pre-commit 钩子与 GitHub Actions 搭建双层质量门禁 【免费下载链接】claude-howto A visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that brin…

5分钟搭一个懂你的AI导师:DeepTutor 完整上手指南

5分钟搭一个懂你的AI导师:DeepTutor 完整上手指南

2026/9/6 22:11:19

5分钟搭一个懂你的AI导师:DeepTutor 完整上手指南 【免费下载链接】DeepTutor DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/. 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor 你刚拿到一篇 30 页的论文,d…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/6 1:19:56

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/6 1:19:56

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/6 1:19:56

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/6 1:19:56

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/6 1:19:56

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/6 1:19:56

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

远程协作的工作台整理

远程协作的工作台整理

2026/9/3 6:56:24

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/4 7:42:10

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/5 23:14:13

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…