Skip to content
gritpack

gritpack

available

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

All published versions and variants of gritpack, newest first.
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/LICENSE share/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.