Run it locally
Install the command-line tool to work with your own graph and query its history.
Installation guide →Sharing and federation →Explore Quipu's repository: code, documents and decisions. The engine runs in WebAssembly; queries and edits stay in your browser.
The first search downloads the model and builds this tab's index. Your query stays in this browser.
Start with the vision. Follow a decision to the code it governs.
Drag to explore · pinch to zoom · tap a knot, cord, or relation
Install the command-line tool to work with your own graph and query its history.
Installation guide →Sharing and federation →Download your graph and edits as a verified share pack, with its history preserved. See how to import it locally.
Review your changes here, then download the files and open GitHub to propose them. Upload all four files together. This page sends nothing on your behalf.
An agent can query and edit this copy through window.quipu.
It runs in your browser without a server or credentials.
browser_navigate https://scbrown.github.io/quipu/explore/
browser_evaluate await window.quipu.query("SELECT ?s WHERE { ?s ?p ?o } LIMIT 5")
browser_evaluate await window.quipu.delta()
The fetch routes are relative to this page —
./query, not /query. A service
worker only controls the directory it is served from, and widening that needs a
response header GitHub Pages does not allow anyone to set. An absolute
/query gets an ordinary 404, which reads as “the
worker is broken” rather than “that path was never mine”.
Server status: registering…
window.quipu.search(query, limit) uses a lazy,
self-hosted model. capabilities() reports its state;
validate(shapes, data) returns a real SHACL report.
Rejected writes carry error.validation; they do not
turn into empty results. The relative ./search route
uses the same worker and model.