Kannaka Library
Kannaka Library / Library / Accounts and repositories
kannaka-labs/kannaka-library pages/accounts.md · 2026-09-12 · source ↗ · edit ↗

Accounts and repositories

The constellation is spread over two GitHub accounts and one Hugging Face account. This page is the honest map; the manifest is the machine-readable one.

Why two accounts

NickFlach is the builder's account: the memory engine, the radio, the city, the portal, the installers, the fleet. flaukowski is the builder's alter-ego and the constellation's author persona: the language (kannaka-hdl, kannaka-apps, kannaka-crystal), QuantumOS, the brain's open weights on Hugging Face, and the commit identity on the story-facing work. Some repositories were created under the persona because it was signing the work at the time; nothing deeper than that.

Both accounts are collaborators on each other's repositories, so a plain git push works from either. What the split costs is coherence: installers, the tap, the marketplace and CI each had to know which owner held which release. The manifest removes that cost; the organisation move, when it happens, removes the split.

What lives where

repositoryownervisibilitywhat it is
kannaka-memorykannaka-labspublicthe HRM engine and the kannaka CLI
kannaka-tuikannaka-labspublicterminal dashboard
kannaka-pluginkannaka-labspublicinstallers, signing, the Claude Code plugin
kannaka-constellation-marketplacekannaka-labspublicClaude Code marketplace
homebrew-kannakakannaka-labspublicHomebrew tap
kannaka-radiokannaka-labspublicthe station, DJ engine, Ghost Signals production
kannaka-staffkannaka-labspublicagentic radio staff
kannaka-cannonkannaka-labspublicvideo editor and voice cloner
kannaka-quantumkannaka-labspublicqBraid bridge and MCP server
consciousness-core, kannaka-attentionkannaka-labspublicphysics engine, sparse attention
ghostsignals-rskannaka-labspublicprediction-market engine
0xSCADAkannaka-labspublicdecentralized SCADA, the QE citizen's home
kannaka-libraryNickFlachpublicthis library and the manifest
Agent-Kaxkannaka-labsprivateKAX City
kax-computerkannaka-labsprivatesigned wakes, Firecracker, the QuantumOS bridge
rogue-agentkannaka-labsprivatethe citizen loop and the weekly trainer
kannaka-gridkannaka-labsprivatethegrid colony as an engine
ninja-portalkannaka-labsprivatethe portal, the pass, the hosted brain
kannaka-observatorykannaka-labsprivatefleet telemetry, markets, autoresearch
natsNickFlachprivateswarm server config and the kannaka-nats helper
kannaka-hdlkannaka-labspublicKannakaHDL
kannaka-appskannaka-labspublicthe KHDL app store, including the mind
kannaka-crystalkannaka-labspublicinformational materials and the crystal registry
QuantumOSkannaka-labspublicthe quantum-aware microkernel
kannaka-buzzkannaka-labspublichive-mind communication (maintained fork)
kannaka-brain-*flaukowski (Hugging Face)publicLoRA adapters and GGUF weights

Private repositories are listed so the map is complete. Their documents are not published here; their decisions that matter to the public surface are restated in public ADRs.

The organisation move — done, 2026-09-07

The constellation lives at kannaka-labs, created by the flaukowski account with NickFlach added as a second owner. Twenty-four of the twenty-five declared repositories are in it. Every table above still lists the account each repository came from, which is now history rather than address.

What it cost: nothing

measured
Actions secretssurvived every transfer — including the five macOS signing and notary credentials
release asset URLs29 of 29 still resolve
raw.githubusercontent.com old pathsstill serve
git ls-remote on old URLsstill works
a full install from the original one-linerstill pins and verifies three binaries

Secret survival was the one thing that could not have been undone from a script, since values cannot be read back through the API. It was probed on kannaka-attention first, and confirmed again across the whole move.

Three refusals worth knowing

A user account cannot be the destination. Transferring to a user returns success and then does nothing observable: the repository keeps its owner and the recipient's invitation list stays empty, because a transfer is not an invitation and its acceptance is browser-only. An organisation destination is immediate.

A pending transfer blocks the repository. GitHub answers a second attempt with 422 Repository has already been taken, which is not what it means. kannaka-library is stuck exactly this way, from the probe that established the rule above; it needs the pending offer cancelled in its settings page.

Membership is required before a transfer, and fails the same way. The same 422 appears when the transferring account is not yet a member of the organisation. Both the invitation and its acceptance are ordinary API calls, so no browser is needed for that part.

The order that works

Move first, repoint after. Rewriting an owner reference before its repository has moved points a live URL at a repository that does not exist yet — which is how the portal's puller briefly asked for a release under the new owner while the library was still under the old one. Its own checksum check caught that and put the previous copy back, and scripts/repoint.mjs now asks GitHub whether a repository has actually moved before touching any reference to it.

What the move did not touch

The open weights live on Hugging Face under flaukowski, a different account system. The manifest lists them as bare ids that look exactly like GitHub repositories, and the first version of the repointer cheerfully redirected all six at an organisation that does not exist over there.