Kindling Spec · v0.1 · Build on it
Clone, validate a Pool, run a query.
Under ten minutes, or it’s a bug.
The repository ships the spec, the JSON schemas for profiles, Pools, handshakes and messages, a validator, a parser, a reference handshake server, a starter discovery agent, a block-list publisher, and the registry source. It ships no consumer app. That’s the point.
- Name
- kindling, an open protocol for finding people
- Synopsis
npx kindling-validatemanifest-urlnpx kindling-parseprofile-urlnpx kindling-discover --poolpool-url--queryquestion- Layers
- Profile, a page you already have. Pool, a JSON manifest anyone can host. Every entry carries a
consent_proof. - License
- Code Apache 2.0. Spec text CC BY 4.0.
- See also
- §11 Conformance, Schemas, RFCs
Quick start
Five steps from a clone to a question.
If everything works, you can clone, install, validate a sample Pool, and run a discovery query in under ten minutes. If it takes longer, that is a bug. Open an issue.
1Step 1 of 5
Clone and install
You need git, Node.js and npm.
git clone https://github.com/IntelliBotique/kindling.gitcd kindlingnpm install
2Step 2 of 5
Validate a Pool manifest
kindling-validatechecks a Kindling document against its schema.npx kindling-validate https://example.com/pools/queer-creatives-la3Step 3 of 5
Parse a profile URL
kindling-parseturns a profile page into a structuredparsed_profileJSON document.Illustrative The panel under the command shows the shape of the result, a
parsed_profilethat validates against the schema. The values depend on the page, and the real tool’s output may be laid out differently.npx kindling-parse https://noor.example.comparsed_profile · illustrativenot the tool’s exact output{ "schema_version": "0.1", "profile_url": "https://noor.example.com", "display_name": "Noor", "pronouns": "she/her", "location": { "city": "Los Angeles", "region": "California" }, "intent_tags": ["friendship", "hiking-buddies"], "about": "Illustrator. Up for a hike most weekends.", "contact_methods": [ { "type": "email", "value": "noor@mail.example" } ], "verification": { "level": "unverified" }, "kindling_noindex": false, "parsed_at": "2026-09-28T09:00:00Z", "parser": "kindling-parser/0.1.1" }4Step 4 of 5
Run the starter discovery agent
kindling-discoverasks one or more Pools a question in natural language. Only people who said yes to a Pool are in it to be asked.npx kindling-discover \--pool https://example.com/pools/queer-creatives-la \--query "who is up for a hike this weekend?"
5Step 5 of 5
Deploy the registry to your own infrastructure
See
registry/README.mdin the repository. It is designed to run on a single VPS or a small container.A registry is one consumer of the well-known file, and anyone may run one (§8.5). See the registry view.
# see registry/README.md in the repository# designed to run on a single VPS or a small container
Ten minutes is the budget. If a step takes longer, the docs have a bug.Open an issue on GitHub.
Reference tooling
Five Node.js command-line tools.
Named as the changelog for 0.1.1 names them. Every command on this page appears in the project’s own README or live page; nothing here is guessed.
kindling-validate
tools/validator/
Validate any Kindling document against its schema.
npx kindling-validate https://example.com/pools/queer-creatives-lakindling-parse
tools/parser/
Parse a profile URL into a structured parsed_profile JSON.
npx kindling-parse https://noor.example.comkindling-discover
tools/discovery-agent/
Query one or more Pools in natural language.
npx kindling-discover --pool https://example.com/pools/queer-creatives-la \--query "who is up for a hike this weekend?"
kindling-handshake
tools/handshake/
A minimal reference handshake server.
This page does not give its commands or flags yet. The code lives in tools/handshake/ in the repository.
kindling-blocklist
tools/blocklist-publisher/
Manage and publish shared block lists.
This page does not give its commands or flags yet. The code lives in tools/blocklist-publisher/ in the repository.
The repository
What ships, and what doesn’t.
It does not contain a consumer experience. Consumer experiences belong to implementations.
spec/ The protocol specificationschemas/ JSON schemas for profiles, Pools, handshakes, messagingtools/ validator/ CLI: validate a Pool manifest URL parser/ CLI: parse a profile URL into structured JSON handshake/ Reference handshake server discovery-agent/ Starter agent: query Pools in natural language blocklist-publisher/ Tool to publish and sign shared block listsregistry/ Source code for the public Kindling registryexamples/ Hand-authored example Pool manifests and profilesLICENSE Apache 2.0 for code, CC BY 4.0 for the spec textCONTRIBUTING.md How to propose spec changes and submit implementationsGOVERNANCE.md Maintainership, RFC process, working-group transitionCODE_OF_CONDUCT.md Community standards
Conformance · §11
Four things you can build that conform.
The text of §11, with the live page’s plain version under each.
Contributing
Three ways to help now.
Specification feedback
Read it. Open issues for ambiguities, gaps, and overreach. Implementers, identity-protocol veterans, and IndieWeb regulars especially.
A good place to start: where the text and the schemas differ.
Reference implementations
Build a Kindling client in your stack. A list, a search view, a printed zine. Send the link and the registry lists it.
Founding Pool curators
Run a Pool. Curate it well. Write down what worked. The first curators are deciding what curation is as a craft.
Spec changes land through RFCs. Read CONTRIBUTING.md for the RFC process and the pull-request workflow.Maintainers: josh@intellibotique.com