Documentation

Platforms

greppy runs its two embedded models on the GPU. Production inference runs over Metal on macOS and over CUDA on Linux. The release targets follow from that.

Platform Inference Daemon transport Browser tool Optional workspace acceleration
macOS, Apple Silicon Metal Unix-domain socket yes, beta FSKit extension, macOS 15.4+
Linux x86_64 NVIDIA CUDA Unix-domain socket yes, beta FUSE3 provider

Windows is not a release target. You can build the CLI there as a debug build from source; the browser tool and the agent workspace provider do not exist on Windows. macOS on Intel and Linux on ARM64 are not release targets either; the installer refuses them.

Packages

v0.4.1 ships as a .pkg for macOS on Apple Silicon and as a .deb and an .rpm for Linux x86_64. Alongside them come a SHA-256 file and an SBOM per package, the build environments, the model provenance report, the Qwen model's training evidence and the checksum list.

$ gh release view v0.4.1 --repo metric-space-ai/greppy --json assets --jq '.assets[].name'
build-environment-linux-x86_64.json
build-environment-macos-arm64.json
greppy-linux-x86_64.deb
greppy-linux-x86_64.deb.sha256
greppy-linux-x86_64.deb.spdx.json
greppy-linux-x86_64.rpm
greppy-linux-x86_64.rpm.sha256
greppy-linux-x86_64.rpm.spdx.json
greppy-macos-arm64.pkg
greppy-macos-arm64.pkg.sha256
greppy-macos-arm64.pkg.spdx.json
greppy-qwen35-training-evidence.tar.gz
greppy-qwen35-training-evidence.tar.gz.sha256
model-redistribution-report.json
RELEASE-ASSETS.json
SHA256SUMS
Package Size Contents
greppy-macos-arm64.pkg 844 MB /Applications/GreppyWorkspaceFS.app with CLI, browser runtime and FSKit extension; /usr/local/bin/greppy points to the CLI inside the app. Signed with Developer ID, notarized, notarization ticket stapled.
greppy-linux-x86_64.deb 887 MB /usr/bin/greppy; under /usr/lib/greppy/bin/ the CLI, the FUSE3 provider greppy-workspace-provider and the browser runtime; the systemd user unit greppy-workspace-provider.service. Depends on fuse3.
greppy-linux-x86_64.rpm 946 MB the same release as an RPM for Linux x86_64

Every CLI carries both models with their tokenizers, and greppy downloads nothing at runtime. That is why the CLI file of the macOS installation is 974 MB. The installer picks the package for your platform and checks it against SHA256SUMS; Security and verification shows how you check a package yourself.

Choose the inference backend

greppy picks the platform's backend automatically. You pin it with the global option --device or with GREPPY_DEVICE:

greppy doctor --json --device metal
GREPPY_DEVICE=cuda:1 greppy index .
Value Backend
auto picks the backend automatically (default)
metal Metal on Apple Silicon
cuda[:INDEX] CUDA, optionally on a specific GPU
cpu blocked in release builds, ends with exit 73

greppy doctor shows the selected backend, all backends with their state and the two inference daemons. greppy doctor --json also names the SHA-256 of both embedded models.

$ greppy doctor
status: ok
…
embedding_complete: true
inference: preference=auto explicit=false selected=metal device=metal:0000000100000471
  backend cuda compiled=false available=false score=0 abi=1 reason=CUDA backend is not compiled for this platform
  backend metal compiled=true available=true score=300 abi=1
    device metal:0000000100000471 Apple M5 memory_free=26800144384 memory_total=26800603136
  backend cpu compiled=true available=true score=100 abi=1
    device cpu:0 aarch64 memory_total=34359738368
  daemon embedding state=ready endpoint=/tmp/greppy-daemon-501/embedding-29a0b2f328340be0f959015526e5022b.sock
  daemon summary state=ready endpoint=/tmp/greppy-daemon-501/summary-54edb0d71ff2d80862083125f394706b.sock
project: serde
schema: 17/17 current
integrity: ok
freshness: fresh
generation: 1
stats: files=339 nodes=4573 edges=9427
…

An explicitly chosen backend that is unavailable fails with a diagnostic instead of silently falling back to another device. On the Mac, greppy doctor --device cuda ends with exit 73 and status: unhealthy; every inference daemon reports explicit inference backend `cuda` is unavailable: CUDA backend is not compiled for this platform.

$ greppy doctor --device cuda
status: unhealthy
…
inference: preference=cuda explicit=true selected=none device=none
  backend cuda compiled=false available=false score=0 abi=1 reason=CUDA backend is not compiled for this platform
…
$ greppy doctor --device cpu
status: unhealthy
…
inference: preference=cpu explicit=true selected=cpu device=cpu:0
…
  daemon embedding state=faulted error=invalid request: CPU inference is disabled in product builds; use the platform GPU by removing --device cpu or --no-gpu and unsetting GREPPY_DEVICE=cpu or GREPPY_NO_GPU
  daemon summary state=faulted error=invalid request: CPU inference is disabled in product builds; use the platform GPU by removing --device cpu or --no-gpu and unsetting GREPPY_DEVICE=cpu or GREPPY_NO_GPU
…

GPU drivers

greppy installs no drivers, toolkits or other software. On Linux, the NVIDIA driver must already be installed; the installer warns when libcuda.so.1 is missing. Name your GPU and driver version when you report a problem.

Build from source

Product builds need compiled GPU backends for both embedded models. Supported build targets are Apple Silicon with Metal and Linux x86_64 with CUDA including nvcc; the platform's backend is active automatically. A build needs Rust ≥ 1.95, a C toolchain, jq and curl, and downloads about 780 MB of model files, each checked against its pinned SHA-256. See Quickstart.

Features per platform

Feature macOS Linux
Code navigation, search, read, edit, bash-smart yes yes
Built-in agent greppy -p (beta) yes yes
Interactive agent, sessions, agent serve (beta) yes yes
Agent sandbox for tool subprocesses Seatbelt Landlock
Browser tool greppy web (beta) yes yes

The agent workspace provider (FSKit from macOS 15.4, FUSE3 on Linux) is optional acceleration. The agent works the same without an active provider.

$ greppy workspace status
agent workspace ready (ordinary backend; provider inactive); 0 workspace(s), 0 chunks, 0 physical bytes

Get help

Open a GitHub issue with:

  • greppy --version and the exact release checksum;
  • operating system, CPU, GPU and driver version;
  • greppy doctor --json, with private paths redacted;
  • the command, its exit code and, when possible, a minimal reproducible repository.

You report security vulnerabilities privately; see Security and verification.