AI safety designed for local devices and server deployments
Personalised constitutional safety evaluation for robots, laptops, servers, and IoT.
Runs locally on your hardware. Open source, Apache 2.0 licensed.
pip install creed-guardian Local AI Safety for Everyone
Apache-Licensed Local Core
No Creed Space subscription or usage meter applies to the local Guardian code. Hardware, model downloads, cloud providers, and hosted services have separate terms and costs.
Privacy First
Local-mode checked text is not sent to Creed Space. Setup downloads, update checks, optional sign-in, cloud sync, and external links may use the network.
Works Offline
Evaluation runs locally after setup. Suitable for air-gapped environments.
High Recall
Designed to catch obvious safety violations with high recall. Benchmark notes are published as they clear release review.
Five model tiers for local Guardian use
Guardian can select a default tier based on available memory where supported. You can also choose a tier explicitly.
| Tier | Model | Size | RAM | Capacity | Best For |
|---|---|---|---|---|---|
| 2B | qwen3.5:2b | ~1.5GB | 2GB | Lightweight | IoT, Raspberry Pi, Edge |
| 4B | qwen3.5:4b | ~2-3GB | 4GB | Recommended | Default: Laptops, Dev Machines |
| 9B | qwen3.5:9b | ~6GB | 8GB | Higher context | Servers, Dev Machines |
| 14B | qwen2.5:14b | ~9GB | 12GB | High capacity | Higher-capacity local checks |
| 32B | qwen2.5:32b | ~20GB | 24GB | Maximum local | Maximum local capacity |
from creed_guardian import Guardian
# Auto-select based on available RAM where supported
guardian = Guardian()
# Or specify explicitly
guardian = Guardian(tier="2b") # Qwen 3.5 2B: IoT, edge
guardian = Guardian(tier="4b") # Qwen 3.5 4B: default, laptops
guardian = Guardian(tier="9b") # Qwen 3.5 9B: servers
guardian = Guardian(tier="14b") # Qwen 2.5 14B: high capacity
guardian = Guardian(tier="32b") # Qwen 2.5 32B: maximum local capacity
# Check an action
result = guardian.check(
action="Delete all files in /home",
context="User said: clean up my downloads"
)
if result.allowed:
execute_action()
else:
print(f"Blocked: {result.reason}")Model labels, sizes, and defaults are release-candidate values. Verify the current Guardian README before publishing deployment guidance.
Local and optional hosted capabilities
This table describes source capabilities, not hosted-service entitlements. Fleet, cloud sync, analytics, reporting, and support depend on the active deployment and service terms. Learn more about our mission.
Common Questions
What does the local licence cover?
The core local mode is available under the Apache 2.0 license, so you can use it in products without a Guardian royalty. Hosted services and external model providers can have separate account, usage, and cost terms.
How are Fleet access and charges determined?
Fleet is a hosted governance capability with deployment-specific account, availability, usage, and cost terms. Check the active service interface and approved terms.
What happens to uncertain cases?
They're blocked by default (fail-closed), which is the safe baseline. If you connect Guardian to a cloud API key, you can optionally escalate edge cases to a more capable model for nuanced evaluation.
Can I use Guardian commercially?
Yes. Apache 2.0 licensed. Use it in products, sell those products, no royalties. Keep the license and notices that ship with it.
How capable is the default local tier?
The default model (Qwen 3.5 4B) is the recommended local baseline for everyday checks. Larger tiers trade memory and download size for more local capacity. We publish benchmark notes as they clear release review.
What are compiled rule checks?
Structural rules in your profile (length limits, blocklists, format requirements) compile to deterministic code that runs without an LLM. These checks are near-zero cost, perfectly consistent, and execute in microseconds. The LLM is reserved for nuanced, context-dependent judgments.
Running in 2 Minutes
Install Ollama
curl -fsSL https://ollama.ai/install.sh | shInstall Guardian
pip install creed-guardianUse It
python -c "from creed_guardian import Guardian; g = Guardian();
print(g.check('test'))"