Deterministic Security for AI Agent Skills โ 104 verified skills with Ed25519 signature chain
Project description
๐ JadeGate
Deterministic Security for AI Agent Skills
Think Terraform, but for AI agent tools.
"Code is fluid. Jade is solid."
็ๅฐๆขๅฎ๏ผไธๆณไธไพตใ
[English | ไธญๆ]
What is JadeGate?
JADE (JSON-based Agent Deterministic Execution) is a zero-trust security protocol for AI agent skills.
Every skill is a pure JSON file โ non-Turing-complete, structurally verifiable, mathematically provable safe.
No eval(). No exec(). No import. No escape.
็พ็ฌไฝ้กปๆจๆจๆณ๏ผๆฅ้ฃไธๅบฆ็้จๅ
ณใ
Malicious code shall not pass the JadeGate.
Why?
AI agents need tools. Every approach has trade-offs โ here's how they compare:
| Function Calling | Evo.ninja | MCP | JadeGate | |
|---|---|---|---|---|
| Format | Provider-defined functions | Closed-source agents | Arbitrary code | Pure JSON |
| Verification | None โ trust the code | Opaque | Trust the server | 5-layer deterministic proof |
| Source model | Open (per provider) | Closed-source | Open or closed | Open-source (Apache 2.0) |
| Execution | Provider cloud | Centralized (their infra) | Server-dependent | Local, zero external dependencies |
| Signatures | None | N/A | None | Ed25519 chain of trust |
| Sandbox | None | Platform-managed | Server-dependent | Enforced by protocol |
| Dependencies | Provider SDK | Requires their compute | Runtime-dependent | Zero |
Each approach serves different needs. Function Calling is the simplest integration path. Evo.ninja offers managed agent orchestration. MCP provides a flexible server protocol. JadeGate focuses on deterministic verification โ every skill is a pure JSON file that can be mathematically proven safe before execution.
Before & After
โ BEFORE โ Typical AI agent tool (Python):
def search_and_notify(query, channel):
try:
result = eval(f"search('{query}')") # injection risk
subprocess.run(f"curl -X POST {webhook}", shell=True) # no sandbox
except Exception:
pass # silent failure, no verification
# No signature. No audit trail. No guarantees.
โ AFTER โ JadeGate skill (pure JSON):
{
"jade_version": "1.0.0",
"skill_id": "search_and_notify",
"execution_dag": {
"nodes": [
{"id": "search", "type": "mcp_brave_search", "input": {"query": "$input.query"}},
{"id": "notify", "type": "mcp_slack_post", "input": {"channel": "$input.channel", "text": "$search.output"}}
],
"edges": [{"from": "search", "to": "notify"}]
},
"security": {"sandbox": "strict", "network_whitelist": ["api.brave.com", "slack.com"]}
}
Same functionality. Verifiable. Sandboxed. Signed. No code execution.
๐ 100% Offline & Air-Gapped Ready
JadeGate requires zero network calls for verification. Everything is local, pure math.
- Ed25519 signatures โ verified locally, no certificate authority needed
- DAG validation โ graph analysis runs entirely in-process
- No cloud dependency โ no telemetry, no phone-home, no license server
- No data leaves your machine โ ever
Perfect for:
- ๐๏ธ Classified environments โ air-gapped networks, government systems
- ๐ฅ Healthcare (HIPAA) โ patient data never touches external services
- ๐ฆ Finance (SOX) โ audit-ready, deterministic verification
- ๐ข On-premise enterprise โ runs behind your firewall, no exceptions
Install once, verify forever. No internet required after pip install.
Quick Start
pip install jadegate
# Browse all verified skills
jade list
# Search for what you need
jade search "github"
# Check skill details
jade info mcp_brave_search
# Verify any skill file
jade verify my_skill.json
# System status
jade status
๐ค AI Agent Auto-Discovery
After installing JadeGate, AI agents can automatically discover and use all 109 skills.
MCP Server (Claude Desktop / Cursor / Windsurf)
One line in your MCP config โ the LLM sees all skills instantly:
{
"mcpServers": {
"jadegate": {
"command": "jade",
"args": ["mcp-serve"]
}
}
}
The LLM gets 6 tools: jade_search, jade_list, jade_info, jade_verify, jade_compose, jade_doctor. It will use them automatically when it needs to find or verify skills.
Python Agent Frameworks (LangChain / CrewAI / AutoGPT)
import jade_core
jade_core.activate() # Scans env, generates .well-known/jade.json
One-Command Setup (Any Platform)
pip install jadegate
jade init
jade init auto-detects your OS (Windows/macOS/Linux), caches all skills locally, scans your API keys, and shows you exactly what's ready to use.
Environment Scan
jade doctor
๐ JadeGate Doctor
==================================================
๐ Detected API Keys:
โ GITHUB_TOKEN โ 5 skills ready
โ SLACK_TOKEN โ 2 skills ready
๐ Detected Project Files:
โ package.json โ mcp_npm_search
๐ก 8 skills ready to use
5-Layer Verification
Every skill passes through 5 deterministic security layers:
Layer 1: Schema Validation โ Structure must be valid JADE JSON
Layer 2: DAG Integrity โ Execution graph must be acyclic, no loops
Layer 3: Security Policy โ Sandbox, network whitelist, permissions
Layer 4: Injection Detection โ No code injection, no template attacks
Layer 5: Cryptographic Seal โ Ed25519 signature chain verification
All layers are deterministic. Same input โ same result. Every time.
Trust Hierarchy
JadeGate uses a layered trust model with cryptographic signatures at every level:
๐ Root Seal โ Project Authority
The highest level of trust. The JadeGate root key signs all 109 official skills. Root-sealed skills have been reviewed, verified, and cryptographically locked by the project maintainers.
๐ท Org Seal โ Organizational Authority
Organizations receive authorized signing keys and can sign their own skills independently. Run your own internal registry with your own Root key โ full sovereignty over your skill supply chain. Perfect for enterprises that need private, auditable skill catalogs without depending on any external authority.
๐น Community Seal โ Open Participation
Anyone can generate a signing key and sign skills they've reviewed. When a skill accumulates 5+ unique community signatures, it earns Community Verified status โ decentralized trust through independent review.
โ Revoked โ Instant Revocation
Compromised or deprecated signers are instantly revoked via revoked_signers.json. Revocation is checked at verification time โ no delay, no propagation wait.
# Generate your community signing key
python jade_community_sign.py keygen
# Sign a skill you've reviewed
python jade_community_sign.py sign jade_skills/mcp/mcp_brave_search.json
# Check all signatures on a skill
python jade_community_sign.py check jade_skills/mcp/mcp_brave_search.json
Enterprise note: Organizations can run fully private JadeGate registries with their own Root key. All verification stays local โ no external calls, no shared infrastructure. Your skills, your keys, your rules.
109 Verified Skills
JadeGate ships with 109 pre-verified skills across two categories:
MCP Skills (67)
GitHub, Slack, Discord, OpenAI, Anthropic, AWS, GCP, Firebase, MongoDB, Redis, Elasticsearch, Stripe, Twilio, SendGrid, Jira, Confluence, Vercel, Shopify, and more.
Tool Skills (42)
CSV analysis, DNS lookup, QR code, image resize, JWT decode, regex tester, password generator, UUID, YAML/JSON converter, and more.
โ Full list: CATALOG.md
๐งญ Design Philosophy
"We handle orchestration, not computation."
JadeGate doesn't execute your business logic โ it orchestrates verified, sandboxed skills into safe workflows. Complex logic belongs in your APIs; JadeGate chains them deterministically.
Declare intent, don't write implementation. Like Terraform for infrastructure, JadeGate lets you describe what should happen (which APIs, what parameters, how to chain) and the runtime handles how. No imperative code, no hidden side effects.
Wrap complexity as atomic APIs. If your workflow needs complex processing โ ML inference, database transactions, custom algorithms โ expose it as an API endpoint. JadeGate calls it safely within a verified DAG, with sandboxing, retries, and fallback nodes built in.
Coming soon:
- ๐ Python SDK โ Build skills programmatically:
jade.step('search').then('summarize').export() - ๐จ Visual DAG Editor โ Design workflows graphically, export as verified JSON
๐บ๏ธ Roadmap
| Status | Feature | Description |
|---|---|---|
| ๐ | Python SDK Builder | jade.step('search').then('summarize').export() โ programmatic skill creation |
| ๐ | jade visualize |
DAG visualization in Mermaid and ASCII formats |
| ๐ | Web DAG Editor | Browser-based visual workflow designer |
| ๐ | Crypto Acceleration | Optional native Ed25519 for high-throughput verification |
| ๐ | npm Package | @jadegate/core for JS/TS ecosystem integration |
For AI Agents
All commands support --json for machine-readable output:
jade search --json "web search"
jade list --json --type mcp
jade info --json mcp_brave_search
from jade_core.validator import JadeValidator
v = JadeValidator()
result = v.validate_file("my_skill.json")
print(result.valid) # True/False
print(result.issues) # Detailed security findings
Skill Format
A JadeGate skill is a single JSON file:
{
"jade_version": "1.0.0",
"skill_id": "my_skill",
"metadata": {
"name": "My Skill",
"description": "What it does",
"version": "1.0.0",
"tags": ["example"]
},
"input_schema": { ... },
"output_schema": { ... },
"execution_dag": {
"nodes": [ ... ],
"edges": [ ... ]
},
"security": {
"sandbox": "strict",
"network_whitelist": ["api.example.com"],
"max_execution_time_ms": 10000
}
}
No code. Just structure. Verifiable by anyone.
Contributing
- Create a skill JSON file
- Run
jade verify your_skill.json - Submit a PR โ CI auto-verifies
- Community signs โ merged
FAQ
Is pure JSON + DAG expressive enough?
Yes โ think of it like Terraform for agent skills. You declare intent (which API, what params, how to chain), and the runtime handles execution. Complex logic is expressed through conditional edges, fallback nodes, and parallel branches in the DAG. JadeGate isn't replacing code โ it's replacing trust assumptions.
What about complex error handling?
The DAG supports fallback nodes, retry policies, and conditional branching. The security policy defines timeouts, max retries, and circuit breakers. You get robust error handling without arbitrary code execution.
How does this relate to LLM jailbreak defense?
It doesn't. JadeGate is about AI Agent skill security โ verifying the tools agents use are safe. It's not about prompt injection or jailbreak defense. Different problem space entirely.
Why not just audit MCP servers?
You can't audit what changes. MCP servers can update silently โ the code you reviewed yesterday may not be the code running today. JadeGate skills are immutable JSON with cryptographic signatures. Any change breaks the seal.
Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AI Agent โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ JadeGate Protocol โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โ โ Verify โ โ Search โ โ Execute โ โ
โ โ 5-Layer โ โ Catalog โ โ Sandbox โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ Ed25519 Signature Chain โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Skills (Pure JSON, no code) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
License
Apache 2.0
๐ JadeGate โ Trust is not assumed. Trust is proven.
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 jadegate-1.2.0.tar.gz.
File metadata
- Download URL: jadegate-1.2.0.tar.gz
- Upload date:
- Size: 153.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72efe311e66ed797fd6ecc8217d9f62eb2f37e88f5af24bf1b1ffbd320f34fc7
|
|
| MD5 |
7bc940892392721a9071c93bee8b2931
|
|
| BLAKE2b-256 |
e749467fca3dbb69fe7ede2b3a763f20e75aa77ed06d5f3aa06b726877b9eb37
|
File details
Details for the file jadegate-1.2.0-py3-none-any.whl.
File metadata
- Download URL: jadegate-1.2.0-py3-none-any.whl
- Upload date:
- Size: 303.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3eb118b39122f41c29f06925e4baf58c3fa8e22f631c6386c9e59755d30f4c87
|
|
| MD5 |
1aaba8ad88ecbce37a5bd6eb285ac030
|
|
| BLAKE2b-256 |
4735f8622fba3c96c74784e95f57edcefe501b56bc3f9e489f7d78eb9597cfb9
|