airgap-check
Open-source Go CLI that audits AI repositories for runtime downloads, telemetry, and network calls that break in offline or air-gapped environments.
At a Glance
MIT-licensed airgap-check CLI, free to use, copy, modify and distribute; self-hosted via install script, go install, or build from source.
Engagement
Available On
Alternatives
Listed Nov 2026
About airgap-check
airgap-check is an open-source command-line tool from Humanet that scans AI application repositories for libraries that download assets or contact external hosts when the network is unavailable. It combines static scanning of manifests, lockfiles and source code with an optional Docker-based run under --network none. The latest release listed is v0.2.2, and it is released under the MIT license.
What It Is
airgap-check is a pre-deployment auditing tool for teams that want to run LLM apps in air-gapped VPCs, hospital or defense networks, or containers with no internet. Pointing an app at a local vLLM or Ollama instance does not guarantee offline readiness, because many libraries fetch tokenizer ranks, ONNX embedding weights, corpora, price maps, or telemetry on first use. The tool surfaces these before deployment. Its README states it is not a security certification and that a clean result does not prove an application is safe to run in an isolated network.
How the Scan Works
The static scan inspects dependency manifests (such as requirements*.txt, pyproject.toml, package.json, Cargo.toml, go.mod, Gemfile) and follows lockfiles, tagging findings by scope such as prod, transitive lockfile, or optional extra. It also flags known runtime fetch calls like nltk.download(), spacy.load(), from_pretrained() and tiktoken.get_encoding(), remote model asset URLs, runtime update checks, and server and browser telemetry endpoints. Missing HTTP timeouts are reported separately as advisory robustness hints. .env files are inspected for key names and git tracking status only; secret values are never read or logged.
Running in a No-Network Container
With --run, the tool starts an ephemeral Docker container with --network none, mounts the repository read-only, and injects a loopback observer. The observer uses DNS, TLS SNI and HTTP sinkholes plus Python and Node socket hooks to record attempted connections to a log file. Options include --build to build the repo's Dockerfile, --run-cmd for a custom smoke test, --image, and --dns-action nxdomain. The README documents limits, including validation only for Python, Node.js and built Dockerfile images, and that only exercised code paths are tested.
Remediation Output
The --fix option prints a Dockerfile snippet with ENV flags that disable telemetry or enable offline modes, plus pre-warming commands for caches such as tiktoken, Hugging Face and ChromaDB models. Custom rules can be added through .airgap-check.json or --rules, and --json gives machine-readable output.
Setup Path
Install via a shell script on macOS and Linux, with go install (Go 1.22+, also on Windows), or build from source. The tool uses only the Go standard library, and --run requires Docker.
Community Discussions
Be the first to start a conversation about airgap-check
Share your experience with airgap-check, ask questions, or help others learn from your insights.
Pricing
Open Source
MIT-licensed airgap-check CLI, free to use, copy, modify and distribute; self-hosted via install script, go install, or build from source.
- MIT License
- Go standard library only
- Manifest & lockfile scan
- Source patterns & heuristics
- Python and Node --run in Docker with --network none (requires Docker)
Capabilities
Key Features
- Manifest and lockfile scanning across Python, Node, Rust, Go and Ruby ecosystems
- Source pattern detection of runtime model and asset downloads
- Docker --network none run mode with DNS, TLS SNI and HTTP loopback sinkholes
- Python and Node socket hooks to record connection attempts
- -fix output with Dockerfile ENV flags and pre-warming commands
- Telemetry detection for server and browser SDKs
- Custom rules via .airgap-check.json or --rules
- Machine-readable JSON output
- Advisory robustness hints for missing HTTP timeouts
- .env key classification without reading secret values
