How to Install Tuicr: 7 Methods from Official Script to Source Build
The fastest way to install Tuicr is to run curl -fsSL tuicr.dev/install.sh | sh, which downloads the latest release, verifies its SHA-256 digest, and atomically swaps the binary into place using the logic in src/update/install.rs.
Tuicr is a Rust-based CLI tool hosted at agavra/tuicr that enables terminal-driven code review workflows. Whether you need a one-line installer for CI pipelines or a package manager integration for development machines, this guide covers every installation method backed by the actual source code implementation.
Official Install Script (macOS & Linux)
The recommended method uses the official install script:
curl -fsSL tuicr.dev/install.sh | sh
This script delegates to Tuicr's built-in updater. According to the source code in src/update/install.rs (lines 24-55), the installer fetches the release asset, verifies its SHA-256 digest, extracts the binary using extract_binary, and performs an atomic swap_executable to replace the running process without leaving the system in a broken state.
Package Manager Installation
Homebrew (macOS and Linux)
Install via the official tap:
brew install agavra/tap/tuicr
Homebrew tracks versions initially, but subsequent updates leverage Tuicr's self-update mechanism in src/update/install.rs rather than Homebrew's native upgrade path.
Cargo (Rust Toolchain)
Install from crates.io:
cargo install tuicr
This compiles the entry point defined in src/lib.rs (lines 1-4), which re-exports the public API including the update functionality.
Mise
For version management with Mise:
mise use github:agavra/tuicr
Mise places the binary on your PATH; subsequent updates delegate to tuicr update.
Nix
Temporary execution without installation:
nix run github:agavra/tuicr
Persistent installation:
nix profile install github:agavra/tuicr
The Nix package builds from source using src/lib.rs as the library entry point.
Manual Installation Methods
Pre-built Binaries
Download release assets directly from the GitHub Releases page. After downloading:
chmod +x tuicr
./tuicr
The binary uses the same self-update path as the install script, located in src/update/install.rs.
Build from Source
Clone and install locally:
git clone https://github.com/agavra/tuicr.git
cd tuicr
cargo install --path .
The CLI entry point resides in src/main.rs (lines 1-5), which wires subcommands like update, review, and pr.
How Tuicr Self-Updates Work
After installation, keep Tuicr current with:
tuicr update # Update to latest
tuicr update 0.18.0 # Pin to specific version
The update logic detects your installation method via detect_install_method in src/update/installation.rs. If a package manager (Homebrew, Cargo, Mise, or Nix) owns the executable, Tuicr delegates to it. Otherwise, it downloads the release asset, verifies the SHA-256 hash, and atomically swaps the binary using update_installed defined in src/update/install.rs.
Example of programmatic update usage:
use tuicr::update::install::update_installed;
fn main() -> Result<(), tuicr::TuicrError> {
let outcome = update_installed()?;
println!("{outcome}");
Ok(())
}
Summary
- Fastest install:
curl -fsSL tuicr.dev/install.sh | shuses the atomic swap logic insrc/update/install.rs. - Package managers: Homebrew, Cargo, Mise, and Nix all install the same binary but handle initial placement differently; updates still route through
tuicr update. - Self-updating: The
tuicr updatecommand detects your install method viasrc/update/installation.rsand either delegates to the package manager or performs a SHA-256 verified binary swap. - Source builds: Compile from
src/main.rsfor development or customization usingcargo install --path ..
Frequently Asked Questions
Does Tuicr support automatic updates on all platforms?
Yes. The tuicr update command works across all installation methods. As implemented in src/update/install.rs, it verifies SHA-256 digests before extracting and atomically swapping the binary. If you installed via Homebrew, Cargo, Mise, or Nix, it delegates to those managers instead of self-modifying.
Can I install Tuicr without root permissions?
Yes. The official install script and Cargo method install to user directories (~/.cargo/bin or ~/.local/bin by default). The swap_executable function in src/update/install.rs only requires write permissions to the directory containing the current binary, not system-wide access.
How do I pin Tuicr to a specific version?
Use tuicr update <version> to install a known-good release. For example, tuicr update 0.18.0 downloads and verifies that specific version using the same SHA-256 validation logic in src/update/install.rs. Package manager users can also use their native pinning (e.g., brew pin agavra/tap/tuicr).
Is the install script safe to pipe into sh?
The script at tuicr.dev/install.sh downloads the binary and immediately verifies its SHA-256 checksum using the verification routines in src/update/install.rs (lines 24-55). However, if you prefer, you can download the script first with curl -fsSL tuicr.dev/install.sh -o install.sh, audit it, and then run sh install.sh manually.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →