Dokumentation

Plattformen

greppy rechnet seine zwei eingebetteten Modelle auf der GPU. Produktive Inferenz läuft auf macOS über Metal und auf Linux über CUDA. Daraus folgen die Release-Ziele.

Plattform Inferenz Daemon-Transport Browser-Tool Optionale Workspace-Beschleunigung
macOS, Apple Silicon Metal Unix-Domain-Socket ja, Beta FSKit-Extension, macOS 15.4+
Linux x86_64 NVIDIA CUDA Unix-Domain-Socket ja, Beta FUSE3-Provider

Windows ist kein Release-Ziel. Die CLI lässt sich dort als Debug-Build aus dem Quellcode bauen; Browser-Tool und Agent-Workspace-Provider gibt es unter Windows nicht. macOS auf Intel und Linux auf ARM64 sind ebenfalls keine Release-Ziele, der Installer lehnt sie ab.

Pakete

v0.4.1 erscheint als .pkg für macOS auf Apple Silicon sowie als .deb und .rpm für Linux x86_64. Dazu kommen pro Paket eine SHA-256-Datei und ein SBOM, die Build-Umgebungen, der Modell-Herkunftsbericht, das Trainingsprotokoll des Qwen-Modells und die Prüfsummenliste.

$ 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
Paket Größe Inhalt
greppy-macos-arm64.pkg 844 MB /Applications/GreppyWorkspaceFS.app mit CLI, Browser-Runtime und FSKit-Extension; /usr/local/bin/greppy zeigt auf die CLI in der App. Signiert mit Developer ID, notarisiert, Notarisierungsticket angeheftet.
greppy-linux-x86_64.deb 887 MB /usr/bin/greppy; unter /usr/lib/greppy/bin/ die CLI, der FUSE3-Provider greppy-workspace-provider und die Browser-Runtime; die systemd-User-Unit greppy-workspace-provider.service. Abhängigkeit: fuse3.
greppy-linux-x86_64.rpm 946 MB dasselbe Release als RPM für Linux x86_64

Jede CLI trägt beide Modelle samt Tokenizer in sich, zur Laufzeit lädt greppy nichts nach. Die CLI-Datei der macOS-Installation ist deshalb 974 MB groß. Der Installer wählt das Paket für deine Plattform und prüft es gegen SHA256SUMS; wie du ein Paket selbst prüfst, steht unter Sicherheit und Verifikation.

Inferenz-Backend wählen

greppy wählt das Backend der Plattform automatisch. Festlegen kannst du es mit der globalen Option --device oder mit GREPPY_DEVICE:

greppy doctor --json --device metal
GREPPY_DEVICE=cuda:1 greppy index .
Wert Backend
auto wählt das Backend automatisch (Standard)
metal Metal auf Apple Silicon
cuda[:INDEX] CUDA, optional auf einer bestimmten GPU
cpu in Release-Builds gesperrt, endet mit Exit 73

greppy doctor zeigt das gewählte Backend, alle Backends mit ihrem Zustand und die beiden Inferenz-Daemons. greppy doctor --json nennt zusätzlich die SHA-256 beider eingebetteter Modelle.

$ 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
…

Ein ausdrücklich gewähltes Backend, das nicht verfügbar ist, scheitert mit einer Diagnose, statt still auf ein anderes Gerät auszuweichen. Auf dem Mac endet greppy doctor --device cuda mit Exit 73 und status: unhealthy; jeder Inferenz-Daemon meldet 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-Treiber

greppy installiert keine Treiber, Toolkits oder sonstige Software. Unter Linux muss der NVIDIA-Treiber bereits installiert sein; der Installer warnt, wenn libcuda.so.1 fehlt. Nenne GPU und Treiberversion, wenn du ein Problem meldest.

Aus dem Quellcode bauen

Produkt-Builds brauchen kompilierte GPU-Backends für beide eingebetteten Modelle. Unterstützte Build-Ziele sind Apple Silicon mit Metal und Linux x86_64 mit CUDA inklusive nvcc; das Backend der Plattform ist automatisch aktiv. Ein Build braucht Rust ≥ 1.95, eine C-Toolchain, jq und curl und lädt rund 780 MB Modelldateien, jede gegen ihre festgelegte SHA-256 geprüft. Siehe Schnellstart.

Funktionen je Plattform

Funktion macOS Linux
Code-Navigation, Suche, Lesen, Bearbeiten, bash-smart ja ja
Eingebauter Agent greppy -p (Beta) ja ja
Interaktiver Agent, Sessions, agent serve (Beta) ja ja
Agent-Sandbox für Tool-Subprozesse Seatbelt Landlock
Browser-Tool greppy web (Beta) ja ja

Der Agent-Workspace-Provider (FSKit ab macOS 15.4, FUSE3 unter Linux) ist optionale Beschleunigung. Der Agent arbeitet genauso ohne aktiven Provider.

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

Hilfe bekommen

Öffne ein GitHub-Issue mit:

  • greppy --version und der exakten Release-Prüfsumme;
  • Betriebssystem, CPU, GPU und Treiberversion;
  • greppy doctor --json, private Pfade geschwärzt;
  • dem Befehl, seinem Exit-Code und, wenn möglich, einem minimalen reproduzierbaren Repository.

Sicherheitslücken meldest du vertraulich, siehe Sicherheit und Verifikation.