x-cmd pkg | vhs - 将终端的操作过程录制成视频文件的终端录制工具

简介

vhs 是一个命令行录制工具,用于将终端的操作过程录制成视频文件。是由 Charmbracelet 团队使用 Go 开发的,首个版本发布于 2022 年 10 月。开源不到一个月有接近 8k 的 star。

比起其他的终端录制应用,vhs能在如此短的时间内获取大量star的原因是其提供了一种声明式录制脚本的功能,您可以编写自己的录制脚本,脚本可以自动在模拟终端输入与录制,无需与终端交互。搭配 github action 使用可以定时自动录制和更新,应用于集成测试和演示 CLI 工具。

注意 :vhs 依赖 ttyd 和 ffmepg,使用前请确保已正确安装 ttyd 和 ffmepg (使用x vhs会帮您把 ttyd 和 ffmepg 一并下载与安装)。

首次用户

  1. 使用 x vhs 即可自动下载并使用

    • 在终端运行 eval "$(curl https://get.x-cmd.com)" 即可完成 x 命令安装, 详情参考 x-cmd 官网
  2. x-cmd 提供1分钟教程,其中包含了 vhs 命令常用功能的 demo 示例,可以帮你快速上手 vhs 。

  3. 使用案例:

sh 复制代码
# 以 tape 格式记录终端操作
x vhs record

# 创建新的 tape 文件(默认内容为官方 'Welcome to VHS!' 示例)
x vhs new new_file.tape

# 由录制脚本(tape 文件)生成 gif 文件
x vhs new_file.tape

声明式录制脚本

vhs 提供模声明式录制脚本。录制 vhs 会自动编写录制脚本,脚本就可以根据生成的内容在模拟终端中模拟按键输入,实现自动录制。具体可以阅读vhs

其他功能

  1. 记录终端操作:支持录制您的终端操作并以此生成磁带文件,同时支持手动编辑生成的磁带文件以添加设置或修改操作。
  2. 支持发布内容:允许用户将由磁带文件生成的 GIF 文件发布到 VHS 的服务器中,以便与朋友或同事进行共享。
  3. 内置 SSH 服务器:允许用户通过远程访问托管的 VHS ,且无需在本地计算机上安装相关命令和应用程序。
  4. 可调整的参数: 字体大小, 字体系列, 打字速度,字体间距,终端长宽高,不同类型的 shell
  5. 模拟按键: 声明式录制脚本内有不同的字段来模拟按键输入,type 字段是模拟终端打字,Backspace字段是模拟按退格键等。

竞品和相关作品

  1. asiinema: 社区活跃,有丰富的插件和配套的应用
  2. termsvg: 命令简单易上手,适合初次接触命令行的用户, 输入x termsvg即可使用
  3. TermRecord: 一款 python 写的终端录制工具
  4. showterm: 一款 ruby 写的终端录制工具,可用 gem 下载
  5. script:script 命令是操作 linux 系统的一部分,无需额外安装。

进一步阅读

  • Vhs 源代码 - Vhs 项目的源代码托管在 GitHub,你可以在这里找到最新版本的 Vhs 和参与社区贡献。
相关推荐
研究司马懿12 小时前
【云原生】Gateway API高级功能
云原生·go·gateway·k8s·gateway api
梦想很大很大1 天前
使用 Go + Gin + Fx 构建工程化后端服务模板(gin-app 实践)
前端·后端·go
lekami_兰1 天前
MySQL 长事务:藏在业务里的性能 “隐形杀手”
数据库·mysql·go·长事务
却尘1 天前
一篇小白也能看懂的 Go 字符串拼接 & Builder & cap 全家桶
后端·go
ん贤1 天前
一次批量删除引发的死锁,最终我选择不加锁
数据库·安全·go·死锁
mtngt112 天前
AI DDD重构实践
go
Grassto3 天前
12 go.sum 是如何保证依赖安全的?校验机制源码解析
安全·golang·go·哈希算法·go module
Grassto5 天前
11 Go Module 缓存机制详解
开发语言·缓存·golang·go·go module
程序设计实验室6 天前
2025年的最后一天,分享我使用go语言开发的电子书转换工具网站
go
我的golang之路果然有问题6 天前
使用 Hugo + GitHub Pages + PaperMod 主题 + Obsidian 搭建开发博客
golang·go·github·博客·个人开发·个人博客·hugo