Welcome to the chexum user documentation. This guide will help you get the most out of chexum, from basic usage to advanced scripting and CI/CD integration.
As of v0.5.1 chexum is 100% AI written. Tools used include Kiro, Gemini CLI, Roo Code, and Antigrativy. chexum is not ready for production use. Please review all code and documentation carefully before use. Security and reliability are very important to the chexum project. Please report any issues you find on the GitHub Issues page.
chexum is a human-first, intuitive Command Line Interface (CLI) tool for hashing, built with Go. It aims to provide a robust, script-friendly, and easy-to-use alternative to traditional hashing utilities.
- Go 1.24.0 or later.
To build chexum for your current environment:
git clone https://github.com/Les-El/chexum.git
cd chexum
go build -o chexum ./cmd/chexumYou can build for other operating systems and architectures using environment variables:
Linux (64-bit)
GOOS=linux GOARCH=amd64 go build -o chexum ./cmd/chexumWindows (64-bit)
GOOS=windows GOARCH=amd64 go build -o chexum.exe ./cmd/chexummacOS (Intel)
GOOS=darwin GOARCH=amd64 go build -o chexum ./cmd/chexummacOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o chexum ./cmd/chexumTo run chexum from anywhere, add the directory containing the binary to your system's PATH.
Move the binary to a directory already in your PATH (e.g., /usr/local/bin):
sudo mv chexum /usr/local/bin/Or add the directory to your shell profile (~/.bashrc, ~/.zshrc, etc.):
export PATH=$PATH:/path/to/chexum-folder- Open the Start Menu, search for "Edit the system environment variables", and select it.
- Click the Environment Variables button.
- Under System variables, find Path, select it, and click Edit.
- Click New and add the full path to the folder where
chexum.exeis located. - Click OK on all windows to save.
To completely remove chexum from your system:
- Delete the binary: Remove the
chexum(orchexum.exe) file from your system. - Remove from PATH: If you manually added
chexumto your PATH, revert those changes. - Delete Configuration: Remove the configuration directories where
chexumstores its settings:- Linux / macOS:
~/.chexum/~/.config/chexum/
- Windows:
%USERPROFILE%\.chexum\%USERPROFILE%\.config\chexum\
- Linux / macOS:
For more detailed setup options, please refer to the Getting Started guide.
Basic usage examples:
./chexum [files...]
./chexum -r [directory]
./chexum --json [files...]For more details, see the Examples and Command Reference.
- getting-started.md - Installation and your first hash
- examples.md - Common usage patterns and recipes
- command-reference.md - Complete flag and option reference
- flags-and-arguments.md - Quick lookup for flags and arguments
- filtering.md - Detailed guide to include/exclude patterns, size, and date filters
- incremental.md - How to use manifests for high-performance hashing in CI/CD
- dry-run.md - Previewing operations and estimating time
- performance.md - Performance optimization and benchmarks
- output-formats.md - Understanding JSON and JSONL output
- csv_output.md - Detailed guide for CSV output and integration
- scripting.md - Integrating chexum into bash, PowerShell, and more
- configuration.md - Managing config files and environment variables (Coming soon)
- project_master_guide.md - Comprehensive architectural and project overview
- error-handling.md - Troubleshooting and understanding error messages
- test-space-management.md - Managing disk space during large test runs
chexum is designed to be intuitive and easy to use. Considerations include colorized output when a TTY is detected, progress bars for long-running operations, and helpful error messages. Arguments and modifiers are processed through a "pipeline of intent," making syntax more flexible and easier on the fingers.
The chexum project assumes that any bad actor will have control over all inputs and be able to view all outputs, in addition to having researched the repository. Defenses include restricted write operations, sanitized inputs, file tranversal protections, non-standard character handling,
If you choose to contribute to chexum, please consider that security is a top priority.
chexum was built with people in mind. Part of that is making your automation and scripting easier. The tool has output support for JSON, JSONL, and csv files. stdout and stderr are split into separate streams, exit codes are consistent, the boolean flag implies quiet, and there are advanced filtering options to limit output to only what you need.
- Freindly Neighbor Policy: chexum aims to limit its resource and respect the environment it runs in.
With advanced filtering and incremental hashing via manifests, chexum can handle codebases with hundreds of thousands of files efficiently.
If you're ever stuck, remember:
chexum --helpfor a quick flag referencechexum --verbosefor detailed error information- Check the docs/user/error-handling.md guide for common solutions
This project is licensed under the MIT License. See the LICENSE file for details. Third-party library licenses are documented in THIRD_PARTY_LICENSES.md.