Introduction

Install

go install github.com/conneroisu/gohard

Install from source

git clone https://github.com/conneroisu/gohard.git
cd gohard
go build

Install from binary

Download the latest binary from the releases page.

Nix/NixOS

Flake:

{
    inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    flake-utils.inputs.systems.follows = "systems";
    inputs.gohard.url = "github:conneroisu/gohard";
    inputs.gohard.inputs.nixpkgs.follows = "nixpkgs";


    outputs = { self, gohard, nixpkgs, flake-utils, ... }:
    {
    flake-utils.lib.eachSystem [
      "x86_64-linux"
      "i686-linux"
      "x86_64-darwin"
      "aarch64-linux"
      "aarch64-darwin"
    ] (system: let
        pkgs = import nixpkgs { inherit system; };
    in
        {
            # OR for a shell
            devShells.default = pkgs.mkShell {
                buildInputs = with pkgs; [
                    inputs.gohard.packages."${system}".gohard
                ];
            };
        });
}

Install from Homebrew

brew tap conneroisu/gohard
brew install gohard

Install from Snap

snap install gohard

Install from Docker

docker pull conneroisu/gohard

Basic usage

Overriding

VHS Video Demos

Interactive terminal recordings showcasing gohard's capabilities, built with VHS.nix.

Available Demos

Main Demos

DemoPurposeSizeBuild Command
QuickSocial media, overview1000×600nix build .#vhs-gohard-quick
ComprehensiveDocumentation1200×800nix build .#vhs-gohard-comprehensive
TutorialStep-by-step learning1400×900nix build .#vhs-gohard-tutorial
PresentationConference talks1920×1080nix build .#vhs-gohard-presentation

Command-Specific Demos

Help Commands

  • nix build .#vhs-help-demo - General help overview
  • nix build .#vhs-help-fmt - Format command help
  • nix build .#vhs-help-lint - Lint command help
  • nix build .#vhs-help-lsp - LSP command help

Format Commands

  • nix build .#vhs-fmt-file - Single file formatting
  • nix build .#vhs-fmt-dir - Directory formatting
  • nix build .#vhs-fmt-recur - Recursive formatting
  • nix build .#vhs-fmt-stdin - Stdin formatting

Lint Commands

  • nix build .#vhs-lint-file - Single file linting
  • nix build .#vhs-lint-dir - Directory linting
  • nix build .#vhs-lint-recur - Recursive linting

Quick Start

# Build the quick demo
nix build .#vhs-gohard-quick

# View the generated GIF
ls -la result/
# Shows: gohard-quick-demo.gif

Demo Content

Each demo showcases:

  • Project initialization with gohard init
  • VHDL formatting with gohard fmt
  • Code linting with gohard lint
  • LSP server setup for editors

Sample Demo GIFs

Help Commands

Help Demo

Format Commands

Format File Demo Format Directory Demo

Lint Commands

Lint File Demo

Build Notes

  • Time: Demos take 2-5 minutes to build (executing real commands)
  • Platform: Best on Linux with graphics support
  • Caching: Results cached in Nix store

Usage

Generated GIFs can be:

  • Embedded in documentation
  • Shared on social media
  • Used in presentations
  • Added to README files

For detailed technical information, see VHS_DEMOS.md.

FAQ