Show HN: GGG – A local-first, zero-telemetry sovereign proxy daemon for AI tools Garza Global Graviton LLC released v1.4.0 of its GGG sovereign proxy daemon, a local-first, air-gapped AI tool that runs entirely on local hardware with zero cloud telemetry and rejects any Ollama bridge endpoint other than localhost, 127.0.0.1, or [::1]. The v1.4.0 update makes the node's local web hub fully mobile-responsive for screens under 768px, and the packaged Windows binary ggg-daemon_v1.4.5_windows.zip ships self-signed with a SHA256SUMS.txt manifest for hash verification. The daemon's Synthetic Data Center architecture uses cooperating local daemons — Metabolic Heart, Liver, Lungs, and Immune System — over preallocated numpy memoryview buffers to move data without extra copies at local hardware speed. Garza Global Graviton LLC builds sovereign, 100% air-gapped edge computing systems — hardware and software that run entirely on local infrastructure, with zero mandatory network dependency, zero cloud telemetry, and zero vendor-side visibility into your data. The node's local web hub index.html https://github.com/JOxKxER/garza-global-graviton/blob/main/index.html is now fully mobile-responsive as of v1.4.0 : brand bars, the hardware plaque, the physics benchmark table, and the local Ollama bridge all reflow cleanly on phones and tablets screens under 768px , with buttons, inputs, and panels expanding to full width for comfortable touch interaction, and the physics benchmark table gaining smooth horizontal scrolling instead of a broken layout. Every node runs as a Synthetic Data Center : a single piece of local, air-gapped hardware organized like a living organism, paced and defended by cooperating biological daemons that never touch the network: - Metabolic Heart — paces admission and pulses the node's cadence at microsecond precision. - Liver — scrubs stale memory in-place with vectorized zeroization, never leaving residue. - Lungs — inhale and exhale data through a zero-copy ring buffer, moving bytes without ever duplicating them. - Immune System — a zero-trust scanner that quarantines and neutralizes any byte pattern it does not recognize. Because every buffer is a single preallocated memoryview over a numpy array, data moves through the organism without a single extra copy, and because the node is air-gapped, every daemon above runs at local hardware speed, not network speed. - Local-only by construction. The Ollama bridge only accepts localhost / 127.0.0.1 / ::1 endpoints; remote hosts are rejected before any request is ever sent, keeping the bridge 100% offline by construction. - Sovereign data ownership. Nothing leaves the device unless you explicitly choose to send it — there is no cloud dependency in the critical path. Grab the latest packaged sovereign app from the GitHub Releases page: https://github.com/JOxKxER/garza-global-graviton/releases/latest Or click Download Sovereign App directly from the top of the local web hub index.html https://github.com/JOxKxER/garza-global-graviton/blob/main/index.html . 1. Install and start Ollama https://ollama.com on the same machine or another host reachable at localhost /loopback . 2. Pull a model, e.g. ollama pull llama3.2:3b . 3. Open index.html in a browser and, in the Local Ollama Bridge panel, confirm the endpoint default http://localhost:11434 and model name, then click Check Status . 4. Once the badge shows ONLINE , use the Live Local Benchmark panel or the chat row to send prompts — everything runs locally, offline. The released ggg-daemon.exe is self-signed no commercial code-signing certificate , so Windows SmartScreen will show "Windows protected your PC" on first launch. This is expected for unsigned local binaries — it is a reputation warning, not a detection. To run it: 1. On the SmartScreen dialog, click "More info" . 2. Click "Run anyway" — the choice is remembered for that file. Verify authenticity before running recommended : every release ships a SHA256SUMS.txt alongside the binary. Compare the hash: Get-FileHash .\ggg-daemon v1.4.5 windows.zip -Algorithm SHA256 Then compare against the matching line in SHA256SUMS.txt If the hash matches the published manifest, the binary is exactly what this repository built. If it does not match, do not run it. Keep your editor 100% local by pointing a local-model extension at the same Ollama daemon http://localhost:11434 . Add to your VS Code settings.json Ctrl+Shift+P → Preferences: Open User Settings JSON : { "continue.server": { "port": 11434 }, "continue.models": { "title": "GGG Local Qwen", "provider": "ollama", "model": "qwen2.5-coder:latest", "apiBase": "http://localhost:11434" } , "ollama.baseUrl": "http://localhost:11434", "localai.model.basePath": "http://localhost:11434" } - Continue.dev Continue.continue : the continue.models entry selects your local qwen2.5-coder as the chat/edit model. See .continue/config.json https://github.com/JOxKxER/garza-global-graviton/blob/main/.continue/config.json for this repo's ready-made Continue configuration. - Ollama extensions e.g. Ollama.ollama : ollama.baseUrl redirects all model calls to loopback. - GitHub Copilot does not support custom/local model providers — use Continue or an Ollama extension for fully offline AI assistance. Cryptographic proof, for prospective enterprise buyers, that a sensitive manufacturing/data pipeline ran in a strictly air-gapped, tamper-evident environment -- verifiable entirely offline, without ever seeing the vendor's proprietary pipeline source. All of this lives under airgap attestation/ https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation . Honesty note: no software system can produce an unconditional mathematical proof of "zero network leakage" from a black box. What this platform delivers is a layered, tamper-evident, independently falsifiable evidence chain hardware-rooted measurement + a cryptographically sealed execution log + dual signatures where any single point of compromise is detectable. See airgap attestation/CLIENT ONBOARDING.md https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/CLIENT ONBOARDING.md for what a buyer should actually conclude from a passing/failing result. CLIENT AIR-GAPPED EXECUTION ENCLAVE CLIENT | 1. commit-reveal blind | a. TPM/enclave measured boot | | sha256 sample||salt | b. NIC disabled at hardware level | |--- POST /v1/submissions ------- | c. job runs; AuditManifestBuilder | |<-- {commitment id, nonce} ------| records PROCESS START/END, | | | NET IFACE SNAPSHOT, syscall counts | | 2. deliver encrypted sample | d. events sealed into a Merkle tree | | out-of-band, key sent | e. TPM/enclave QUOTE nonce||root | | via a SEPARATE channel | f. platform Ed25519 signature over | | | root, quote, validity window | | 3. poll GET /v1/submissions/{id} | | 4. GET /v1/submissions/{id}/bundle - AttestationBundle.json ------------ | | | | 5. verify cli.py, fully | | offline: Merkle root, | | TPM quote, platform sig, | | nonce freshness, zero- | | network invariant | | - PASS / FAIL | Full protocol writeup data schemas, hashing/signing details, edge cases : see the architecture discussion in project history, or read the code directly -- every design decision is documented as a comment at its point of use: merkle.py https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/merkle.py , schemas.py https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/schemas.py , verify client.py https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/verify client.py . airgap attestation/ merkle.py Domain-separated Merkle tree leaf/node hash separation, no odd-node duplication -- avoids classic forgery bugs schemas.py Wire-format dataclasses SubmissionCommitment, ExecutionEvent, AuditManifest, TpmQuoteEvidence, AttestationBundle, ... signing.py Ed25519 keygen/sign/verify platform transport-layer identity attestation.py HardwareAttestor interface: Tpm2ToolsAttestor real TPM 2.0, via tpm2-tools + ReferenceSoftwareAttestor dev/test only, explicitly rejected by production verification audit manifest.py AuditManifestBuilder + NetworkActivityMonitor pluggable; LocalReferenceMonitor ships as a portable fallback proof bundle.py Assembles/signs/saves/loads the final AttestationBundle verify client.py The entire client-side verifier -- no vendor source needed demo end to end.py Runnable proof-of-concept: build - sign - verify api/ store.py SQLite-backed, single-use nonce/commitment store atomic UPDATE ... WHERE guard -- no TOCTOU replay window nonce service.py FastAPI backend: submission intake, status, bundle download, internal ingest, rate limiting, security headers cli/ verify cli.py Buyer-facing CLI wrapper around verify client.py container/ Dockerfile Hardened image: distroless nonroot final stage docker-compose.yml repo-relative: airgap attestation/docker-compose.yml network mode: none, read only, cap drop ALL, seccomp seccomp-hardened.json Kernel-level deny-list for network syscalls firecracker config.json Stronger alternative: no NIC device exists at all entrypoint.py In-container job runner deployment runbook.ps1 Step-by-step build/run/ingest/verify commands CLIENT ONBOARDING.md Buyer-facing, step-by-step usage guide tests/ test airgap merkle.py, test airgap signing.py, test airgap pipeline.py, test airgap api.py, test airgap cli.py 60 tests, ~84% coverage of the package render.yaml Render deployment blueprint for nonce service:app .github/workflows/ci.yml GitHub Actions: pytest + coverage on push/PR init repo.ps1 Release packaging script see below From the repository root: python -m pip install -r requirements.txt python -m pip install pytest-cov only needed for local coverage reports Run the standalone end-to-end demo build - sign - verify a sample bundle : python airgap attestation\demo end to end.py Run the backend API locally: $env:AIRGAP INTERNAL INGEST KEY = "dev-only-key" uvicorn airgap attestation.api.nonce service:app --reload --port 8443 python -m pytest tests/ --cov=airgap attestation --cov-report=term-missing Expect 60 passed , ~84% coverage. The one large coverage gap attestation.py , ~61% is Tpm2ToolsAttestor -- the real-hardware TPM 2.0 code path, which is untestable without physical TPM hardware and is not mocked out just to inflate the number. See airgap attestation/container/ https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/container and its deployment runbook.ps1 . Summary of the layered controls any one being misconfigured must not compromise the others : | Control | Where | What it guarantees | |---|---|---| | network mode: none | docker-compose.yml | No network namespace peer at all | | network-interfaces: | firecracker config.json | No NIC device exists for the guest hypervisor-level, stronger than netns | | seccomp-hardened.json | docker-compose.yml | Kernel-level deny of every network syscall, defense in depth under --network none | | read only + cap drop: ALL | docker-compose.yml | Immutable rootfs, no elevated capabilities | | distroless nonroot base image | Dockerfile | No shell, no package manager, uid 65532 | Render see render.yaml : create a Blueprint instance pointing at this repo. It provisions the web service + a 1GB persistent disk at /var/data for the SubmissionStore's SQLite file, and generates AIRGAP INTERNAL INGEST KEY for you. Endpoints exposed by nonce service.py see CLIENT ONBOARDING.md https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/CLIENT ONBOARDING.md for full request/response examples : | Method | Path | Caller | |---|---|---| | POST | /v1/submissions | Client -- issue a single-use nonce | | GET | /v1/submissions/{id} | Client -- poll status | | GET | /v1/submissions/{id}/bundle | Client -- download the sealed bundle | | POST | /v1/internal/submissions/{id}/bundle | Vendor's air-gapped runner export step only key-protected | | GET | /healthz | Load balancer / uptime check | Buyers should start at airgap attestation/CLIENT ONBOARDING.md https://github.com/JOxKxER/garza-global-graviton/blob/main/airgap attestation/CLIENT ONBOARDING.md , which walks through: generating a commit-reveal hash, requesting a nonce, delivering the sample out-of-band, polling for the bundle, and running python airgap attestation/cli/verify cli.py \ --bundle AttestationBundle.json \ --platform-pubkey