Workstation Setup banner
htdt htdt

Workstation Setup

Development community intermediate

Description

Shared workstation setup for both source trees in this repo.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for htdt/godogen, shared by 8 entries in this directory. It describes the repository, not this entry specifically.

Workstation Setup

Shared workstation setup for both source trees in this repo.

.NET 9 SDK

Godot 4.5+ requires .NET 9.

Linux (Ubuntu/Debian)

wget -q https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh
/tmp/dotnet-install.sh --channel 9.0 --install-dir ~/.dotnet

Add to `~/.bashrc`:

export PATH="$HOME/.dotnet:$PATH"
export DOTNET_ROOT="$HOME/.dotnet"

macOS

brew install dotnet@9

Verify

dotnet --version   # 9.0.x

System Packages

sudo apt-get install vulkan-tools xvfb ffmpeg imagemagick
  • vulkan-toolsvulkaninfo for GPU validation
  • xvfb — virtual X11 display. Godot needs a display server for any rendering (including offscreen --write-movie), even with an NVIDIA GPU. On headless machines (SSH, CI), xvfb provides this.
  • ffmpeg — AVI→MP4 conversion, video frame extraction
  • imagemagick — image resize, flip, crop for sprite pipelines
# ImageMagick 7 (provides `magick` CLI — apt only has v6)
wget https://imagemagick.org/archive/binaries/magick
chmod +x magick
sudo mv magick /usr/local/bin/

macOS

brew install coreutils ffmpeg dotnet@9
  • coreutils — provides gtimeout; the capture script falls back to a perl-based timeout if missing
  • ffmpeg — AVI→MP4 conversion
  • macOS uses Metal natively — no xvfb or Vulkan setup needed.

Python

Requires Python 3.10+.

python3 --version
pip install -r claude/skills/godogen/tools/requirements.txt
# or
pip install -r codex/skills/godogen/tools/requirements.txt

The two requirements files should stay aligned. Install either one in the source repo.

In a published game repo, the same file lives at:

  • .claude/skills/godogen/tools/requirements.txt for Claude Code
  • .agents/skills/godogen/tools/requirements.txt for Codex

Godot (.NET edition)

The **.NET edition** is required — the standard Godot build cannot run C# scripts. Download from the **Mono/.NET** column on the Godot downloads page.

Linux

VERSION=$(curl -s https://api.github.com/repos/godotengine/godot/releases/latest | grep -oP '"tag_name": "\K[^"]+' | sed 's/-stable//')
echo "Installing Godot .NET $VERSION"
cd /tmp
wget https://github.com/godotengine/godot/releases/download/${VERSION}-stable/Godot_v${VERSION}-stable_mono_linux_x86_64.zip
unzip Godot_v${VERSION}-stable_mono_linux_x86_64.zip
sudo mv Godot_v${VERSION}-stable_mono_linux_x86_64/Godot_v${VERSION}-stable_mono_linux.x86_64 /usr/local/bin/godot
sudo mv Godot_v${VERSION}-stable_mono_linux_x86_64/GodotSharp /usr/local/bin/GodotSharp

`GodotSharp/` must live next to the `godot` binary. Godot resolves it relative to itself — if you symlink `godot`, the directory must be next to the real binary, not the symlink.

macOS

# Download .NET build from godotengine.org, or:
brew install --cask godot-mono

Godot must be on PATH as `godot`. If installed from the .app