Quipu is a governed, bitemporal knowledge store for AI coding agents and the people who run them. It can check writes against your rules, records where each fact came from, and answers what was true when. Bitemporal means keeping both when a fact was recorded and, when supplied, when it was true.
The 60-second demo shows an enabled gate, a refused write, corrected provenance, and a valid-time read.
Quipu answers standard SPARQL 1.1 as a CLI, REST server and Rust library, with its own MCP server (quipu mcp or quipu-server over HTTP).
Domain shapes in practice describes producer-owned Camayoc profiles, the Seeds work profile and the staged load-before-remove transition from bundled domain examples.
A quipu is the Andean knotted-cord record: cords are entities, knots are facts.
mcp-name: io.github.intigraph/quipu
curl -fsSL https://raw.githubusercontent.com/intigraph/quipu/main/install.sh | shPython 3.9+, curl, and a Linux or macOS shell. Downloads the latest published archive, verifies SHA-256 and the executable
version before publishing command links in ~/.local/bin. Add it to PATH.
The complete versioned bundle stays in ~/.local/lib/quipu/TAG for rollback.
Published targets: Linux and macOS, x86_64 and arm64.
Set STACK_INSTALL_ROOT on the receiving shell for another prefix.
Pinned releases, alternatives, configuration and removal are in the
installation, upgrades and removal.
Write a rule (every Person needs a name), two people who follow it, and one
who does not:
mkdir quipu-demo && cd quipu-demo
printf '@prefix sh: <http://www.w3.org/ns/shacl#> .\n@prefix ex: <http://example.org/> .\nex:PersonShape a sh:NodeShape ; sh:targetClass ex:Person ;\n sh:property [ sh:path ex:name ; sh:minCount 1 ] .\n' > shapes.ttl
printf '@prefix ex: <http://example.org/> .\nex:alice a ex:Person ; ex:name "Alice" ; ex:knows ex:bob .\nex:bob a ex:Person ; ex:name "Bob" .\n' > people.ttl
printf '@prefix ex: <http://example.org/> .\nex:carol a ex:Person .\n' > carol.ttlThen load the good facts, ask a question, and try the bad one:
quipu knot people.ttl --shapes shapes.ttl --db demo.db
quipu read 'SELECT ?who ?name WHERE { ?who <http://example.org/name> ?name }' --db demo.db
quipu knot carol.ttl --shapes shapes.ttl --db demo.dbSHACL validation passed
knotted 5 facts from people.ttl (tx 1)
who name
----------------------------------------
http://example.org/alice "Alice"
http://example.org/bob "Bob"
2 results
SHACL validation failed: 1 violation(s)
Violation on http://example.org/carol: MinCount(1) not satisfied
The last command exits 1 and writes nothing: Carol breaks the rule, so she never enters the graph. That refusal at write time, with the reason attached, is what Quipu is for.
- Tambo: guided stack installation and verification.
- Camayoc: governed memory and vocabulary.
- Quick Start examples.
- Agent Setup.
Load this repository’s graph: the latest release includes a repository pendant, checksum and provenance. Verify those together, extract the share directory, then use quipu import SHARE_DIR --db repository.db; import stages knowledge and leaves ROOT unchanged. See the verified import workflow.
The Quipu stack is built around a governed, bitemporal knowledge store: shared facts, decisions and work history your agents can query. Quipu can check writes against your rules, records where each fact came from, and answers what was true when.
| tool | what it gives your agents |
|---|---|
| tambo | 🧰 Agent Platform Toolkit - installs and configures the quipu stack |
| quipu | stores shared facts with provenance and history; can check writes against your rules |
| camayoc | prepares knowledge and vocabulary for Quipu, with checks before it is admitted |
| quechua | shared vocabulary and shapes for interoperable knowledge |
| chaski | reacts to graph changes and delivers governed notifications |
| bobbin | indexes your codebase and injects context from that index and Quipu knowledge |
| yupana | shows code impact and can read policies from Quipu to govern agent actions |
| desire-path | turns agent mistakes into feature requests; works on its own without Quipu |
| seeds | a work item tracker backed by the Quipu knowledge base |
| shantytown | runs crews of AI agents on work items, triggered by hand, on a schedule or by events; can share work and memory through Quipu |
| rikuy | live brief: status, graphs, watches and signed decisions over Quipu |
| shuttle | runs signed agent workflows and keeps their records in Quipu |