claudia/scripts
Vivek R 55220ab1f3 feat(build): standardize Claude Code version and enhance build flexibility
- Pin Claude Code version to 1.0.41 across all build scripts for consistency
- Add version parameter support to fetch-and-build.js script
- Enhance build script with improved CLI argument parsing
- Add prebuild hook to automatically build current platform executables

Changes made:
• package.json: Add --version=1.0.41 to all build:executables scripts
• package.json: Add prebuild script to run build:executables:current
• scripts/fetch-and-build.js: Add parseArguments() function for CLI parsing
• scripts/fetch-and-build.js: Add determineClaudeCodeVersion() for version resolution
• scripts/fetch-and-build.js: Update fetchClaudeCodePackage() to accept version parameter
• scripts/fetch-and-build.js: Enhance usage documentation and error messages
2025-07-04 14:20:11 +05:30
..
build-executables.js feat: update build script to use proper Tauri sidecar triple naming convention 2025-07-03 23:36:51 +05:30
fetch-and-build.js feat(build): standardize Claude Code version and enhance build flexibility 2025-07-04 14:20:11 +05:30
prepare-bundle-native.js feat(build): add comprehensive Claude Code executable build system 2025-07-03 20:12:04 +05:30
README.md feat: implement sidecar binary support and enhance Claude execution system 2025-07-04 03:27:57 +05:30

Build Scripts

This directory contains scripts for building Claude Code executables for all supported platforms.

Scripts

fetch-and-build.js

Main build script that:

  1. Downloads the @anthropic-ai/claude-code package from npm
  2. Extracts and copies required files (cli.js, yoga.wasm, vendor/)
  3. Builds executables for specified platforms
  4. Cleans up temporary files

Usage:

# Build for all platforms
bun run scripts/fetch-and-build.js

# Build for specific platform
bun run scripts/fetch-and-build.js linux
bun run scripts/fetch-and-build.js macos
bun run scripts/fetch-and-build.js windows
bun run scripts/fetch-and-build.js current  # Current platform only

build-executables.js

Low-level script that builds executables from existing source files. This is called automatically by fetch-and-build.js.

prepare-bundle-native.js

Prepares the CLI source for bundling by embedding assets using Bun's native embedding features.

NPM Scripts

The following npm scripts are available in package.json:

# Build executables for all platforms
npm run build:executables

# Build for specific platforms
npm run build:executables:current
npm run build:executables:linux
npm run build:executables:macos
npm run build:executables:windows

Output

All executables are created in the src-tauri/binaries/ directory with the following naming convention:

Linux Executables

  • claude-code-linux-x64 - Standard Linux x64 (glibc)
  • claude-code-linux-x64-modern - Modern CPUs (AVX2+)
  • claude-code-linux-x64-baseline - Older CPUs (pre-2013)
  • claude-code-linux-arm64 - ARM64 Linux
  • claude-code-linux-x64-musl - Alpine Linux (musl)
  • claude-code-linux-x64-musl-modern - Alpine + modern CPUs
  • claude-code-linux-x64-musl-baseline - Alpine + older CPUs
  • claude-code-linux-arm64-musl - ARM64 Alpine

macOS Executables

  • claude-code-macos-x64 - Intel Mac
  • claude-code-macos-x64-modern - Intel Mac (modern CPUs)
  • claude-code-macos-x64-baseline - Intel Mac (older CPUs)
  • claude-code-macos-arm64 - Apple Silicon Mac

Windows Executables

  • claude-code-windows-x64.exe - Windows x64
  • claude-code-windows-x64-modern.exe - Windows x64 (modern CPUs)
  • claude-code-windows-x64-baseline.exe - Windows x64 (older CPUs)

Features

  • Embedded Assets: All executables include embedded yoga.wasm and ripgrep binaries
  • Optimizations: Built with minification and sourcemaps
  • Cross-platform: Supports all major operating systems and architectures
  • CPU Variants: Modern variants for newer CPUs (2013+), baseline for compatibility
  • Self-contained: No external dependencies required at runtime
  • Tauri Integration: Automatic sidecar binary naming for seamless Tauri integration

Requirements

  • Bun: Required for building (uses Bun's native compilation features)
  • npm: Used to download the Claude Code package
  • tar: For extracting the package (standard on Unix systems)