Installation
Choose the installation method that works best for you.
Quick Install (Recommended)
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.sh | bashOr download and review first (recommended for the security-conscious):
# Download the scriptcurl -fsSL https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.sh -o install.sh
# Read it - it's open source and auditableless install.sh
# Run it when you're satisfied it's not evilbash install.shView install.sh source | VirusTotal scan (see release notes for SHA256)
Windows (PowerShell)
irm https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.ps1 | iexOr download and review first:
# Download the scriptInvoke-WebRequest -Uri "https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.ps1" -OutFile install.ps1
# Read it - it's open source and auditableGet-Content install.ps1 | more
# Run it when you trust us (or at least trust your antivirus).\install.ps1View install.ps1 source | VirusTotal scan (see release notes for SHA256)
Manual Download
If you prefer to download binaries directly without running scripts.
macOS
# Get latest versionVERSION=$(curl -s https://api.github.com/repos/ctxloom/ctxloom/releases/latest | grep '"tag_name"' | sed -E 's/.*"v([^"]+)".*/\1/')
# Apple Silicon (M1/M2/M3)curl -L "https://github.com/ctxloom/ctxloom/releases/download/v${VERSION}/ctxloom_${VERSION}_darwin_arm64.tar.gz" | tar xzsudo mv ctxloom /usr/local/bin/
# Intelcurl -L "https://github.com/ctxloom/ctxloom/releases/download/v${VERSION}/ctxloom_${VERSION}_darwin_amd64.tar.gz" | tar xzsudo mv ctxloom /usr/local/bin/Linux
# Get latest versionVERSION=$(curl -s https://api.github.com/repos/ctxloom/ctxloom/releases/latest | grep '"tag_name"' | sed -E 's/.*"v([^"]+)".*/\1/')
# x86_64curl -L "https://github.com/ctxloom/ctxloom/releases/download/v${VERSION}/ctxloom_${VERSION}_linux_amd64.tar.gz" | tar xzsudo mv ctxloom /usr/local/bin/
# ARM64curl -L "https://github.com/ctxloom/ctxloom/releases/download/v${VERSION}/ctxloom_${VERSION}_linux_arm64.tar.gz" | tar xzsudo mv ctxloom /usr/local/bin/Windows
Download the ZIP archive from the releases page and extract it.
PowerShell (manual):
# Get latest version$VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/ctxloom/ctxloom/releases/latest").tag_name -replace '^v', ''
# Download and extract (x64)Invoke-WebRequest -Uri "https://github.com/ctxloom/ctxloom/releases/download/v$VERSION/ctxloom_${VERSION}_windows_amd64.zip" -OutFile ctxloom.zipExpand-Archive ctxloom.zip -DestinationPath .Remove-Item ctxloom.zip
# Move to a directory in PATH (e.g., create one in your user profile)New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\bin"Move-Item ctxloom.exe "$env:USERPROFILE\bin\"
# Add to PATH (current session)$env:PATH += ";$env:USERPROFILE\bin"
# Add to PATH (permanent - run once)[Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";$env:USERPROFILE\bin", "User")Or manually:
- Go to releases and find the latest version
- Download
ctxloom_<version>_windows_amd64.zip(e.g.,ctxloom_0.5.4_windows_amd64.zip) - Extract
ctxloom.exefrom the ZIP - Move it to a directory in your PATH (e.g.,
C:\Users\<username>\bin) - Add that directory to your PATH if needed
Build from Source
For development or to get the latest unreleased features. Also the most secure option if you’re truly paranoid (we appreciate you).
Prerequisites
- Go 1.21+
- Protocol Buffers compiler (
protoc) - Go protobuf plugins:
expressiveCode.terminalWindowFallbackTitle go install google.golang.org/protobuf/cmd/protoc-gen-go@latestgo install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - just command runner (optional)
- C compiler (required for CGO/tree-sitter support)
Clone and Build
# Clone the repositorygit clone https://github.com/ctxloom/ctxloom.gitcd ctxloom
# Generate protobuf filesgo generate ./...
# Buildjust build# or: go build -ldflags "-s -w" -o ctxloom .
# Installsudo mv ctxloom /usr/local/bin/Go Install (requires protobuf tools)
If you have Go 1.21+ and protobuf tools installed:
# Clone, generate, and installgit clone https://github.com/ctxloom/ctxloom.gitcd ctxloomgo generate ./...go install .Make sure ~/go/bin is in your PATH:
export PATH=$PATH:$(go env GOPATH)/binBuild Commands
| Command | Description |
|---|---|
just build | Build ctxloom binary |
just install | Build and install to ~/go/bin |
just install-local | Build and install to ~/.local/bin |
just test | Run all tests |
Verify Installation
ctxloom --versionExpected output:
ctxloom version 0.5.4Shell Completion
Generate shell completion scripts for better CLI experience:
Bash
# Current session onlysource <(ctxloom completion bash)
# Permanent (Linux)ctxloom completion bash > /etc/bash_completion.d/ctxloom
# Permanent (macOS)ctxloom completion bash > /usr/local/etc/bash_completion.d/ctxloomZsh
# Add to fpath and restart shellctxloom completion zsh > "${fpath[1]}/_ctxloom"Fish
ctxloom completion fish > ~/.config/fish/completions/ctxloom.fishPowerShell
ctxloom completion powershell | Out-String | Invoke-ExpressionUpdating
Using Install Scripts
Just run the install script again - it will download and replace the existing binary:
macOS/Linux:
curl -fsSL https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.sh | bashWindows:
irm https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.ps1 | iexFrom Source
cd ctxloomgit pullgo generate ./...go install .Binary
Download the latest release and replace the existing binary.
Troubleshooting
Command not found
Ensure the installation directory is in your PATH:
# For go installecho $PATH | grep -q "$(go env GOPATH)/bin" || export PATH=$PATH:$(go env GOPATH)/bin
# For manual installecho $PATH | grep -q "/usr/local/bin" || export PATH=$PATH:/usr/local/binPermission denied
Use sudo when installing to system directories, or install to a user directory:
# Install to user directory insteadmkdir -p ~/.local/binmv ctxloom ~/.local/bin/export PATH=$PATH:~/.local/binmacOS: “Cannot be opened” or “Unverified developer”
macOS Gatekeeper blocks unsigned binaries downloaded from the internet. You may see:
- “ctxloom cannot be opened because it is from an unidentified developer”
- “ctxloom cannot be opened because Apple cannot check it for malicious software”
Solution 1: Use the install script (Recommended)
The install script automatically removes the quarantine attribute:
curl -fsSL https://raw.githubusercontent.com/ctxloom/ctxloom/main/scripts/install.sh | bashSolution 2: Remove the quarantine attribute manually
# Remove the quarantine flag that macOS adds to downloaded filesxattr -d com.apple.quarantine /usr/local/bin/ctxloomSolution 3: Allow in System Settings
- Try to run
ctxloom- macOS will block it - Open System Settings → Privacy & Security
- Scroll down to find the blocked app message
- Click “Open Anyway”
- Confirm by clicking “Open” in the dialog
Solution 4: Build from source
Building from source avoids Gatekeeper entirely since the binary is created locally:
git clone https://github.com/ctxloom/ctxloom.gitcd ctxloomgo generate ./...go install .Why this happens: ctxloom binaries are not code-signed or notarized with Apple. This is common for open-source CLI tools distributed via GitHub releases.
Next Steps
After installation:
- Quick Start - Get up and running
- Configuration - Set up your environment