Installation

This guide covers all methods to install Probitas CLI.

Shell Installer

Requires Deno v2.x or later.

Install the CLI using the shell installer:

curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | bash

Options

Configure installation via environment variables:

# Install specific version
curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | PROBITAS_VERSION=0.7.3 bash

# Install to custom directory
curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | PROBITAS_INSTALL_DIR=/usr/local/bin bash

Homebrew (macOS/Linux)

Install via the official Homebrew tap:

# Add the tap and install
brew tap probitas-test/tap
brew install probitas

# Or install directly
brew install probitas-test/tap/probitas

Nix

The Probitas CLI provides a Nix flake with multiple usage patterns.

Run Without Installing

Execute probitas directly without installing:

nix run github:probitas-test/cli

Install to Profile

Install into your Nix profile for persistent access:

nix profile install github:probitas-test/cli

Add to Project's flake.nix

Add Probitas to your project's development environment using the overlay:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    probitas.url = "github:probitas-test/cli";
    probitas.inputs.nixpkgs.follows = "nixpkgs";
    probitas.inputs.flake-utils.follows = "flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils, probitas }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
          inherit system;
          overlays = [ probitas.overlays.default ];
        };
      in {
        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            probitas
          ];
        };
      });
}

Enter the development environment:

nix develop

Why Use Overlays?

The overlay pattern integrates probitas directly into your pkgs, enabling cleaner configuration:

overlays = [ probitas.overlays.default ];
# ...
packages = with pkgs; [ probitas ];  # probitas is now part of pkgs

Benefits:

  • Unified namespace: Access probitas like any nixpkgs package
  • Composable: Combine with other overlays seamlessly

Why Use inputs.follows?

The inputs.follows directive ensures Probitas uses your project's nixpkgs version instead of its own pinned version:

probitas.inputs.nixpkgs.follows = "nixpkgs";
probitas.inputs.flake-utils.follows = "flake-utils";

Benefits:

  • Single nixpkgs version: All dependencies share one nixpkgs, reducing closure size
  • Faster evaluation: Fewer inputs to fetch and evaluate

Pin a Specific Version

Lock to a specific CLI version using a commit hash or tag:

probitas.url = "github:probitas-test/cli/v0.7.3";

Or using a commit:

probitas.url = "github:probitas-test/cli/abc1234";

Flake Outputs Reference

The Probitas CLI flake provides:

OutputDescription
overlays.defaultOverlay adding probitas to pkgs
packages.${system}.defaultThe probitas CLI package
packages.${system}.probitasAlias for the CLI package
apps.${system}.defaultApp for nix run
devShells.${system}.defaultDevelopment shell

Verify Installation

After installation, verify the CLI is working:

probitas --version

Next Steps

Search Documentation