This document explains the installation approach for Conduct CLI, similar to Claude's installation script.
Conduct CLI supports three installation methods:
- Standalone Binaries (Recommended) - Pre-compiled executables via
install.sh - Bun - Fast JavaScript runtime
- npm - Traditional Node.js package manager
curl -fsSL https://git.conduct.run/install.sh | bashHow it works:
- Detects platform (darwin/linux) and architecture (x64/arm64)
- Fetches latest version from GitHub releases
- Downloads pre-compiled binary for the platform
- Verifies SHA256 checksum (if available)
- Installs to
$HOME/.local/bin/conduct - Fallback: If binary not found, uses Bun or npm
bun install -g conduct-clinpm install -g conduct-clicd cli
npm run build:standaloneThis generates:
binaries/conduct-darwin-x64binaries/conduct-darwin-arm64binaries/conduct-linux-x64binaries/conduct-linux-arm64binaries/checksums.txt
When you push a git tag like v0.1.1, the GitHub Actions workflow automatically:
- Builds standalone binaries for all platforms using Bun
- Generates SHA256 checksums
- Creates GitHub release with all binaries attached
- Publishes to npm registry
Workflow file: .github/workflows/release.yml
cd cli
npm version patch # or minor, majorThis updates package.json to v0.1.2 (for example).
git add .
git commit -m "Release v0.1.2"
git tag v0.1.2
git push origin main --tagsGitHub Actions workflow triggers on the v*.*.* tag and:
- Builds binaries
- Creates release
- Publishes to npm (requires
NPM_TOKENsecret)
curl -fsSL https://git.conduct.run/install.sh | bashThe install script verifies SHA256 checksums:
# Generated during build
shasum -a 256 conduct-* > checksums.txt
# Verified during install
actual=$(shasum -a 256 conduct-darwin-arm64 | cut -d' ' -f1)
expected=$(grep conduct-darwin-arm64 checksums.txt | cut -d' ' -f1)
if [ "$actual" != "$expected" ]; then
echo "❌ Checksum verification failed"
exit 1
fiBinaries are hosted on GitHub Releases at:
https://github.com/21nOrg/conduct/releases/download/v0.1.1/conduct-darwin-arm64
The install script has a robust fallback chain:
- Try GitHub binary → If not found...
- Try Bun install → If Bun not available...
- Try npm install → If npm not available...
- Error message with installation instructions
This ensures users can always install, even if:
- New platform support is needed
- GitHub releases are unavailable
- Pre-compiled binaries fail
Currently supported platforms for standalone binaries:
darwin-x64(macOS Intel)darwin-arm64(macOS Apple Silicon)linux-x64(Linux x86_64)linux-arm64(Linux ARM64)
Note: Windows users should use npm install -g conduct-cli
Users can specify version:
# Latest stable (default)
curl -fsSL https://git.conduct.run/install.sh | bash
# Specific version
curl -fsSL https://git.conduct.run/install.sh | bash -s 0.1.1
# Latest (same as stable)
curl -fsSL https://git.conduct.run/install.sh | bash -s latestcli/
├── build-standalone.sh # Builds Bun executables
├── binaries/ # Git-ignored build output
│ ├── conduct-darwin-x64
│ ├── conduct-darwin-arm64
│ ├── conduct-linux-x64
│ ├── conduct-linux-arm64
│ └── checksums.txt
├── package.json # build:standalone script
└── ...
.github/workflows/
└── release.yml # Automated release workflow
install.sh # Installation script (repo root)
For automated releases, configure these secrets in GitHub:
- NPM_TOKEN - npm publish token
- Generate at: https://www.npmjs.com/settings/YOUR_USERNAME/tokens
- Type: Automation
The CLI is licensed under MIT (as of v0.1.1).
- ✅ Fast Installation - Single binary, no Node.js required
- ✅ Small Size - Bun compiles to optimized executables
- ✅ Security - SHA256 checksum verification
- ✅ Reliable - Fallback to npm/Bun if binaries fail
- ✅ Automated - GitHub Actions handles everything
- ✅ Cross-platform - macOS and Linux support
Made with ❤️ by 21nOrg