Skip to content

feat: Add install scripts for standalone binary distribution - #632

Merged
razor-x merged 4 commits into
mainfrom
claude/cli-install-script-xdg-jqkfas
Aug 20, 2026
Merged

feat: Add install scripts for standalone binary distribution#632
razor-x merged 4 commits into
mainfrom
claude/cli-install-script-xdg-jqkfas

Conversation

@razor-x

@razor-x razor-x commented Aug 20, 2026

Copy link
Copy Markdown
Member

Add shell and PowerShell installer scripts to simplify installation of the Seam CLI from GitHub Releases, along with automated testing.

Summary

This change provides convenient installation scripts for users to download and install the Seam CLI binary directly from GitHub Releases, with built-in checksum verification and shell completion setup.

Key Changes

  • install.sh: POSIX shell script for Linux and macOS that:

    • Downloads the appropriate binary for the detected OS and architecture
    • Verifies SHA-256 checksums against checksums.txt before installation
    • Installs to a configurable directory with sensible defaults ($SEAM_BIN_PATH, $XDG_BIN_HOME, $XDG_DATA_HOME/../bin, or ~/.local/bin)
    • Optionally runs seam completion --install for shell integration
    • Supports pinning specific versions and custom install directories
    • Works with both curl and wget as downloaders
  • install.ps1: PowerShell script for Windows that:

    • Downloads the Windows x64 binary from GitHub Releases
    • Verifies SHA-256 checksums before installation
    • Installs to a configurable directory with sensible defaults
    • Adds the install directory to the user PATH registry
    • Handles TLS 1.2 enforcement for older PowerShell versions
  • .github/workflows/install-standalone.yml: CI workflow that:

    • Lints the shell script with shellcheck
    • Tests the shell script on Linux and macOS with various configurations
    • Tests the PowerShell script on Windows
    • Verifies checksum validation by testing rejection of tampered binaries
  • README.md: Updated installation documentation to promote the new installer scripts as the primary installation method for standalone binaries

Notable Implementation Details

  • Both scripts enforce HTTPS and TLS 1.2 for security when downloading from GitHub, while allowing custom mirrors via SEAM_DOWNLOAD_URL
  • Installation uses atomic file operations (staging to a temporary file, then renaming) to prevent partial binary installation
  • Comprehensive error handling with informative messages for common failure scenarios
  • Shell script supports multiple SHA-256 tools (sha256sum, gsha256sum, shasum, openssl) for maximum compatibility
  • Windows script handles ARM64 architecture by installing x64 binary with a note about emulation

https://claude.ai/code/session_01LtYdE6UGg6ZR7ieqS5YpHt

claude added 4 commits August 20, 2026 17:04
Add install.sh (Linux and macOS) and install.ps1 (Windows) that download
the standalone binary from GitHub Releases, verify its SHA-256 checksum
against the release's checksums.txt in a temporary directory before
installing, and run seam completion --install.

The install directory defaults to an XDG-style cascade: SEAM_BIN_PATH,
then XDG_BIN_HOME, then XDG_DATA_HOME/../bin, then ~/.local/bin
(LOCALAPPDATA\seam\bin on Windows). Flags: --version to pin a release,
--bin-path to choose the directory, and --no-install-completion to leave
shell configuration untouched.

Test the scripts on Linux, macOS, and Windows in a dedicated workflow
that runs only when the scripts change, including negative tests that a
checksum mismatch refuses to install.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtYdE6UGg6ZR7ieqS5YpHt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtYdE6UGg6ZR7ieqS5YpHt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtYdE6UGg6ZR7ieqS5YpHt
When the install directory is not on PATH, install.sh now appends the
PATH entry to the user's shell configuration instead of only printing an
instruction, detecting bash, fish, or zsh and picking the configuration
file the same way as seam completion --install. The edit is idempotent.

When the shell cannot be detected, or with --no-modify-path (or
SEAM_NO_MODIFY_PATH=1), the script prints the manual instruction instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LtYdE6UGg6ZR7ieqS5YpHt
@razor-x razor-x changed the title Add install scripts for standalone binary distribution feat: Add install scripts for standalone binary distribution Aug 20, 2026
@razor-x
razor-x marked this pull request as ready for review August 20, 2026 17:48
@razor-x
razor-x merged commit 295e9e5 into main Aug 20, 2026
18 checks passed
@razor-x
razor-x deleted the claude/cli-install-script-xdg-jqkfas branch August 20, 2026 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants