IndieK

IndieK is a knowledge graph archival format and the ecosystem of tools built around it.

Its mission is to foster knowledge creation and knowledge management — both inside a single mind and between minds that disagree. There is a big difference between having a ton of information online and understanding a complex topic at a technical, individual level. IndieK is built for the second thing. Read the full mission and vision.

Start here

If you want to… Go to
Understand what IndieK is and why Mission & Vision
See all the products and how they fit Introduction
Implement or parse an archive Format specification
Use the reference tool CLI reference
Contribute Contributing
Check the legal terms Licenses

An archive in thirty seconds

An IndieK archive is a plain directory. No database, no server, no proprietary container:

my-archive/
├── MANIFEST.json          # self-describing: layout + schemas
├── events/                # signed, hash-chained, append-only NDJSON log
│   └── 2026/08/09/events.ndjson
├── meta/events/           # the same, for tags (the "meta-network")
│   └── 2026/08/09/events.ndjson
└── blobs/sha256/          # content-addressed data for nodes and edges
    └── 26/09/2609c7c2...85e2

The durable things are the signed append-only event log and the blob store. Together they are the archive. Everything else — indexes, graph projections, visualisations, UIs — is a rebuildable projection.

Three properties follow, and they are the whole point:

Loose by design

IndieK ships no fixed ontology. Versatile data may be attached to nodes and edges, and tags may be designed freely for both. A rigid schema would encode someone else’s understanding of your domain; IndieK constrains durability and leaves meaning to you.

Try it

uv tool install ik          # from source until the PyPI release (30 Sep 2026)
ik manifest                 # write MANIFEST.json into the archive
ik create_node --content "Understanding is not retrieval"
ik create_node --content "Wikipedia is retrieval"
ik create_edge --source-node e2 --target-node e1 --content "illustrates"
ik read --mini              # inspect the log
ik export --output-path graph.graphml

Full setup — including the two environment variables ik needs and how to generate an author key — is in the CLI reference.

Status

Pre-1.0. The archival format is at version 2.0. The specification and the CLI are subject to change until 1 October 2026, when the FOSS layer opens for external adoption and contribution.

The format specification and the ik CLI are licensed under Apache License 2.0. See Licenses.