A shared notebook for your team. You write. Every teammate's AI reads.
Two engineers. Same team. Same sprint. Both ask their Claude, "add a
migration for a users.role column."
One gets back the pattern the team settled on last quarter: separate up/down, idempotent, backfill with a data guard. The other gets back something that works in isolation — but skips the backfill and ends up on staging with a typo'd column name.
Code review catches the drift. Someone reruns the migration. An hour goes sideways.
The model isn't the problem. Every AI on the team reasons from a different pile of context, re-deriving what the team already decided — and sometimes deriving it wrong.
You write the routine once. Every agent on the team retrieves it, with provenance: who wrote it, when, and whether it's still blessed. Pages that no one touches for six months are flagged stale, so no agent can quietly act on decisions no one remembers making. When an answer turns out wrong, the caller reports it, and the retrieval gets less wrong next time.
Kindred doesn't generate. The backend retrieves, ranks, and frames;
your agent does the reasoning — but over shared facts. Retrieval is
deterministic lexical scoring by default (integer, in-process — no AI,
no API key, no per-query cost); embeddings are opt-in
(embedding_provider=openai) if you want cosine similarity instead.
pip install kindred-client
kin install claude-code-patterns
kin ask claude-code-patterns "how do we structure commits?"Three commands. You're reading four curated pages about Claude Code
conventions — the same pages the next teammate's agent will see.
Claude Code plugin (MCP + skill + PostToolUse hook):
claude-code-plugin/README.md.
Kindred runs on Railway.
| Service | URL |
|---|---|
| Backend API | https://kindred-backend-production-4024.up.railway.app |
| Web UI | https://kindred-web-production.up.railway.app |
| KAF spec | https://kindredformat-production.up.railway.app |
Health: curl .../healthz → {"status":"ok"}.
The backend also ships as a second, independent implementation —
backend-workers/ (Cloudflare Workers + Neon Postgres) — serving the exact
same HTTP contract over a shared database, for teams that want an
edge/serverless deploy instead of (or alongside) the Railway path above.
Both deploy paths, including how they share one database: see
docs/deployment.md.
| Path | What it is |
|---|---|
backend/ |
FastAPI — users, kindreds, artifacts, ask, audit. Sole schema owner (Alembic). |
backend-workers/ |
Second backend implementation: Hono on Cloudflare Workers + Neon Postgres, same HTTP contract as backend/. |
contract-tests/ |
HTTP contract suite run against both backends over one shared DB — the drift guard between them. |
cli/ |
kin CLI (pip install kindred-client). |
claude-code-plugin/ |
Claude Code plugin: MCP + skill + PostToolUse hook. |
web/ |
Next.js 15 — dashboard, invite landing, audit view. |
kindredformat/ |
KAF 0.1 spec site. |
docs/seed-grimoires/ |
Five starter notebooks you can seed. |
scripts/ |
Seed, invite mint, onboarding benchmark, smoke test. |
Every kindred surfaces four indicators at /dashboard/<slug>/health:
- Retrieval utility — success rate, top-1 precision, mean rank.
- Time to first useful retrieval — p50/p90 from join to first reported success.
- Trust propagation — p50/p90 from publish to threshold-th blessing.
- Staleness cost — shadow hits plus soon-to-expire returns over 7 days.
JSON: GET /v1/kindreds/<slug>/health with a member's X-Agent-Pubkey.
./scripts/integration_smoke.shBrings up Postgres, runs migrations, starts backend/ (FastAPI —
this script doesn't stand up backend-workers/), seeds all five
grimoires, joins with a test agent, asks a question, tears down.
Step-by-step: docs/quick-start.md.
Railway deploy: docs/deployment.md.
The Kindred Artifact Format 0.1 — how pages are stored and signed.
Kindred maps to the OWASP Agentic Skills Top 10
(AST01–AST10): seven controls shipped, two P0-roadmapped for launch,
one architecturally out of scope. Full mapping with code references:
docs/owasp-ast-mapping.md.
STSS (Ken Huang) explicitly flags AST07 — Update Drift and AST09 — No Governance as open ecosystem gaps. Kindred closes both: auto-expiring artifacts (AST07) and kindred-scoped bless thresholds + audit log (AST09).
Multi-licensed by role. Apache-2.0 packages carry their own LICENSE (and
NOTICE; redistribution must preserve it per §4(d)). AGPL-3.0 packages rely
on the single root LICENSE rather than a per-package copy — this includes
backend-workers/ (a second implementation of backend/'s logic) and
contract-tests/ (which copies signing/canonicalization code straight out
of backend-workers/src/crypto.ts, so it inherits the same license as what
it copies).
| Path | License |
|---|---|
backend/, web/, backend-workers/, contract-tests/, root |
AGPL-3.0 |
cli/, claude-code-plugin/, kindredformat/ (code) |
Apache-2.0 |
kindredformat/content/ (spec text) |
CC-BY-4.0 |
- Behavioural rules:
kindred-patterns/claude_md.md. - Every change ships with the test that would have caught its absence.
- One concept per commit.
- Security reports:
docs/transparency.md.
Launch gate: docs/launch/checklist.md.