GOSHOT(1)

NAME

goshot โ€” ๐ŸŽจ Create beautiful code screenshots with customizable styles

SYNOPSIS

$go install github.com/watzon/goshot/cmd/goshot@latest

INFO

165 stars
4 forks
0 views

DESCRIPTION

๐ŸŽจ Create beautiful code screenshots with customizable styles

README

Goshot

Go Reference Go Report Card License

Goshot is a powerful Go library and CLI tool for creating beautiful screenshots of code and terminal command output with customizable window chrome, syntax highlighting, and backgrounds. Similar to Carbon and Silicon, Goshot allows you to create stunning visual representations of your code snippets for documentation, presentations, or social media sharing.

โœจ Features

  • ๐ŸŽจ Beautiful syntax highlighting with multiple themes
  • ๐Ÿ–ผ Customizable window chrome (macOS, Windows, Linux styles)
  • ๐ŸŒˆ Various background options (solid colors, gradients, images)
  • ๐Ÿ”ค Custom font support
  • ๐Ÿ“ Adjustable padding and margins
  • ๐Ÿ’พ Multiple export formats (PNG, JPEG)
  • ๐Ÿ›  Both CLI and library interfaces
  • ๐Ÿš€ Command execution support

Quick Start

Installation

[!NOTE]
The CLI is a work in progress, but should be more or less functional.

# Install the CLI tool
go install github.com/watzon/goshot/cmd/goshot@latest

Install the library

go get github.com/watzon/goshot

Package Managers

Arch Linux (AUR)
# Using yay
yay -S goshot-bin

Using paru

paru -S goshot-bin

Ubuntu/Debian
# Add the PPA
sudo add-apt-repository ppa:watzon/goshot
sudo apt update

Install goshot

sudo apt install goshot

Packaging status

Basic Usage

package main

import ( "image/color" "log"

"github.com/watzon/goshot/background"
"github.com/watzon/goshot/chrome"
"github.com/watzon/goshot/render"

)

func main() { // Create a new canvas with macOS chrome and gradient background canvas := render.NewCanvas(). SetChrome(chrome.NewMacChrome(chrome.WithTitle("Hello World"))). SetBackground( background.NewGradientBackground( background.LinearGradient, background.GradientStop{Color: color.RGBA{R: 26, G: 27, B: 38, A: 255}, Position: 0}, background.GradientStop{Color: color.RGBA{R: 40, G: 42, B: 54, A: 255}, Position: 1}, ). SetAngle(45). SetPadding(40). SetCornerRadius(8). SetShadow( background.NewShadow(). SetOffset(0, 3). SetBlur(20). SetSpread(8). SetColor(color.RGBA{R: 0, G: 0, B: 0, A: 200}), ), ). SetCodeStyle(&render.CodeStyle{ Language: "go", Theme: "dracula", TabWidth: 4, ShowLineNumbers: true, })

// Render code to file
code := `func main() {
    fmt.Println("Hello, World!")
}`

img, err := canvas.RenderToImage(code)
if err != nil {
    log.Fatal(err)
}

if err := render.SaveAsPNG(img, "code.png"); err != nil {
    log.Fatal(err)
}

}

Documentation

For detailed documentation, examples, and guides, please visit our Wiki:

Star History

Star History Chart

License

This project is licensed under the MIT License - see the LICENSE file for details.

SEE ALSO

clihub3/4/2026GOSHOT(1)