gritpack
Universal package, module-graph, and software distribution client
Install
gritpack install gritpack '^1.2.45'
README
Gritpack
Gritpack is a package manager for projects that use more than one language. It gives C, C++, Rust, Go, JavaScript, and other ecosystems one place to publish, discover, lock, and retrieve software without taking over their build tools.
Use it as:
- a straightforward package client, like npm or Cargo;
- a private package hub on local disk or S3-compatible storage;
- a user-level installer for command-line applications; or
- a verified package and dependency-graph API embedded in developer tools.
Packages can use global names such as gritpack or npm-style scoped names such
as @frogfish/taxis-sdk. A package is private because it lives on a private
hub—not because of a per-package visibility flag.
Install
Official binaries are available for macOS arm64, Linux AMD64, and Linux ARM64.
Homebrew
brew tap frogfishio/gritpack-tap brew trust --formula frogfishio/gritpack-tap/gritpack brew install --formula frogfishio/gritpack-tap/gritpack
Ubuntu or Debian
sudo install -d -m 0755 /etc/apt/keyrings curl -fsSLo /tmp/gritpack-repository.gpg \ https://frogfishio.github.io/homebrew-gritpack/repository-signing-key.gpg sudo install -m 0644 /tmp/gritpack-repository.gpg \ /etc/apt/keyrings/gritpack.gpg curl -fsSLo /tmp/gritpack.sources \ https://frogfishio.github.io/homebrew-gritpack/gritpack.sources sudo install -m 0644 /tmp/gritpack.sources \ /etc/apt/sources.list.d/gritpack.sources sudo apt-get update sudo apt-get install gritpack
Fedora, RHEL, Rocky Linux, or AlmaLinux
curl -fsSLo /tmp/gritpack.repo \ https://frogfishio.github.io/homebrew-gritpack/gritpack.repo sudo install -m 0644 /tmp/gritpack.repo \ /etc/yum.repos.d/gritpack.repo sudo dnf install gritpack
Confirm the installation:
gritpack --version gritpack --help
Signed archives, Debian packages, RPMs, checksums, and release evidence are also available from GitHub Releases. See Binary distribution for upgrades, verification, and platform compatibility.
Once Gritpack is installed, it can update its user-level copy from the public hub:
gritpack install gritpack export PATH="$HOME/.frogfish/gritpack/bin:$PATH"
The operating-system package remains the recovery copy.
When a private profile is active, Gritpack checks that registry first and
falls back to the public registry only after an authenticated exact-name
absence. Use --from <registry> to select exactly one registry instead.
Find and use packages
Searching and reading public packages does not require an account:
gritpack search gritpack gritpack info gritpack
Create a project and add a dependency:
mkdir example && cd example gritpack init example --dialect c/c23 --encoding source/utf8 gritpack add utility '^1.0'
Gritpack writes gritpack.lock and installs the verified dependency closure
under packages/. Reproduce it later with:
gritpack sync --frozen gritpack verify
Scoped packages keep their scope in the filesystem. For example,
@frogfish/taxis-sdk is materialized beneath
packages/@frogfish/taxis-sdk/.
Package a command-line application
Gritpack packages files; it does not replace your compiler or build system. Build the application normally, then describe the finished package.
mkdir hello-cli && cd hello-cli mkdir -p bin cp /path/to/built/hello bin/hello chmod +x bin/hello gritpack init hello-cli \ --dialect application/cli \ --encoding executable/native \ --target x86_64-unknown-linux-gnu
Complete gritpack.toml:
[package]
name = "hello-cli"
version = "1.0.0"
dialect = "application/cli"
encoding = "executable/native"
target = "x86_64-unknown-linux-gnu"
description = "A small example command"
readme = "README.md"
license = "Apache-2.0"
license-files = ["LICENSE"]
files = ["bin/**", "README.md", "LICENSE"]
[entrypoints]
hello = "bin/hello"
[dependencies]
Create the immutable Capsule:
gritpack pack --output hello-cli-1.0.0.capsule
Publish separate Capsules for each native target. Source packages and
platform-independent packages can omit target.
Connect and publish
A hub operator gives each developer or CI runner a one-time enrollment code. The private key is created locally and never sent to the hub.
gritpack login you@example.com \ --server enroll.packages.example:443 \ --package-server packages.example:443 \ --profile company gritpack auth status --profile company gritpack auth use company
Verify a publication without changing the registry, then publish the reviewed plan:
gritpack publish --dry-run gritpack publish --yes
Or publish an already-created Capsule:
gritpack publish hello-cli-1.0.0.capsule --dry-run gritpack publish hello-cli-1.0.0.capsule --yes
Another user can install the application from that hub with:
gritpack install hello-cli --from packages.example
Existing ecosystems
Gritpack works with ecosystem-native clients instead of replacing them:
- Cargo keeps crates.io as its default and can use a named private Gritpack registry.
- npm can use Gritpack's native npm endpoint.
- Go consumes standard module-proxy projections.
- C and C++ packages remain build-system neutral; consumers may use Make, CMake, Meson, Loom, or anything else.
Start with the human guide, or go directly to:
- Feature overview
- User guide
- Package manifest
- Cargo integration
- Running a hub
- Registry retention and operator removal
- Hybrid and monorepo operation
- Embedded package API
- MCP integration
Develop Gritpack
cargo build --manifest-path gritpack/Cargo.toml cargo test --manifest-path gritpack/Cargo.toml make ci
The hosted S3 backend is feature-gated:
cargo build --manifest-path gritpack/Cargo.toml --features s3
Licence
By downloading, installing, or using Gritpack, you agree to the
Frogfish Binary License 1.0. Gritpack is licensed by Frogfish LLC.
Copyright © 2026 Alexander R. Croft. Run gritpack --license to read it.
Repository source is proprietary and governed by SOURCE-LICENSE.md and SOURCE-NOTICE.md. Third-party components keep their own licenses and are listed, with their license texts, in THIRD-PARTY-NOTICES, which ships with every release. See LICENSING.md for the full boundary.
Versions and variants
| Version | Variant | Status | Published |
|---|---|---|---|
| 1.2.45 (latest) | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-29 |
| 1.2.45 (latest) | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-29 |
| 1.2.44 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-29 |
| 1.2.44 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-29 |
| 1.2.43 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-29 |
| 1.2.43 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-29 |
| 1.2.42 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-25 |
| 1.2.42 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-25 |
| 1.2.40 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-22 |
| 1.2.40 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-22 |
| 1.2.39 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-22 |
| 1.2.39 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-22 |
| 1.2.38 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-22 |
| 1.2.38 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-22 |
| 1.2.37 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-18 |
| 1.2.37 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-18 |
| 1.2.36 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-10-18 |
| 1.2.36 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-18 |
| 1.2.35 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-12 |
| 1.2.34 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-12 |
| 1.2.33 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-12 |
| 1.2.32 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-11 |
| 1.2.31 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-11 |
| 1.2.30 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-08 |
| 1.2.28 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-07 |
| 1.2.27 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-06 |
| 1.2.26 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-06 |
| 1.2.24 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-06 |
| 1.2.23 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-06 |
| 1.2.22 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-05 |
| 1.2.21 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-10-04 |
| 1.2.19 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-29 |
| 1.2.18 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-29 |
| 1.2.17 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-09-21 |
| 1.2.17 | application/cli · executable/native · aarch64-unknown-linux-gnu | available | 2026-09-21 |
| 1.2.17 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-21 |
| 1.2.16 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-09-21 |
| 1.2.16 | application/cli · executable/native · aarch64-unknown-linux-gnu | available | 2026-09-21 |
| 1.2.16 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-21 |
| 1.2.15 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-21 |
| 1.2.14 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-19 |
| 1.2.13 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-18 |
| 1.2.12 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-18 |
| 1.2.11 | application/cli · executable/native · aarch64-apple-darwin | available | 2026-09-18 |
| 1.2.11 | application/cli · executable/native · aarch64-unknown-linux-gnu | available | 2026-09-18 |
| 1.2.11 | application/cli · executable/native · x86_64-unknown-linux-gnu | available | 2026-09-18 |
| 1.2.10 | application/cli · executable/native · aarch64-apple-darwin | yanked | 2026-09-14 |
| 1.2.10 | application/cli · executable/native · aarch64-unknown-linux-gnu | yanked | 2026-09-14 |
| 1.2.10 | application/cli · executable/native · x86_64-unknown-linux-gnu | yanked | 2026-09-14 |
Dependencies
This package declares no dependencies.
Integrity evidence
- Declared licence
- LicenseRef-Frogfish-Binary-License-1.0
- Licence files
-
share/gritpack/LICENSEshare/gritpack/THIRD-PARTY-NOTICES
- Capsule SHA-256
- a06b23d3dcbefb97aabc476cd0d6a292533fabf871bc25a97361eae4b2dc72e7
- Payload SHA-256
- 2b55b553dbecc619b331e2558d80d2913f96f9cfce3137f0ef73389186be27f6
- Capsule size
- 13.1 MiB
Presentation evidence — not a download link, and not an endorsement of the contents.