cd /news/ai-agents/show-hn-opensourcedb-tamper-evident-… · home topics ai-agents article
[ARTICLE · art-135196] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Show HN: OpensourceDB Tamper-evident,checksum-backed decision and session replay

Zizka-ai released ZizkaDB, an open-source, self-hosted audit trail for AI agents that logs each agent step with a parent_id so teams can trace a tool call or response back to its root cause. The stack ships via a Docker-based quickstart and includes Python and TypeScript SDKs plus integrations for LangChain, CrewAI, LiveKit voice agents, and MCP, with a managed Pro/Team cloud hosted at db.zizka.ai. The operator admin console and VPC deploy remain in the private zizkadb-cloud repository.

read3 min views13 publishedSep 20, 2026
Show HN: OpensourceDB Tamper-evident,checksum-backed decision and session replay
Image: Michielbdejong (auto-discovered)

When your agent misbehaves, see why.

Self-hosted audit trail for AI agents — one command or one dashboard click from any step back to root cause.

This repository is the open-source self-host stack (API, tenant dashboard, SDKs, MCP). Operator admin console and VPC deploy live in private zizkadb-cloud — see docs/REPO_SPLIT.md.

Requires Docker. First image pull may take 5–10 minutes.

curl -fsSL https://raw.githubusercontent.com/Zizka-ai/ZizkaDB/main/scripts/quickstart-remote.sh | bash

You should see:

tool_call · lookup_order · ORD-8842
  └── llm_response · gpt-4o
        └── user_message · Why was my order delayed?

Run again anytime: pip install zizkadb-sdk && zizkadb demo

git clone https://github.com/Zizka-ai/ZizkaDB.git && cd ZizkaDB
bash scripts/setup-local.sh
Service URL
API http://localhost:8000
Dashboard http://localhost:3001/login
Swagger http://localhost:8000/swagger

Full guide: DEVELOPMENT.md · Troubleshooting: wiki/Troubleshooting.md

Every agent team asks: Why did it say that? Why did it call that tool?

  1. Log agent steps withparent_id (each step links to the one that caused it).
  2. Ask why — terminal:zizkadb why <event_id> or Python:(await db.why(event_id)).print()
  3. See the chain — walk back to the user message, wrong tool, or bad context.

Dashboard (same chain): Activity → support-bot → click an event → Why? (causal) tab.

import asyncio
from zizkadb import ZizkaDB

async def main():
    async with ZizkaDB(host="http://localhost:8000") as db:
        user = await db.log(agent="my-bot", event="user_message", data={"text": "Why is my order late?"})
        tool = await db.log(agent="my-bot", event="tool_call", data={"tool": "lookup_order"}, parent_id=user.event_id)
        (await db.why(tool.event_id)).print()

asyncio.run(main())

Full guides: CONNECT.md · LangChain · CrewAI · LiveKit (voice) · MCP / Cursor

Python TypeScript LangChain CrewAI LiveKit MCP REST
zizkadb-sdk zizkadb-sdk zizkadb-langchain zizkadb-crewai zizkadb-livekit uvx zizkadb-mcp Swagger

Scaffold a project: zizkadb init my-agent --template basic

pip install zizkadb-livekit

One LiveKit call → one Session in Activity (transcript only, no audio in ZizkaDB). Full guide: CONNECT.md → LiveKit · docs/integrations/livekit.md · example.

Managed cloud (Pro / Team) — optional #

Same Why? feature — hosted at db.zizka.ai. No Docker to maintain.

The operator admin console, VPC deploy, and cloud-only marketing routes live in the private zizkadb-cloud repo — see docs/REPO_SPLIT.md.

Pro Team
Price €29 / mo €69 / mo
Events / mo† 50k 100k
API keys 2 5

† Plan targets on managed cloud; not enforced in API yet. See docs/README.md.

More features — drift, time-travel, search, GDPR #

Function What it does
db.baseline() Detect when agent behavior drifts vs past sessions
db.at() Reconstruct what the agent knew at a timestamp
db.search() Semantic search over agent history
db.context_for() Inject relevant past events into prompts
db.forget() GDPR erasure by metadata filter

FAQ #

Do I need to clone this repo?

No — the curl quickstart downloads config + Docker images only.

Do I need an API key locally?

No — http://localhost:8000 uses a built-in dev key. Dashboard: localhost:3001/login.

How is this different from Langfuse / LangSmith?

They observe span trees. ZizkaDB audits with explicit parent_id chains and db.why() on your Postgres — self-host under AGPL, no trace billing.

Voice agents with LiveKit?

Install zizkadb-livekit — one pip command, connect to Docker with ZIZKADB_HOST=http://localhost:8000. See LiveKit guide.

zizkadb demo connection refused?

Start the stack: curl -fsSL …/quickstart-remote.sh | bash or bash scripts/setup-local.sh.

Docs & community #

| Worked example | worked/01-support-order-delay | | Examples | examples/ — includesLiveKit voice agent | | LiveKit integration | docs/integrations/livekit.md | | Self-hosting | DEVELOPMENT.md ·wiki/Self-Hosting | | Troubleshooting | wiki/Troubleshooting.md | | Integrate any agent | docs/integrate/ | | Issues · Discussions | Issues ·Discussions | | Contributing · Security | CONTRIBUTING.md ·SECURITY.md | | AI-assisted development | AGENTS.md ·docs/ai/CODING_STANDARDS.md |

<sub>AGPL-3.0 · MCP server MIT · Disable telemetry: export ZIZKADB_TELEMETRY=false</sub>

── more in #ai-agents 4 stories · sorted by recency
── more on @zizka-ai 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-opensourcedb…] indexed:0 read:3min 2026-09-20 ·