Skip to main content

CLI Installation

The zopp CLI is the primary way to interact with zopp. It handles all encryption client-side, so your secrets never leave your machine unencrypted.

The install script automatically detects your platform and installs the latest release:

curl -fsSL https://raw.githubusercontent.com/faiscadev/zopp/main/install.sh | sh

This installs to ~/.local/bin/zopp. Make sure this directory is in your PATH.

Package Managers

If you have Rust installed:

cargo install --git https://github.com/faiscadev/zopp --package zopp-cli

Pre-built Binaries

Download pre-built binaries from GitHub Releases:

PlatformArchitectureDownload
Linuxx86_64zopp-linux-x86_64
LinuxARM64zopp-linux-arm64
macOSIntelzopp-darwin-x86_64
macOSApple Siliconzopp-darwin-arm64
Windowsx86_64zopp-windows-x86_64.exe
  1. Download the binary for your platform
  2. Make it executable (Linux/macOS):
    chmod +x zopp-*
  3. Move to a directory in your PATH:
    mv zopp-* /usr/local/bin/zopp

Build from Source

  1. Install Rust (1.90 or later):

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Clone and build:

    git clone https://github.com/faiscadev/zopp.git
    cd zopp
    cargo build --release --package zopp-cli
  3. Install:

    cp target/release/zopp ~/.local/bin/

Verify Installation

zopp --version
# zopp 0.1.0

Configuration

The CLI stores configuration in ~/.zopp/config.json. This file contains:

  • Your principal credentials (Ed25519 and X25519 keypairs)
  • Server connection settings
  • Active principal selection
danger

Never share your ~/.zopp/config.json file. It contains your private keys.

Shell Completion

Generate shell completions for your shell:

# Bash
zopp completions bash > ~/.local/share/bash-completion/completions/zopp

# Zsh
zopp completions zsh > ~/.zfunc/_zopp

# Fish
zopp completions fish > ~/.config/fish/completions/zopp.fish

Connecting to a Server

By default, zopp connects to http://127.0.0.1:50051. To connect to a different server:

# Use a flag
zopp --server https://zopp.example.com:50051 workspace list

# Or set an environment variable
export ZOPP_SERVER=https://zopp.example.com:50051
zopp workspace list

For self-signed certificates, provide the CA certificate:

zopp --server https://zopp.example.com:50051 --tls-ca-cert /path/to/ca.crt workspace list

# Or via environment variable
export ZOPP_TLS_CA_CERT=/path/to/ca.crt

Next Steps