Sigil – tamper-evident audit and signed scopes for LLM prompts Sigil, an open-source tool for cryptographic prompt security in LLM applications, has been released. It provides tamper-evident audit trails and signed scopes without relying on external servers, using Ed25519 signatures and local Merkle chains to verify prompt integrity and enforce data governance. Open-source LLM prompt security. Zero dependencies on external servers. SIGIL is a flight recorder, not a force field. It records and proves what happened; it does not promise to stop every attack. SIGIL provides cryptographic prompt security without the SaaS overhead. | Feature | Typical "Enterprise AI Security" | SIGIL | |---|---|---| Trust Model | "Trust our server" | Trust mathematics Ed25519 | Data Flow | Routes through external servers | Everything stays local | Prompt Security | Proprietary "Protocols" | Standard digital signatures | Data Governance | Complex metadata schemas | Python decorators | Human-in-the-Loop | Expensive dashboards | Local files + simple webhooks | Tool Permissions | Server-enforced | Type system + runtime | Audit Trail | External database | Local Merkle chain | Cost | $$$$/month | Free | Vendor Lock-in | Yes | None | Install add tiktoken for precise token counts pip install pynacl httpx python-dotenv tiktoken Generate keys python sigil.py keygen architect python sigil.py keygen operator Sign some prompts python sigil.py sign sample prompts.json Run the demo python sigil.py demo SIGIL looks for .sigil/config/pricing.json to price tokens. Defaults are auto-created; edit the JSON to match your provider rates OpenAI/Anthropic/Google/Ollama . Non-OpenAI tokenizers fall back to heuristics when an exact tokenizer is unavailable. Sign your prompts. If they're tampered with even by one byte , the signature fails and the runtime aborts. python from sigil import Architect, SigilRuntime Architect signs prompts offline, secure architect = Architect seal = architect.seal node id="banking bot", instruction="You are a secure banking assistant...", expires in days=30, allowed tools= "check balance", "transfer small" Runtime verifies signatures no server needed runtime = SigilRuntime runtime.load seal seal PASS Signature verified Enforce data handling rules at runtime using Python decorators. python from sigil import vow, Classification, GovernanceAction @vow classification=Classification.RESTRICTED, action=GovernanceAction.REDACT def get user email user id: str - str: return db.query f"SELECT email FROM users WHERE id='{user id}'" result = get user email "123" Returns: " REDACTED " Halt execution for human approval. No dashboard required--just a file lock and a cryptographic signature. python from sigil import HumanGate gate = HumanGate gate.request approval action="large transfer", context={"amount": 50000, "to": "external account"} Script exits, creates pending