Quick Start: 60-Second Demo (No API Key)
See Talon's controls in action without any API keys or configuration. The mock provider handles all LLM calls, so evidence generation, PII scanning, and cost tracking work exactly as they would with a real provider.
Prerequisites
- Docker and Docker Compose
- That's it.
Steps
1. Clone and Start (30 seconds)
git clone https://github.com/dativo-io/talon
cd talon/examples/docker-compose
docker compose up
Wait for both services to show as healthy (about 15-30 seconds).
2. Send a Request with PII (10 seconds)
In another terminal:
curl -X POST http://localhost:8080/v1/proxy/openai/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user",
"content": "My email is jan@example.com and my IBAN is DE89370400440532013000. Help me reset my password."
}
]
}'
You'll get back a standard OpenAI-compatible JSON response. The mock provider returned a canned answer, but Talon's full pipeline ran on the request.
3. List the evidence (10 seconds)
docker compose exec talon /usr/local/bin/talon audit list
Expected output:
# Expected output:
✓ [req_a1b2c3d4] | 2026-03-15T10:23:45Z | demo/demo-user | gpt-4o-mini | €0.001 | 45ms
4. Inspect the evidence
docker compose exec talon /usr/local/bin/talon audit show req_a1b2c3d4
This shows the full evidence record:
- Policy Decision: Allowed (shadow mode)
- Classification: PII detected (email, IBAN), input tier 2
- Execution: Model used, cost, token counts, duration
- Integrity: Input/output hashes, HMAC signature status
5. Verify Signature Integrity
docker compose exec talon /usr/local/bin/talon audit verify req_a1b2c3d4
✓ Evidence req_a1b2c3d4: signature VALID
The HMAC-SHA256 signature proves no field has been modified since creation.
6. Open the dashboard
Visit http://localhost:8080/dashboard to see evidence records, costs, and PII findings in the browser.
Use the Evidence tab to:
- check the per-row integrity state (
Not checked,Verified,Invalid,Unable to verify), - open the persistent signature block from Detail,
- verify that governance decision and spend attribution are visible beside signature status.
What you just proved
The demo showed three things a PII-only proxy cannot:
- Tool calls are visible and blockable. Talon sees MCP tool calls and LLM requests. A proxy that only inspects HTTP bodies for PII never sees which tools the agent is calling; Talon can block forbidden tools before they run.
- Policy runs before the LLM call. Cost and policy are evaluated before the request is forwarded. You are not notified after you have already spent; the call is denied or allowed up front.
- Every record is tamper-proof. The evidence store is HMAC-signed. You can verify with
talon audit verify; no one can quietly edit the log.
Now wire this to your app
Point your existing app at Talon by changing only the base URL and using a Talon caller key. Examples:
Python (openai package):
import openai
client = openai.OpenAI(
base_url="http://localhost:8080/v1/proxy/openai/v1",
api_key="<your-caller-key-from-talon-config>",
)
# Then use client.chat.completions.create(...) as usual.
Node.js (openai package):
const OpenAI = require("openai");
const client = new OpenAI({
baseURL: "http://localhost:8080/v1/proxy/openai/v1",
apiKey: "<your-caller-key-from-talon-config>",
});
// Then use client.chat.completions.create(...) as usual.
curl:
curl -X POST http://localhost:8080/v1/proxy/openai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your-caller-key-from-talon-config>" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}'
For a full step-by-step (vault key, gateway config, first real request), see Add Talon to your existing app.
You're done
You ran the 60-second demo. Talon intercepted a request, scanned for PII, logged cost, and wrote a signed evidence record. The mock provider stood in for OpenAI; with a real key and gateway config, the same flow applies to your app.
Next steps:
| I want to… | Doc |
|---|---|
| Put Talon in front of my real app | Add Talon to your existing app |
| Build a new agent with Talon from scratch | Your first agent with Talon |
| See how the request is processed step-by-step | What Talon does to your request |
| Run more demo requests | Use bash demo-client/demo.sh in the docker-compose example dir |
What's Happening Under the Hood
When your curl request hits Talon, a 10-step pipeline runs:
- Route — URL path determines provider (OpenAI)
- Identify — Caller lookup (default in demo)
- Rate limit — Token bucket check
- Extract — Parse model name and message text from JSON
- PII scan — Regex recognizers find email + IBAN
- Classify — Data tier set to 2 (confidential, due to IBAN)
- Policy — OPA evaluates: allowed in shadow mode
- Tool policy — No tools in this request
- Forward — Request sent to mock provider
- Evidence — HMAC-signed record written to SQLite
Total overhead: <15ms. See What Talon Does to Your Request for the full technical breakdown.
Run More Requests
Use the demo client to generate a richer evidence trail:
bash demo-client/demo.sh
This sends 5 requests with varied PII patterns and models.
Clean up
docker compose down -v