Skip to content

Releases: charmbracelet/vhs

v0.8.0

06 Sep 17:16
88e634f
Compare
Choose a tag to compare

Environmental friendliness

Ever want to alter the environment in your .tape files? Now you can with the ENV directive:

Env HELLO "WORLD"

Type "echo $HELLO"
Enter
Sleep 1s

Bonus: change the prompt

Also thanks to @Delta456, you can now change the prompt by setting PROMPT in the environment:

Env PROMPT "ใ€‰"

For details see: #469.

Changelog

New!

Fixed

Docs

Other stuff


Verifying the artifacts

First, download the checksums.txt file, for example, with wget:

wget 'https://github.com/charmbracelet/vhs/releases/download/v0.8.0/checksums.txt'

Then, verify it using cosign:

cosign verify-blob \
  --certificate-identity 'https://github.com/charmbracelet/meta/.github/workflows/goreleaser.yml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  --cert 'https://github.com/charmbracelet/vhs/releases/download/v0.8.0/checksums.txt.pem' \
  --signature 'https://github.com/charmbracelet/vhs/releases/download/v0.8.0/checksums.txt.sig' \
  ./checksums.txt

If the output is Verified OK, you can safely use it to verify the checksums of other artifacts you downloaded from the release using sha256sum:

sha256sum --ignore-missing -c checksums.txt

Done! You artifacts are now verified!

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.7.2

15 Apr 15:12
v0.7.2
484e440
Compare
Choose a tag to compare

Changelog

Bug fixes

Other work


Verifying the artifacts

First, download the checksums.txt file, for example, with wget:

wget 'https://github.com/charmbracelet/vhs/releases/download/v0.7.2/checksums.txt'

Then, verify it using cosign:

cosign verify-blob \
  --certificate-identity 'https://github.com/charmbracelet/meta/.github/workflows/goreleaser.yml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  --cert 'https://github.com/charmbracelet/vhs/releases/download/v0.7.2/checksums.txt.pem' \
  --signature 'https://github.com/charmbracelet/vhs/releases/download/v0.7.2/checksums.txt.sig' \
  ./checksums.txt

If the output is Verified OK, you can safely use it to verify the checksums of other artifacts you downloaded from the release using sha256sum:

sha256sum --ignore-missing -c checksums.txt

Done! You artifacts are now verified!

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.7.1

12 Dec 19:50
v0.7.1
537d03a
Compare
Choose a tag to compare

Freeze Frame โ„๏ธ ๐Ÿ“ธ

With VHS v0.7.0, you can capture the any moment during tape execution. Just add in Screenshot <filename>.png to your tapes:

Type ls
Enter

# Capture the output of 'ls'
Screenshot files.png

# Now, continue as you normally would
Type 'cd ..'
Enter

Your tape outputs a GIF, and outputs a file named files.png.

Copy-Paste Functionality!

VHS can now talk to your system clipboard. Please keep this in mind when executing tapes from unknown sources.

Warning

You should never curl pipe into VHS, it's similar to executing a bash script on your computer!

Copy "https://github.com/charmbracelet/huh"

Type 'curl '

Paste

Enter

New Modifiers + Keys Alert!

VHS v0.7.0 has some new additions: introducing the top level Shift+ modifier and the Insert + Delete keys!

# Shift things up a bit!
Shift+A
Shift+Tab
Shift+Enter

# Insert and delete to your hearts desire:
Insert
Delete

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.7.0

12 Dec 17:57
v0.7.0
Compare
Choose a tag to compare

Freeze Frame โ„๏ธ ๐Ÿ“ธ

With VHS v0.7.0, you can capture the any moment during tape execution. Just add in Screenshot <filename>.png to your tapes:

Type ls
Enter

# Capture the output of 'ls'
Screenshot files.png

# Now, continue as you normally would
Type 'cd ..'
Enter

Your tape outputs a GIF, and outputs a file named files.png.

Copy-Paste Functionality!

VHS can now talk to your system clipboard. Please keep this in mind when executing tapes from unknown sources.

Warning

You should never curl pipe into VHS, it's similar to executing a bash script on your computer!

Copy "https://github.com/charmbracelet/huh"

Type 'curl '

Paste

Enter

New Modifiers + Keys Alert!

VHS v0.7.0 has some new additions: introducing the top level Shift+ modifier and the Insert + Delete keys!

# Shift things up a bit!
Shift+A
Shift+Tab
Shift+Enter

# Insert and delete to your hearts desire:
Insert
Delete

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or Discord.

v0.6.0

20 Jul 19:14
v0.6.0
d42375a
Compare
Choose a tag to compare

Font Fallbacks, New modifiers, CursorBlink

This release of VHS features 3 new additions as well as several small bug fixes to make sure everything runs smoothly.

New Features

Font Fallback

VHS now falls back to using Apple Symbols on MacOS to render braille characters without empty dots.

Alt + Shift modifiers

Ctrl[+Alt][+Shift]+<char>

Ctrl commands can now be modified with Alt or Shift characters to perform different key press combinations.

Cursor Blink

Set CursorBlink false

To avoid cursor blinking, simply use the CursorBlink setting (defaults to true).


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.5.0

17 May 19:08
v0.5.0
Compare
Choose a tag to compare

VHS Sorcery ๐Ÿช„

This release of VHS includes a brand new Source command:
You can now include (Source) other tape files into other tape files to reuse collections of commands that you find yourself repeating. This allows you to build tape modules and compose parent tape files.

To get started, let's create two tape files:

touch source.tape
touch demo.tape

In source.tape place any commands you repeat often

Type "I'm being summoned."
Sleep 500ms
Enter

Then, in demo.tape, you can Source source.tape which will execute all the commands found in the sourced tape file.

Output out.gif
Set Height 1000
Source source.tape # this will execute all commands in ./source.tape
Type "That's all folks"
Enter

When you run vhs demo.tape it will perform all the commands within the tape file and when it reaches the Source invocation it will execute all the commands in type.tape:

Other features

Bug Fixes

This release of VHS fixes a bug that caused incorrect background rendering (#249).
In addition to using the latest version of VHS, you will also need to upgrade ttyd to use the latest commit on main.

New Contributors

Full Changelog: v0.4.0...v0.5.0


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.4.0

05 Apr 18:40
v0.4.0
5409c97
Compare
Choose a tag to compare

Terminal Decorations ๐ŸŽจ

The latest version of VHS includes a ton of new settings for you to play around with! These settings allow you to decorate your GIFs and make them look even more like terminal emulators.

This release also includes a new Alt command, a --quiet flag for silent outputs, and bug fixes when starting up different shells.

New Settings

  • Margin: Adds a margin around the outside of your terminal, while Padding allows you to add padding inside the terminal.
  • MarginFill: Adds a background color to the outside of the terminal. To change the background color of the terminal itself, use Set Theme and specify the background.
  • WindowBar: Adds a terminal window frame/bar to the top of the GIF. This value can be one of Colorful, ColorfulRight, Rings, or RingsRight.
  • WindowBarSize: Sets how the WindowBar should appear.
  • BorderRadius: Sets the border radius of the terminal.
Set Margin 80
Set MarginFill "#674EFF"
Set WindowBar "Colorful"
Set WindowBarSize 40
Set BorderRadius 8

Launch with Shell

This version of VHS performs the Shell change upon launch, rather than switching shells after starting the ttyd process. This change should result in slightly faster recordings and reduce the occurrence of buggy flashes at the start of GIFs that appeared occasionally when shell switching was slow.

Set Shell zsh

Alt command

VHS now supports pressing the Left Alt key with the newly introduced Alt command. It behaves similarly to pressing Ctrl along with another key.

Alt+V

Quiet Output

If you prefer to create your VHS GIFs without any output, simply add the -quiet flag. This will minimize any output to just the essentials.

vhs demo.tape --quiet

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.3.0

21 Feb 18:46
v0.3.0
7cb57d1
Compare
Choose a tag to compare

Hosted & Shareable GIFs

Now you can automatically publish your GIFs to vhs.charm.sh and get a unique URL for your GIFs to share with your friends, coworkers, and the internet.

More details on the new โœจ Mystical Charmโ„ข Blog โœจ

To get started use:

vhs cassette.tape --publish

After the generation, you will get a unique URL for your GIF hosted on Charmโ„ข servers.

If you would like to, before publishing, see the GIF locally or simply forgot to use the --publish flag, you can use the publish command which allows you to simply publish GIFs. The following will give you a unique URL similar to the above, without needing to generate the GIF from the tape again.

vhs publish output.gif

Output Flag

If you need a quick way to produce an output to a location without editing a tape file, simply use the --output flag to set the location of the output on the fly. This is useful when you need to change the output name or file type and don't want to edit the tape file.

vhs demo.tape --output new-location.gif --output new-format.mp4

Additional Changes

  • ttyd listens on loopback interface only (thanks @rcw5)

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.2.0

22 Nov 17:23
v0.2.0
Compare
Choose a tag to compare

Lights, Camera, Action!

Write tape files by simply using the terminal! โœจ

VHS Record

VHS v0.2.0 comes with brand new recording functionality. ๐Ÿ“น

To get started, run:

vhs record > record.tape

Perform any actions you want to see in your demo. And, then exit the terminal session to finish.

After the session is recorded, you can make edits to the .tape file that was just recorded and then use VHS to generate the GIF file.

vhs < record.tape

Brand New Themes

Now, Set Theme may also take a named theme to use as the color scheme. To use this feature, pass a string from vhs themes to the Set Theme command.

Set Theme dracula

Change Shells

VHS now allows you to use a shell other than bash for your demos. You can use the Set Shell command in the tape file to change shells.

Set Shell zsh 

Fixes

  • Exit VHS process gracefully in event of error or cancellation
  • Fix leakless windows browser for go-rod
  • Use powershell / cmd prompt on windows

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.

v0.1.1

28 Oct 20:40
v0.1.1
b023c66
Compare
Choose a tag to compare

Configure your VHS server

This release includes many options to configure your VHS server (vhs serve). Most notably, protect your VHS server by setting VHS_AUTHORIZED_KEYS_PATH to a file with a list of authorized public keys.

  • VHS_PORT: The port to listen on (1976)
  • VHS_HOST: The host to listen on (localhost)
  • VHS_GID: The Group ID to run the server as (current user's GID)
  • VHS_UID: The User ID to run the server as (current user's UID)
  • VHS_KEY_PATH: The path to the SSH key to use (.ssh/vhs_ed25519)
  • VHS_AUTHORIZED_KEYS_PATH: The path to the authorized keys file (empty, publicly accessible)

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.