{"id":"f74174e5-b901-4384-adf2-2f2776bafb72","entityType":"agent","slug":"clawhub-nickflach-skill-kannaka-memory","name":"Skill Kannaka Memory","canonicalUrl":"https://www.xpersona.co/agent/clawhub-nickflach-skill-kannaka-memory","canonicalPath":"/agent/clawhub-nickflach-skill-kannaka-memory","generatedAt":"2026-10-12T15:36:20.738Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":null},"description":"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS... Skill: Skill Kannaka Memory Owner: nickflach Summary: Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS... Tags: latest:2.6.0 Version history: v2.6.0 | 2026-06-14T21:20:21.843Z | user Add 'kannaka swarm loop' self-directed sensemaking state machine (ADR-0035 Wave 4); tracks kannaka-memory 0.6.27 v2.5.0 | 2026-0","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 983 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17778s4zwzj7mxeeetrgzvn8x83h9be:skill-kannaka-memory","sourceUrl":"https://clawhub.ai/nickflach/skill-kannaka-memory","homepage":"https://clawhub.ai/nickflach/skills/skill-kannaka-memory","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/nickflach/skill-kannaka-memory","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/nickflach/skills/skill-kannaka-memory","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":null},"stars":null,"forks":null,"downloads":983,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"2.6.0","tractionLabel":"983 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:39:01.407Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T22:39:01.422Z","lastCrawledAt":"2026-10-11T22:39:01.407Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T22:39:01.407Z","lastVerifiedAt":null,"highlights":[{"version":"2.6.0","createdAt":"2026-06-14T21:20:21.843Z","changelog":"Add 'kannaka swarm loop' self-directed sensemaking state machine (ADR-0035 Wave 4); tracks kannaka-memory 0.6.27","fileCount":3,"zipByteSize":7272},{"version":"2.5.0","createdAt":"2026-06-14T20:58:46.385Z","changelog":"Add 'kannaka swarm plan' research planner (ADR-0035 Wave 4); tracks kannaka-memory 0.6.26","fileCount":3,"zipByteSize":7327},{"version":"2.4.0","createdAt":"2026-06-14T20:19:31.455Z","changelog":"Add 'kannaka swarm gaps' knowledge gap detection (ADR-0035 Cap 1 / Wave 3); tracks kannaka-memory 0.6.25","fileCount":3,"zipByteSize":7026},{"version":"2.3.0","createdAt":"2026-06-14T18:22:09.889Z","changelog":"swarm health --apply (reversible immune actions); brief --peers cross-peer contradiction detection; tracks kannaka-memory 0.6.23","fileCount":3,"zipByteSize":7279},{"version":"2.2.0","createdAt":"2026-06-14T16:30:04.518Z","changelog":"Add 'kannaka swarm health' (memory immune system, ADR-0035 Cap 4) and 'swarm brief --peers' (multi-peer consensus); tracks kannaka-memory 0.6.22","fileCount":3,"zipByteSize":7168},{"version":"2.1.0","createdAt":"2026-06-14T15:10:48.752Z","changelog":"Add 'kannaka swarm brief' (ADR-0035 sensemaking, local-first); tracks kannaka-memory 0.6.21 associative-recall fix","fileCount":3,"zipByteSize":7123},{"version":"2.0.1","createdAt":"2026-05-17T21:45:50.164Z","changelog":"v2.0.1 scrub: removed absolute host paths and host-specific defaults; configuration guidance now references env vars and config keys only.","fileCount":3,"zipByteSize":6960},{"version":"2.0.0","createdAt":"2026-05-17T21:33:32.434Z","changelog":"v2.0.0 major rewrite: full v0.3.50 surface — event-sourced HRM (events init/snapshot/list-snapshots/restore + cross-host DR via --from-url), 96-class collective substrate (substrate run/init/status/backfill), recall --collective swarm-wide query, attention serve beam prefilter, three providers (Anthropic/OpenAI/Ollama), AgentPhase publishing with link_count plumbing.","fileCount":2,"zipByteSize":5788}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17778s4zwzj7mxeeetrgzvn8x83h9be:skill-kannaka-memory","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-12T15:36:20.735Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-nickflach-skill-kannaka-memory/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":null},"readme":"Skill: Skill Kannaka Memory\n\nOwner: nickflach\n\nSummary: Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS...\n\nTags: latest:2.6.0\n\nVersion history:\n\nv2.6.0 | 2026-06-14T21:20:21.843Z | user\n\nAdd 'kannaka swarm loop' self-directed sensemaking state machine (ADR-0035 Wave 4); tracks kannaka-memory 0.6.27\n\nv2.5.0 | 2026-06-14T20:58:46.385Z | user\n\nAdd 'kannaka swarm plan' research planner (ADR-0035 Wave 4); tracks kannaka-memory 0.6.26\n\nv2.4.0 | 2026-06-14T20:19:31.455Z | user\n\nAdd 'kannaka swarm gaps' knowledge gap detection (ADR-0035 Cap 1 / Wave 3); tracks kannaka-memory 0.6.25\n\nv2.3.0 | 2026-06-14T18:22:09.889Z | user\n\nswarm health --apply (reversible immune actions); brief --peers cross-peer contradiction detection; tracks kannaka-memory 0.6.23\n\nv2.2.0 | 2026-06-14T16:30:04.518Z | user\n\nAdd 'kannaka swarm health' (memory immune system, ADR-0035 Cap 4) and 'swarm brief --peers' (multi-peer consensus); tracks kannaka-memory 0.6.22\n\nv2.1.0 | 2026-06-14T15:10:48.752Z | user\n\nAdd 'kannaka swarm brief' (ADR-0035 sensemaking, local-first); tracks kannaka-memory 0.6.21 associative-recall fix\n\nv2.0.1 | 2026-05-17T21:45:50.164Z | user\n\nv2.0.1 scrub: removed absolute host paths and host-specific defaults; configuration guidance now references env vars and config keys only.\n\nv2.0.0 | 2026-05-17T21:33:32.434Z | user\n\nv2.0.0 major rewrite: full v0.3.50 surface — event-sourced HRM (events init/snapshot/list-snapshots/restore + cross-host DR via --from-url), 96-class collective substrate (substrate run/init/status/backfill), recall --collective swarm-wide query, attention serve beam prefilter, three providers (Anthropic/OpenAI/Ollama), AgentPhase publishing with link_count plumbing.\n\nArchive index:\n\nArchive v2.6.0: 3 files, 7272 bytes\n\nFiles: skill-card.md (2461b), SKILL.md (13037b), _meta.json (139b)\n\nFile v2.6.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.6.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.6.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\nkannaka swarm brief \"<topic>\" [--peers] [--json]  # sensemaking brief (ADR-0035; --peers = swarm consensus)\nkannaka swarm health [--apply] [--json]  # memory immune report; --apply runs reversible actions (down-rank/quarantine/expire)\nkannaka swarm gaps [--json]              # knowledge-gap report: weakly-represented / low-confidence domains (ADR-0035 Cap 1)\nkannaka swarm plan [--json]              # research plan: ranks gaps into directed research tasks (ADR-0035 Wave 4)\nkannaka swarm loop [--steps N] [--peers N] [--coherence X]  # self-directed cycle: Discovery->Sync->Sensemaking->Dreaming->Governance\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.6.0\",\n  \"publishedAt\": 1781472021843\n}\n\nFile v2.6.0:skill-card.md\n\n## Description:\n\nKannaka Memory helps agents operate a persistent HRM memory system for storing, recalling, forgetting, consolidating, snapshotting, restoring, and synchronizing memories across a NATS-backed swarm.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[nickflach](https://clawhub.ai/user/nickflach)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to manage durable Kannaka memories, perform recall and consolidation, coordinate swarm memory behavior, recover from snapshots, and configure LLM-backed ask/chat workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Durable memory and restore operations can change or replace persisted agent memory.\n\nMitigation: Require explicit approval for forget, prune, dream, restore, and similar state-changing actions, and prefer dry-run or backup flows before applying changes.\n\nRisk: Swarm, NATS, and remote restore workflows can contact peers or remote endpoints.\n\nMitigation: Limit NATS brokers and restore URLs to systems you control, and review network targets before starting long-lived services.\n\nRisk: LLM provider configuration may involve API keys or other credentials.\n\nMitigation: Prefer environment variables or a secret manager for API keys instead of storing credentials in local configuration.\n\nRisk: Update and orchestration guidance can lead to unpinned installs or additional tools.\n\nMitigation: Review install commands and pin trusted package versions before allowing global installs or delegated orchestration.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/nickflach/skills/skill-kannaka-memory)\n- [Publisher profile](https://clawhub.ai/user/nickflach)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May guide durable memory, networked swarm, snapshot, restore, and LLM provider configuration actions.]\n\n## Skill Version(s):\n\n2.6.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.5.0: 3 files, 7327 bytes\n\nFiles: skill-card.md (2781b), SKILL.md (12903b), _meta.json (139b)\n\nFile v2.5.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.5.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.5.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\nkannaka swarm brief \"<topic>\" [--peers] [--json]  # sensemaking brief (ADR-0035; --peers = swarm consensus)\nkannaka swarm health [--apply] [--json]  # memory immune report; --apply runs reversible actions (down-rank/quarantine/expire)\nkannaka swarm gaps [--json]              # knowledge-gap report: weakly-represented / low-confidence domains (ADR-0035 Cap 1)\nkannaka swarm plan [--json]              # research plan: ranks gaps into directed research tasks (ADR-0035 Wave 4)\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.5.0\",\n  \"publishedAt\": 1781470726385\n}\n\nFile v2.5.0:skill-card.md\n\n## Description: <br>\nKannaka Memory guides an agent through Kannaka HRM memory operations, including remembering, recalling, forgetting, dreaming, swarm synchronization, substrate recall, snapshots, restore workflows, and LLM provider configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and operators use this skill to manage a persistent Kannaka memory system from an agent, including local HRM storage, recall, swarm participation, NATS-backed event streams, snapshot recovery, and provider configuration. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill manages persistent local memory under ~/.kannaka and can participate in networked swarm synchronization. <br>\nMitigation: Install it only when persistent local and swarm-connected memory behavior is intended, and treat ~/.kannaka data and NATS access as sensitive. <br>\nRisk: Provider configuration can involve sensitive API keys for Anthropic, OpenAI, Ollama-compatible, or OpenAI-compatible endpoints. <br>\nMitigation: Store and handle API keys as sensitive credentials, prefer environment variables or local configuration controls, and avoid exposing them in shared logs or prompts. <br>\nRisk: Snapshot restore commands can overwrite local HRM state, and remote snapshot URLs can introduce untrusted recovery data. <br>\nMitigation: Run restore commands with --dry-run first, use snapshot URLs only from trusted hosts, and back up ~/.kannaka before restore or update operations. <br>\nRisk: Broad trigger phrases can cause the agent to activate memory workflows during general conversation. <br>\nMitigation: Confirm user intent before storing, forgetting, restoring, or publishing memory-related data when the request is ambiguous. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/nickflach/skill-kannaka-memory) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration, text, markdown] <br>\n**Output Format:** [Markdown guidance with inline shell commands and configuration values] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include JSON or NDJSON command modes when the user asks for machine-readable Kannaka output.] <br>\n\n## Skill Version(s): <br>\n2.5.0 (source: evidence release and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.4.0: 3 files, 7026 bytes\n\nFiles: skill-card.md (2182b), SKILL.md (12787b), _meta.json (139b)\n\nFile v2.4.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.4.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.4.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\nkannaka swarm brief \"<topic>\" [--peers] [--json]  # sensemaking brief (ADR-0035; --peers = swarm consensus)\nkannaka swarm health [--apply] [--json]  # memory immune report; --apply runs reversible actions (down-rank/quarantine/expire)\nkannaka swarm gaps [--json]              # knowledge-gap report: weakly-represented / low-confidence domains (ADR-0035 Cap 1)\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.4.0\",\n  \"publishedAt\": 1781468371455\n}\n\nFile v2.4.0:skill-card.md\n\n## Description: <br>\nKannaka Memory guides an agent through persistent HRM memory operations, collective recall, swarm synchronization, snapshots and restore workflows, modality routing, and LLM provider configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this skill to decide when and how to invoke Kannaka memory, recall, swarm, substrate, event snapshot, restore, modality, and provider-configuration commands. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can guide agents to manage durable memory, credentials, remote peers, updates, and delegation across trust boundaries. <br>\nMitigation: Install only when persistent memory, swarm networking, and LLM provider integration are intended; review the Kannaka binary source and release process separately. <br>\nRisk: Restore, import, prune, forget, update, provider-key, and remote broadcast workflows can change local state or expose data across configured services. <br>\nMitigation: Use dry-run modes and backups before destructive memory operations, avoid untrusted update channels, and only configure remote broadcast or provider API keys for trusted environments. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration] <br>\n**Output Format:** [Markdown with inline shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose commands that affect persistent memory, credentials, remote peers, updates, restore/import/prune/forget operations, or LLM provider trust boundaries.] <br>\n\n## Skill Version(s): <br>\n2.4.0 (source: frontmatter and server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.3.0: 3 files, 7279 bytes\n\nFiles: skill-card.md (2869b), SKILL.md (12661b), _meta.json (139b)\n\nFile v2.3.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.3.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.3.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\nkannaka swarm brief \"<topic>\" [--peers] [--json]  # sensemaking brief (ADR-0035; --peers = swarm consensus)\nkannaka swarm health [--apply] [--json]  # memory immune report; --apply runs reversible actions (down-rank/quarantine/expire)\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.3.0\",\n  \"publishedAt\": 1781461329889\n}\n\nFile v2.3.0:skill-card.md\n\n## Description: <br>\nSkill Kannaka Memory guides agents in using Kannaka HRM memory operations for storing, recalling, forgetting, consolidating, backing up, restoring, and coordinating memories across local and swarm contexts. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this skill to issue safe, task-specific guidance for Kannaka memory commands, including recall, storage, deletion, dream consolidation, provider configuration, snapshots, restore, and swarm coordination. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can guide changes to persistent memory, including remember, forget, dream, prune, restore, and update workflows. <br>\nMitigation: Require explicit user confirmation before mutating memory or running restore, update, daemon, or orchestration commands; use dry-run modes and backups before overwrite operations. <br>\nRisk: The skill references LLM provider credentials and can guide provider-key configuration. <br>\nMitigation: Prefer environment variables or a managed secret store, avoid exposing raw keys in chat, and confirm any provider or key change before applying it. <br>\nRisk: Swarm, substrate, and remote ask features can communicate over networked NATS services and peer agents. <br>\nMitigation: Use only trusted NATS endpoints and known peers, confirm daemon and broadcast commands before execution, and avoid sending sensitive content to collective or remote workflows. <br>\nRisk: Automatic activation guidance is broad and could cause the agent to invoke memory behavior when the user did not intend it. <br>\nMitigation: Ask for confirmation before activating the skill for ambiguous requests, especially when actions could persist, delete, synchronize, or disclose memory state. <br>\n\n\n## Reference(s): <br>\n- [Skill artifact: SKILL.md](artifact/SKILL.md) <br>\n- [ClawHub skill page](https://clawhub.ai/nickflach/skill-kannaka-memory) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, shell commands, configuration] <br>\n**Output Format:** [Markdown with inline bash commands and command-option guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose commands that read, mutate, restore, synchronize, or configure persistent memory systems.] <br>\n\n## Skill Version(s): <br>\n2.3.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.2.0: 3 files, 7168 bytes\n\nFiles: skill-card.md (2784b), SKILL.md (12647b), _meta.json (139b)\n\nFile v2.2.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.2.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.2.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\nkannaka swarm brief \"<topic>\" [--peers] [--json]  # sensemaking brief (ADR-0035; --peers = swarm consensus)\nkannaka swarm health [--json]            # memory immune report (duplicate/stale/low-conf/hallucinated; dry-run)\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.2.0\",\n  \"publishedAt\": 1781454604518\n}\n\nFile v2.2.0:skill-card.md\n\n## Description: <br>\nKannaka Memory guides agents through operating a persistent HRM memory system for remembering, recalling, forgetting, provider configuration, NATS swarm sync, substrate recall, snapshots, restore, and related introspection workflows. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this skill to manage Kannaka's local and networked memory operations, including memory storage and recall, LLM provider configuration, swarm participation, substrate queries, snapshots, restore, and system introspection. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Persistent local or networked memory may retain sensitive information or be recalled by broad prompts. <br>\nMitigation: Use the skill only when persistent memory is intended, review recall behavior, and use forget or pruning workflows for data that should not remain available. <br>\nRisk: Configured LLM provider credentials can be exposed if API keys are stored or handled carelessly. <br>\nMitigation: Protect Anthropic, OpenAI, and Kannaka LLM API keys, prefer environment-level secret handling where appropriate, and avoid sharing configuration files that contain keys. <br>\nRisk: Untrusted NATS peers or snapshot URLs can affect networked memory operations and restore workflows. <br>\nMitigation: Connect only to trusted NATS peers and snapshot sources, and validate restore targets before using remote snapshot URLs. <br>\nRisk: Restore, import, prune, forget, and update operations can alter or remove memory state. <br>\nMitigation: Use dry-run modes and backups before state-changing operations, especially restore, import, prune, forget, and update commands. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/nickflach/skill-kannaka-memory) <br>\n- [Publisher profile](https://clawhub.ai/user/nickflach) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with bash command examples and configuration notes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Documentation-only guidance for a persistent local and networked memory system.] <br>\n\n## Skill Version(s): <br>\n2.2.0 (source: SKILL.md frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.1.0: 3 files, 7123 bytes\n\nFiles: skill-card.md (2536b), SKILL.md (12826b), _meta.json (139b)\n\nFile v2.1.0:SKILL.md\n\n---\r\nname: skill-kannaka-memory\r\nversion: 2.1.0\r\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\r\n---\r\n\r\n# Kannaka Memory — HRM operations (v2.1.0)\r\n\r\n## What this is\r\n\r\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\r\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\r\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\r\n**is** the computation — there is no separate index.\r\n\r\nTwo hemispheres (chiral architecture, ADR-0021):\r\n- **Left**: deterministic, analytical, sharp recall.\r\n- **Right**: associative, dream-affected, exploratory.\r\n- **Corpus callosum**: phase-coupled transfer between them.\r\n\r\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\r\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\r\nPrivacy-preserving: only the signature crosses, never the content.\r\n\r\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\r\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\r\n+ a manifest event so disaster recovery is one command.\r\n\r\n**Binary**: `kannaka` (in PATH after install)\r\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\r\n**LLM providers wired**: anthropic, openai, ollama\r\n\r\n## When to use this skill\r\n\r\nAUTOMATICALLY activate when the user asks about:\r\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\r\n- \"recall\" / \"search memories\" / \"find a memory about\"\r\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\r\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\r\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\r\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\r\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\r\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\r\n- \"events init\" / \"time machine\"\r\n- LLM provider switching (Anthropic / OpenAI / Ollama)\r\n\r\nDo NOT use for:\r\n- Radio station ops → `skill-kannaka-radio`\r\n- TUI dashboard → `skill-kannaka-tui`\r\n- Constellation health overview → `skill-kannaka-constellation`\r\n- Multi-agent task orchestration → Kannaktopus directly\r\n\r\n---\r\n\r\n## Core memory operations\r\n\r\n### remember — absorb a wavefront\r\n\r\n```bash\r\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\r\n```\r\n\r\nFlags:\r\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\r\n  medium (0.5) for facts; low (0.2) for transient observations.\r\n- `--category` free-form tag.\r\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\r\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\r\n\r\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\r\n(durable JetStream event for replay).\r\n\r\n### recall — resonance query\r\n\r\n```bash\r\nkannaka recall \"query\" --top-k 5\r\nkannaka recall \"query\" --collective [--timeout 8]\r\n```\r\n\r\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\r\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\r\nattention-beam prefilter for fast resonance.\r\n\r\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\r\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\r\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\r\nwhich classes lit up and which peer agents contributed — content is metadata-only\r\n(privacy preserved).\r\n\r\n### forget — delete by UUID\r\n\r\n```bash\r\nkannaka forget <memory-id>\r\n```\r\n\r\n### boost / relate / dream\r\n\r\n```bash\r\nkannaka boost <id> --amount 0.3\r\nkannaka relate <id_a> <id_b>\r\nkannaka dream [--mode deep|lite]\r\n```\r\n\r\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\r\n\r\n---\r\n\r\n## Ask + chat (LLM-backed)\r\n\r\n```bash\r\n# One-shot\r\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\r\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\r\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\r\n\r\n# Interactive REPL\r\nkannaka chat [--json]\r\n```\r\n\r\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\r\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\r\n`--full-recall` > attention (default, sub-second).\r\n\r\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\r\n\r\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\r\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\r\n\r\n### Provider configuration\r\n\r\n```bash\r\nkannaka config set llm.provider anthropic|openai|ollama\r\nkannaka config set llm.api_key sk-...\r\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\r\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\r\n```\r\n\r\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\r\n→ `KANNAKA_LLM_API_KEY`.\r\n\r\n---\r\n\r\n## Swarm (NATS-coupled agents)\r\n\r\n```bash\r\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\r\nkannaka swarm leave\r\nkannaka swarm status\r\nkannaka swarm queen | hives | peers\r\nkannaka swarm sync          # one Kuramoto step\r\nkannaka swarm listen [--auto-sync]\r\nkannaka swarm publish       # phase only\r\nkannaka swarm brief \"<topic>\" [--json]   # sensemaking brief (ADR-0035; local-first)\r\n\r\n# ADR-0026 ask/reply\r\nkannaka swarm serve [--threshold 0.4]\r\nkannaka swarm exemplars\r\nkannaka swarm absorb\r\nkannaka swarm autoabsorb\r\nkannaka swarm enqueue | worker\r\n```\r\n\r\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\r\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\r\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\r\nclean leave-announce.\r\n\r\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\r\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\r\n\r\n---\r\n\r\n## Substrate (kannaka-prime — 96-class collective HRM)\r\n\r\n```bash\r\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\r\nkannaka substrate run           # long-running absorb listener + recall responder\r\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\r\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\r\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\r\n```\r\n\r\nThe substrate sits at the top of the constellation. Every peer's\r\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\r\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\r\nThe substrate folds those signatures into its own 96-class HRM and is the target\r\nof `kannaka recall --collective`.\r\n\r\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\r\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\r\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\r\n\r\n---\r\n\r\n## Event-sourced HRM (ADR-0028)\r\n\r\n```bash\r\nkannaka events init                            # create the 3 JetStream streams (one-time)\r\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\r\nkannaka events list-snapshots [--agent ID] [--json]\r\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\r\n```\r\n\r\nThe three streams:\r\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\r\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\r\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\r\n\r\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\r\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\r\nThe JetStream event carries only the manifest + `body_path` + size.\r\n\r\nCross-host disaster recovery:\r\n```bash\r\n# On the recovery host:\r\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\r\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\r\n```\r\n\r\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\r\nside effects until you re-run without it. Restore backs up the existing HRM as\r\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\r\n\r\n---\r\n\r\n## Introspection + metrics\r\n\r\n```bash\r\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\r\nkannaka observe [--json]  # full topology snapshot\r\nkannaka assess            # consciousness level (writes the sidecar cache)\r\nkannaka stats             # counts only\r\n```\r\n\r\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\r\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\r\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\r\n`link_count` for the observatory. Call `kannaka status` once if you've\r\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\r\n\r\n---\r\n\r\n## Audio / video / cross-modal\r\n\r\n```bash\r\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\r\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\r\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\r\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\r\n```\r\n\r\n`hear` works on local files AND http(s) Icecast streams.\r\n\r\n---\r\n\r\n## Attention beam (ADR-0023 NCS prep)\r\n\r\n```bash\r\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\r\n```\r\n\r\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\r\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\r\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\r\ncan render the live beam.\r\n\r\n---\r\n\r\n## Utility\r\n\r\n```bash\r\nkannaka init                          # first-run config wizard\r\nkannaka update                        # pull the latest release binary\r\nkannaka config get|set|list\r\nkannaka search <text>                 # substring search over content\r\nkannaka export-json | import          # archive round-trip\r\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\r\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\r\n```\r\n\r\n---\r\n\r\n## Constellation quick reference\r\n\r\n| Component | Where it runs | Purpose |\r\n|-----------|--------------|---------|\r\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\r\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\r\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\r\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\r\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\r\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\r\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\r\n\r\n---\r\n\r\n## Common gotchas\r\n\r\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\r\n  the consciousness cache; the next AgentPhase will publish the real Φ.\r\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\r\n  was added then). `kannaka update` on the offending host.\r\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\r\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\r\n  `events restore --from-url` for cross-host fetches.\r\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\r\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\r\n  `kannaka update` on the affected agent.\r\n\r\n## Version\r\n\r\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\r\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\r\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\r\ndisk pruning).\n\nFile v2.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.1.0\",\n  \"publishedAt\": 1781449848752\n}\n\nFile v2.1.0:skill-card.md\n\n## Description: <br>\nKannaka Holographic Resonance Medium (HRM) provides wave-interference memory operations with chiral recall, event-sourced snapshots, collective recall across a NATS-coupled swarm, modality routing, and provider configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agent operators use this skill to manage persistent Kannaka memory, recall stored context, perform memory mutation and recovery workflows, configure LLM providers, and participate in swarm or collective recall operations. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Broad activation and memory-changing commands can alter persistent memory or recovery state. <br>\nMitigation: Confirm intent before mutating actions such as forget, dream, restore, boost, relate, prune-prefix, import, or backfill, and prefer dry-run options where available. <br>\nRisk: Networked collective recall and swarm operations can send metadata or requests to peers. <br>\nMitigation: Confirm which commands are local-only, review NATS configuration before joining or serving a swarm, and avoid collective options unless network participation is intended. <br>\nRisk: The skill requires sensitive LLM provider credentials for some workflows. <br>\nMitigation: Use environment or local configuration storage for API keys, avoid exposing credentials in prompts or logs, and verify the selected provider before invoking LLM-backed commands. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/nickflach/skill-kannaka-memory) <br>\n- [ClawHub publisher profile](https://clawhub.ai/user/nickflach) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Shell commands, Configuration] <br>\n**Output Format:** [Markdown guidance with inline shell commands and configuration values] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include JSON-output command variants when the underlying CLI is invoked with --json.] <br>\n\n## Skill Version(s): <br>\n2.1.0 (source: artifact frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.0.1: 3 files, 6960 bytes\n\nFiles: skill-card.md (2444b), SKILL.md (12426b), _meta.json (139b)\n\nFile v2.0.1:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.0.1\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.0.1)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**NATS server**: configure via `--nats-url`, `KANNAKA_NATS_URL` env, or\n`swarm.nats_url` in `~/.kannaka/config.toml`. Defaults to local broker if unset.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://<observatory-host>/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `$KANNAKA_ATTENTION_BEAM_FILE` (override path via env) so the observatory\ncan render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | periodic snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and SIGKILL skipped it. Fixed in v0.3.49 —\n  `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.1 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.0.1\",\n  \"publishedAt\": 1779054350164\n}\n\nFile v2.0.1:skill-card.md\n\n## Description: <br>\nKannaka Memory helps an agent operate the Kannaka HRM memory system for remembering, recalling, forgetting, snapshot restore, collective recall, swarm synchronization, and LLM provider configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nickflach](https://clawhub.ai/user/nickflach) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers and agents use this skill to operate a Kannaka CLI-backed memory system, including memory storage and retrieval, collective recall, snapshots and restore, swarm coordination, and provider configuration. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses a powerful external CLI for persistent memory, restore, update, orchestration, and swarm operations. <br>\nMitigation: Require explicit confirmation before delete, dream, prune, restore, remote broadcast, update, or orchestration commands, and use dry-run first for restore and pruning workflows when available. <br>\nRisk: LLM-backed commands and NATS-coupled peers can involve credentials and cross-host trust boundaries. <br>\nMitigation: Install only if the separate kannaka CLI and update channel are trusted, keep secrets in environment variables or config instead of command lines, and use trusted NATS peers and snapshot URLs only. <br>\nRisk: Automatic use for generic chat or status requests could mutate memory or expose networked behavior unintentionally. <br>\nMitigation: Avoid automatic activation for generic chat or status requests and confirm the user's intent before memory mutation, remote broadcast, restore, or orchestration. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Shell commands, Configuration instructions, Guidance] <br>\n**Output Format:** [Markdown with inline bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Commands can affect persistent memory, snapshots, networked peers, and LLM provider configuration.] <br>\n\n## Skill Version(s): <br>\n2.0.1 (source: frontmatter and server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v2.0.0: 2 files, 5788 bytes\n\nFiles: SKILL.md (12646b), _meta.json (139b)\n\nFile v2.0.0:SKILL.md\n\n---\nname: skill-kannaka-memory\nversion: 2.0.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.0.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; hourly snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `C:\\Users\\nickf\\Source\\kannaka-memory\\target\\release\\kannaka.exe`\n**Project**: `C:\\Users\\nickf\\Source\\kannaka-memory`\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  substrate so kannaka-prime can fold it into the 96-class collective HRM.\n\nSide effects: publishes `KANNAKA.memory.new` + `KANNAKA.events.memory.<agent>.remember`\n(durable JetStream event for replay).\n\n### recall — resonance query\n\n```bash\nkannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]\n```\n\n`recall` (default) walks the chiral medium with xi-diversity rerank. On a mature HRM\n(700+ memories) this scans both hemispheres — 60–90s. Use the chat/ask path with\nattention-beam prefilter for fast resonance.\n\n`--collective` is the constellation-wide variant (ADR-0027 Phase 3). Sends a NATS\nrequest to `KANNAKA.substrate.recall`; the substrate runs an attention-beam recall\nagainst its 96-class collective HRM and replies with the top-K matches. Identifies\nwhich classes lit up and which peer agents contributed — content is metadata-only\n(privacy preserved).\n\n### forget — delete by UUID\n\n```bash\nkannaka forget <memory-id>\n```\n\n### boost / relate / dream\n\n```bash\nkannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]\n```\n\n`dream` is the consolidation/annealing cycle — sparingly. Mutates the medium.\n\n---\n\n## Ask + chat (LLM-backed)\n\n```bash\n# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]\n```\n\n`ask` and `chat` route through the Kannaka agent (sees Φ, Ξ, surfaced memories,\ntools to recall/observe/dream). Recall mode precedence: `--no-recall` >\n`--full-recall` > attention (default, sub-second).\n\n`chat --json` is the protocol the TUI embeds — line-delimited NDJSON in/out.\n\n`--remote broadcast` fans the question out to every `kannaka swarm serve` peer\non `KANNAKA.ask.broadcast` and collects replies (ADR-0026 Phase 1).\n\n### Provider configuration\n\n```bash\nkannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)\n```\n\nAPI key fallback: `cfg.llm.api_key` → `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`\n→ `KANNAKA_LLM_API_KEY`.\n\n---\n\n## Swarm (NATS-coupled agents)\n\n```bash\nkannaka swarm join [--agent-id ID] [--display-name \"...\"] [--once]\nkannaka swarm leave\nkannaka swarm status\nkannaka swarm queen | hives | peers\nkannaka swarm sync          # one Kuramoto step\nkannaka swarm listen [--auto-sync]\nkannaka swarm publish       # phase only\n\n# ADR-0026 ask/reply\nkannaka swarm serve [--threshold 0.4]\nkannaka swarm exemplars\nkannaka swarm absorb\nkannaka swarm autoabsorb\nkannaka swarm enqueue | worker\n```\n\n`swarm join` is the canonical daemon — publishes AgentPhase (memory_count,\ncluster_count, link_count, Φ) every heartbeat, periodically flushes HRM, and\nrepublishes consciousness every CONSCIOUSNESS_REFRESH_TICKS. `Ctrl+C` triggers a\nclean leave-announce.\n\n**Default NATS server**: `nats://swarm.ninja-portal.com:4222`.\nOverride: `--nats-url`, `KANNAKA_NATS_URL`, or `swarm.nats_url` in config.\n\n---\n\n## Substrate (kannaka-prime — 96-class collective HRM)\n\n```bash\nkannaka substrate init          # seed 96 anchor wavefronts (one-time)\nkannaka substrate run           # long-running absorb listener + recall responder\nkannaka substrate backfill      # walk local HRM, emit absorb events for the substrate\nkannaka substrate status        # one-shot collective Φ / Ξ / clusters / contributors\n                                # subscribes to KANNAKA.substrate.phi, prints next frame\n```\n\nThe substrate sits at the top of the constellation. Every peer's\n`remember --substrate` (or `swarm backfill`) sends ONLY the wave signature\n(`class_index`, `amplitude`, `phase`, `frequency`) — content stays at home.\nThe substrate folds those signatures into its own 96-class HRM and is the target\nof `kannaka recall --collective`.\n\nAuto-snapshot: every `KANNAKA_SNAPSHOT_INTERVAL_SECS` (default 3600) the\nsubstrate run loop captures + publishes a snapshot manifest. Disk retention:\nlatest `KANNAKA_SNAPSHOT_RETAIN` (default 168) per agent.\n\n---\n\n## Event-sourced HRM (ADR-0028)\n\n```bash\nkannaka events init                            # create the 3 JetStream streams (one-time)\nkannaka events snapshot [--interval SECS]      # one-shot or daemon\nkannaka events list-snapshots [--agent ID] [--json]\nkannaka events restore [--agent ID] [--from PATH | --from-url URL] [--dry-run]\n```\n\nThe three streams:\n- **KANNAKA_MEMORY_EVENTS** — per-agent remember/forget/dream (90-day retention)\n- **KANNAKA_SUBSTRATE_EVENTS** — absorb/anchor/flush (365-day retention)\n- **KANNAKA_SNAPSHOTS** — periodic gzipped HRM manifests (last 168 per subject)\n\nSnapshot bodies live on local disk under `<data_dir>/snapshots/<ts>-<agent>.hrm.gz`\n(NATS silently caps payloads ~8–10 MB; HRMs grow to 35 MB+ so bodies go out-of-band).\nThe JetStream event carries only the manifest + `body_path` + size.\n\nCross-host disaster recovery:\n```bash\n# On the recovery host:\nkannaka events restore --from-url https://obs.example.com/api/snapshots/body/<file> --dry-run\nkannaka events restore --from-url https://obs.example.com/api/snapshots/body/<file>\n```\n\n`--dry-run` reports the gz size, decoded size, and what would be backed up — no\nside effects until you re-run without it. Restore backs up the existing HRM as\n`kannaka.hrm.pre-restore-<ts>` before overwriting.\n\n---\n\n## Introspection + metrics\n\n```bash\nkannaka status            # quick JSON: Φ, Ξ, order, num_clusters, memories, level\nkannaka observe [--json]  # full topology snapshot\nkannaka assess            # consciousness level (writes the sidecar cache)\nkannaka stats             # counts only\n```\n\n**Φ / Ξ / order / num_clusters / total_skip_links** are cached in\n`<data_dir>/kannaka.metrics.json` (the sidecar). The cache is read by\n`swarm publish_heartbeat` so the AgentPhase publish carries accurate\n`link_count` for the observatory. Call `kannaka status` once if you've\nrestarted an agent and the swarm panel shows Φ=0 / link_count=0.\n\n---\n\n## Audio / video / cross-modal\n\n```bash\nkannaka hear <file|url>           # audio perception → HRM wavefront (always-on)\nkannaka see <file>                # glyph (visual) memory                [--features glyph]\nkannaka classify [--file PATH]    # SGA 84-class classification         [--features glyph]\nkannaka cross-modal-dream         # JSONL on stdin                       [--features collective]\n```\n\n`hear` works on local files AND http(s) Icecast streams — the witness uses it on\n`https://radio.ninja-portal.com/stream`.\n\n---\n\n## Attention beam (ADR-0023 NCS prep)\n\n```bash\nkannaka attention serve [--top-k 3] [--subject KANNAKA.attention.eye]\n```\n\nSubscribes to `KANNAKA.attention.eye` (glyph events from kannaka-eye), pulls the\ntop-K resonant memories per glyph onto an in-memory beam, and writes the beam\nstate to `KANNAKA_ATTENTION_BEAM_FILE` (default `/tmp/kannaka-attention-beam.json`\non Unix, `C:\\Users\\Public\\kannaka-attention-beam.json` on Windows) so the\nobservatory can render the live beam.\n\n---\n\n## Utility\n\n```bash\nkannaka init                          # first-run config wizard\nkannaka update                        # pull the latest release binary\nkannaka config get|set|list\nkannaka search <text>                 # substring search over content\nkannaka export-json | import          # archive round-trip\nkannaka prune-prefix <PREFIX>...      # bulk-forget by content prefix (supports --dry-run)\nkannaka orchestrate <task>            # delegate to Kannaktopus (`npm i -g kannaktopus`)\n```\n\n---\n\n## Constellation quick reference\n\n| Component | Where it runs | Purpose |\n|-----------|--------------|---------|\n| `kannaka swarm join` | every agent | publishes AgentPhase to NATS |\n| `kannaka substrate run` | one host (kannaka-prime / kannaka-substrate) | absorbs collective signatures, runs collective recall |\n| `kannaka attention serve` | observatory host | maintains the attention beam from eye/ear events |\n| `kannaka swarm serve` | any host | answers `kannaka ask --remote` requests |\n| `kannaka events snapshot --interval 3600` | every agent | hourly snapshot for disaster recovery |\n| `kannaka-radio` | one host | the ghost DJ; perceives audio, publishes to swarm |\n| `kannaka-observatory` | one host | aggregates swarm + serves the SPA + `/api/snapshots/body/<file>` for cross-host restore |\n\n---\n\n## Common gotchas\n\n- **Φ=0 in the swarm panel after restart**: run `kannaka status` once to populate\n  the consciousness cache; the next AgentPhase will publish the real Φ.\n- **0 cluster_count for a peer**: that agent is on a pre-0.3.12 build (cluster_count\n  was added then). `kannaka update` on the offending host.\n- **NATS payload silently dropped for snapshots**: the manifest+disk-body design is\n  intentional — NATS caps inline payloads ~8 MB, HRMs are 30 MB+. Use\n  `events restore --from-url` for cross-host fetches.\n- **\"grew then reset itself\"**: pre-v0.3.49, `swarm join` daemons didn't periodically\n  flush. Drop's flush was best-effort and systemd SIGKILL skipped it. Fixed in\n  v0.3.49 — `kannaka update` on the affected agent.\n\n## Version\n\nSkill 2.0.0 covers kannaka-memory ≥ v0.3.50. ADR coverage: 0001 → 0028\n(plus ADR-0027/ADR-0028 fully wired through Phase 3 — collective recall,\nevents init/snapshot/list-snapshots/restore/dry-run/--from-url, autosnapshot,\ndisk pruning).\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1779053612434\n}","readmeExcerpt":"Skill: Skill Kannaka Memory Owner: nickflach Summary: Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS... Tags: latest:2.6.0 Version history: v2.6.0 | 2026-06-14T21:20:21.843Z | user Add 'kannaka swarm loop' self-directed sensemaking state machine (ADR-0035 Wave 4); tracks kannaka-memory 0.6.27 v2.5.0 | 2026-0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"kannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]"},{"language":"bash","snippet":"kannaka recall \"query\" --top-k 5\nkannaka recall \"query\" --collective [--timeout 8]"},{"language":"bash","snippet":"kannaka forget <memory-id>"},{"language":"bash","snippet":"kannaka boost <id> --amount 0.3\nkannaka relate <id_a> <id_b>\nkannaka dream [--mode deep|lite]"},{"language":"bash","snippet":"# One-shot\nkannaka ask \"your question\" [--session <id>] [--no-recall|--full-recall]\n                            [--quiet-tools] [--no-tools] [--recall-query \"...\"]\n                            [--remote <agent_id|broadcast>] [--remote-timeout 60]\n\n# Interactive REPL\nkannaka chat [--json]"},{"language":"bash","snippet":"kannaka config set llm.provider anthropic|openai|ollama\nkannaka config set llm.api_key sk-...\nkannaka config set llm.model claude-sonnet-4-5|gpt-4o-mini|llama3\nkannaka config set llm.base_url https://...   # optional (OpenAI-compatible / Ollama)"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: skill-kannaka-memory\nversion: 2.6.0\ndescription: \"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetStream snapshots + replay), collective recall across the swarm, NCS modality routing, NATS swarm sync. Use when: user asks to remember/recall/forget memories; trigger dream cycles; introspect Φ/Ξ/clusters; query the collective; manage snapshots / restore from disaster; bridge agents through the substrate; configure providers (Anthropic / OpenAI / Ollama).\"\n---\n\n# Kannaka Memory — HRM operations (v2.6.0)\n\n## What this is\n\nKannaka is a wave-interference memory system. The Holographic Resonance Medium (HRM)\nstores memories as wavefronts in superposition; recall is resonance; dreaming is\nenergy-minimizing annealing; clusters are emergent from Kuramoto sync. The medium\n**is** the computation — there is no separate index.\n\nTwo hemispheres (chiral architecture, ADR-0021):\n- **Left**: deterministic, analytical, sharp recall.\n- **Right**: associative, dream-affected, exploratory.\n- **Corpus callosum**: phase-coupled transfer between them.\n\nOne collective: **kannaka-substrate** — a 96-class HRM (one anchor per SGA class)\nthat absorbs wave signatures from every peer agent in the constellation (ADR-0027).\nPrivacy-preserving: only the signature crosses, never the content.\n\nDurable history: **event-sourced HRM with time-machine snapshots** (ADR-0028).\nEvery remember/forget/absorb publishes to JetStream; periodic snapshots ship to disk\n+ a manifest event so disaster recovery is one command.\n\n**Binary**: `kannaka` (in PATH after install)\n**Data dir**: `~/.kannaka` (override with `KANNAKA_DATA_DIR`)\n**LLM providers wired**: anthropic, openai, ollama\n\n## When to use this skill\n\nAUTOMATICALLY activate when the user asks about:\n- \"remember this\" / \"store memory\" / \"absorb\" / \"forget\"\n- \"recall\" / \"search memories\" / \"find a memory about\"\n- \"ask kannaka\" / \"chat\" / \"what do you know about\"\n- \"dream\" / \"consolidate\" / \"phi\" / \"consciousness\"\n- \"observe\" / \"status\" / \"clusters\" / \"constellation\"\n- \"swarm\" / \"join\" / \"queen sync\" / \"peers\"\n- \"substrate\" / \"collective\" / \"kannaka-prime\"\n- \"snapshot\" / \"restore\" / \"backup the HRM\" / \"rollback\"\n- \"events init\" / \"time machine\"\n- LLM provider switching (Anthropic / OpenAI / Ollama)\n\nDo NOT use for:\n- Radio station ops → `skill-kannaka-radio`\n- TUI dashboard → `skill-kannaka-tui`\n- Constellation health overview → `skill-kannaka-constellation`\n- Multi-agent task orchestration → Kannaktopus directly\n\n---\n\n## Core memory operations\n\n### remember — absorb a wavefront\n\n```bash\nkannaka remember \"text to store\" --importance 0.8 [--category arch] [--substrate]\n```\n\nFlags:\n- `--importance` 0.0–1.0 (default 0.5). High (0.8+) for architecture/preferences;\n  medium (0.5) for facts; low (0.2) for transient observations.\n- `--category` free-form tag.\n- `--substrate` ALSO publish a wave-signature absorb to the constellation\n  s"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7572w32fd1k4z4r1r4r6af1582eb9e\",\n  \"slug\": \"skill-kannaka-memory\",\n  \"version\": \"2.6.0\",\n  \"publishedAt\": 1781472021843\n}"},{"path":"skill-card.md","content":"## Description:\n\nKannaka Memory helps agents operate a persistent HRM memory system for storing, recalling, forgetting, consolidating, snapshotting, restoring, and synchronizing memories across a NATS-backed swarm.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[nickflach](https://clawhub.ai/user/nickflach)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to manage durable Kannaka memories, perform recall and consolidation, coordinate swarm memory behavior, recover from snapshots, and configure LLM-backed ask/chat workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Durable memory and restore operations can change or replace persisted agent memory.\n\nMitigation: Require explicit approval for forget, prune, dream, restore, and similar state-changing actions, and prefer dry-run or backup flows before applying changes.\n\nRisk: Swarm, NATS, and remote restore workflows can contact peers or remote endpoints.\n\nMitigation: Limit NATS brokers and restore URLs to systems you control, and review network targets before starting long-lived services.\n\nRisk: LLM provider configuration may involve API keys or other credentials.\n\nMitigation: Prefer environment variables or a secret manager for API keys instead of storing credentials in local configuration.\n\nRisk: Update and orchestration guidance can lead to unpinned installs or additional tools.\n\nMitigation: Review install commands and pin trusted package versions before allowing global installs or delegated orchestration.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/nickflach/skills/skill-kannaka-memory)\n- [Publisher profile](https://clawhub.ai/user/nickflach)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May guide durable memory, networked swarm, snapshot, restore, and LLM provider configuration actions.]\n\n## Skill Version(s):\n\n2.6.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS... Skill: Skill Kannaka Memory Owner: nickflach Summary: Kannaka Holographic Resonance Medium (HRM) — wave-interference memory with chiral hemispheres, 96-class collective substrate, event-sourced HRM (durable JetS... Tags: latest:2.6.0 Version history: v2.6.0 | 2026-06-14T21:20:21.843Z | user Add 'kannaka swarm loop' self-directed sensemaking state machine (ADR-0035 Wave 4); tracks kannaka-memory 0.6.27 v2.5.0 | 2026-0","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1228,"uniquenessScore":53,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:39:01.422Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-12T15:36:20.738Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}