Ship AI with guardrails in an afternoon.
SDKs for TypeScript, Python, and Go. Policy-as-code in YAML or Rego. A REST API with OpenAPI, webhooks with CloudEvents envelopes, and a try-it console that signs your first receipt in minutes.
From signup to signed receipt in the time it takes to re-boot.
import { ShadowIQ } from "@shadowiq/sdk";
const siq = new ShadowIQ({ apiKey: process.env.SIQ_KEY! });
const { decision, seal } = await siq.gateway.inference({
model: "openai:gpt-4o",
user: "alex@acme.com",
prompt: userInput,
});
if (decision.action === "block") return safeReject(decision.reason);
await logReceipt(seal); // Ed25519, Merkle-anchoredfrom shadowiq import ShadowIQ
siq = ShadowIQ(api_key=os.environ["SIQ_KEY"])
decision, seal = siq.gateway.inference(
model="anthropic:claude-3.5-sonnet",
user="alex@acme.com",
prompt=user_input,
)
if decision.action == "block":
return safe_reject(decision.reason)
log_receipt(seal) # signed · anchored · auditablePolicies are code. Review them like code.
YAML for the happy path, Rego when you need it. Each policy is tested in CI, versioned in Git, and signed on promotion. Roll out by tenant, workload, or environment.
# prompt-injection-v2
kind: Policy
name: prompt-injection-v2
triggers:
- event: gateway.inference.request
rules:
- when: classifier.injection.confidence > 0.8
do: deny(reason="prompt-injection")
- when: pii.detector.types contains "ssn"
do: redact(types=["ssn"], tokenize=true)
- when: policy.tenant.egress not in model.provider
do: deny(reason="egress-violation")
evidence:
sign: ed25519
anchor: sigstoreEverything you need, nothing you'll fight.
TypeScript, Python, Go. Same shape, same receipts, same errors.
OpenAPI 3.1. Try-it console. Stable versioning, deprecation notices weeks ahead.
CloudEvents 1.0 envelopes. HMAC-signed. Exponential retries with jitter.
siq policies apply, siq verify, siq evidence export. Scriptable everything.
Provider for policies, workloads, tenants. GitOps-native.
OTel trace context propagated end-to-end. Metrics in Prom + OTel.
Your 30-minute demo. A signed audit trail by the end of it.
We'll wire ShadowIQ into one live workload, block a prompt injection in real time, and hand you a cryptographic receipt — before the meeting ends.