Skip to content

Installation

Rafael Fragoso edited this page Jun 7, 2026 · 3 revisions

Installation

Columbus is a single Go binary. It is always built with -tags fts5 and CGO_ENABLED=1 (tree-sitter and SQLite are C libraries).

Requirements

Requirement Why
Go 1.26+ Build toolchain
A C compiler (cgo) tree-sitter + SQLite/FTS5
git The only hard runtime dependency — Columbus anchors the index to git state
ripgrep (recommended) Search fast-path; a pure-Go fallback covers the rest
ast-grep (optional) Optional structural matching

Option 1 — go install

CGO_ENABLED=1 go install -tags fts5 github.com/orafaelfragoso/columbus/cmd/columbus@latest

This installs columbus into $(go env GOPATH)/bin. Make sure that directory is on your PATH:

export PATH="$(go env GOPATH)/bin:$PATH"

Option 2 — Build from source

git clone https://github.com/orafaelfragoso/columbus
cd columbus
brew install zig goreleaser ripgrep ast-grep   # build/dev toolchain (macOS)
make install      # -> ~/.local/bin/columbus  (override with PREFIX=/usr/local/bin)

make build drops the binary in dist/columbus; make install puts it on your PATH (PREFIX defaults to ~/.local/bin).

Verify

columbus version
columbus doctor

doctor confirms your environment is ready — git, ripgrep, ast-grep, the embedded grammars, and (inside a project) the database and index. See Command: doctor.

[ok]   columbus     version 0.1.0
[ok]   git          /usr/bin/git
[ok]   ripgrep      /usr/bin/rg
[ok]   ast-grep     /usr/local/bin/ast-grep
[ok]   grammars     6 languages loaded
healthy

Next steps

Quick Start · Your First Index & Search

Clone this wiki locally