Air-gapped AI debugger for banking, healthcare, and defense: runs entirely on-premise via Ollama/vLLM/llama.cpp with network enforcement to guarantee zero data exfiltration
Project description
oneport-debug-local
Air-gapped AI debugger for regulated industries. Banks, hospitals, and defense
shops forbid sending any code or logs to external APIs — so Claude Code and ChatGPT
are blocked at the firewall, and developers get no AI debugging. oneport-local
runs a debugging agent entirely on-premise against your own Ollama / vLLM / llama.cpp
model, enforces the air-gap with iptables, and writes a tamper-evident audit
trail that proves zero data left the network.
Try it in 60 seconds (no GPU, no model, no API key)
pip install oneport-debug-local
oneport-local demo
The demo runs the real debugging agent against a materialized buggy repo (driven by a bundled offline model), shows the real iptables rules that would seal the network, and writes + verifies a real hash-chained audit entry:
Air-gap compliance preflight
iptables -A OUTPUT -j DROP
iptables -I OUTPUT -d localhost -p tcp --dport 11434 -j ACCEPT
...
✔ provider=local-inference · hash chain intact
Use it on your own code + on-prem model
export ONEPORT_MODE=local
export LOCAL_INFERENCE_URL=http://localhost:11434 # Ollama, vLLM, or llama.cpp
export LOCAL_INFERENCE_MODEL=deepseek-coder:6.7b
oneport-local debug src/payment/charge.py --error-log /var/log/app.log
The agent reads local files, greps, and runs tests in the workspace — talking only to your local model. It never makes any other network call.
Seal the network (provable air-gap)
sudo -E oneport-local debug src/ --error-log app.log --enforce-network
--enforce-network applies iptables OUTPUT rules that DROP all outbound traffic
except the allowlisted local inference endpoint, then removes them when done.
Honesty by design: enforcement requires Linux + root. On any other host the tool records
enforcement_status=skipped:*and prints a warning — it will never writenetwork_enforced=truefor an air-gap it didn't actually seal. The audit log always reflects what really happened.
Prove compliance
Every analysis writes a hash-chained entry to the audit log. Verify it anytime:
oneport-local verify-compliance --log /var/log/oneport-debug/audit.jsonl
This checks (a) every session used local inference only — any cloud provider is a violation — and (b) the hash chain is intact, so any edit, deletion, or insertion of a past entry is detected. Required for SOX §404, HIPAA §164.312(b), PCI-DSS 10.5, ISO 27001 A.12.4.
oneport-local models --server http://localhost:11434 # list available local models
Configuration
| Variable | Meaning |
|---|---|
ONEPORT_MODE=local |
Forces local inference; never falls back to cloud |
LOCAL_INFERENCE_URL |
Ollama/vLLM/llama.cpp endpoint (must be in the host allowlist) |
LOCAL_INFERENCE_MODEL |
Model name, e.g. deepseek-coder:6.7b |
AUDIT_LOG_PATH |
Where the hash-chained audit trail is written |
AUDIT_HMAC_KEY |
Signing key for the audit chain (set this in production) |
The local-inference provider refuses to connect to any non-allowlisted host — a misconfigured URL fails closed rather than silently reaching the internet.
Why an agent, not just a prompt
The agent guards its own sandbox: file reads are confined to the workspace (path
traversal is blocked), and destructive commands (rm, git push, curl, pip install, …) are refused. It's built to run unattended inside a regulated network.
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oneport_debug_local-0.2.0.tar.gz.
File metadata
- Download URL: oneport_debug_local-0.2.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88352f0ef539fa8df4419a2a02d327769ad53cff84d005b2c3ae9b8ca55cf001
|
|
| MD5 |
f8ae51528ff341a0d03acd2b39802ffd
|
|
| BLAKE2b-256 |
9712615328e651e8eb575316e736f60076656bf5e1ecace84ee1601e86e270ff
|
File details
Details for the file oneport_debug_local-0.2.0-py3-none-any.whl.
File metadata
- Download URL: oneport_debug_local-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4583becf1ed746779187c9ec59d8a425e3332eaae90efdc0d13950da738d82cb
|
|
| MD5 |
67ee8527447d102549486b49a3f392dd
|
|
| BLAKE2b-256 |
c94eb1acf5e5833f834c037804e187f92b1a96f30525b3b40093f22860bfc590
|