Skip to main content
Version: Next

Environment Variables

Poof supports several environment variables that allow you to customize its behavior without requiring configuration files. This page documents all available environment variables and their usage.

Summary Table

VariablePurposeDefaultCommon Values
GITHUB_TOKENGitHub API authenticationNot setToken string
POOF_PREFER_MUSLPrefer musl over glibcAuto-detect1, 0, true, false
POOF_GITHUB_API_URLCustom GitHub API endpointhttps://api.github.com/reposURL string
RUST_LOGLogging verbosityinfoerror, warn, info, debug, trace

GITHUB_TOKEN

Purpose: Authenticate with GitHub API to increase rate limits

Default: Not set (uses unauthenticated requests)

Accepted values: Valid GitHub Personal Access Token

Why You Need It

If you frequently install tools or work in environments with shared IP addresses, or plan to install many tools at once, setting a GitHub token is highly recommended.

See the Rate Limiting page for detailed instructions on creating a GitHub token.

POOF_PREFER_MUSL

Purpose: Explicitly prefer musl-linked binaries over glibc

Default: Auto-detected (checks for glibc presence on Linux)

Accepted values:

  • Enable: 1, true, TRUE, True
  • Disable: 0, false, FALSE, False

When to Use It

Set this variable when you prefer static builds over Glibc (*-gnu) ones.

The setting is unlikely to be needed in real-life. Poof detects Alpine Linux installation and which libc is present in the system and automatically falls back to MUSL builds when required.

How to Set It

Prefer musl builds:

export POOF_PREFER_MUSL=1

POOF_GITHUB_API_URL

Purpose: Override the default GitHub API endpoint

Default: https://api.github.com/repos

Accepted values: Any valid GitHub API URL

When to Use It

This variable is primarily for:

  • GitHub Enterprise Server: Point to your organization's GitHub Enterprise instance
  • Testing: Use a mock server during development or testing
  • Custom endpoints: Connect to alternative GitHub API implementations

How to Set It

export POOF_GITHUB_API_URL="https://github.example.com/api/v3/repos"
warning

This is an advanced feature. Most users should not need to set this variable. The default value works for public GitHub (github.com).

RUST_LOG

Purpose: Control poof's logging verbosity for troubleshooting and debugging

Default: info level

Accepted values: error, warn, info, debug, trace

For detailed information about debug logging, see the Debug Logs page.

Quick example:

# Enable debug logging for a single command
RUST_LOG=debug poof install user/repo
tip

When reporting bugs, always include output with RUST_LOG=debug. See the Debug Logs page for complete instructions.

Combining Environment Variables

You can use multiple environment variables together:

# Use GitHub token, prefer musl, and enable debug logging
export GITHUB_TOKEN="ghp_xxxxxxxxxxxx"
export POOF_PREFER_MUSL=1
export RUST_LOG=debug

poof install user/repo

Or set them temporarily for a single command:

GITHUB_TOKEN="ghp_xxx" RUST_LOG=debug poof install user/repo
  • Rate Limiting - Detailed guide on GitHub tokens
  • Debug Logs - Complete guide to debug logging with RUST_LOG
  • Features - Learn about smart asset selection
  • Support - Get help with configuration issues