You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AI-friendly zettelkasten built on GitHub Issues. One repo = one kasten. Each issue = one node. #N references are links, and GitHub's CrossReferencedEvent gives backlinks for free.
Shipped as the /hk skill (#585). Lives at agents/.apm/skills/hk/SKILL.md; will eventually move to a standalone APM package.
Core model
Every issue is a node. Content is markdown. The markdown is the schema — roadmaps, TILs, ADRs, bugs, questions all look different and that's fine.
#N is the only link primitive. Mention it in any body and GitHub logs a CrossReferencedEvent on the target's timeline. No labels, no types, no taxonomy.
Free bidirectional linking. Forward: grep the body for #\d+. Backward: query timeline via GraphQL or search/issues.
How /hk works
/hk #N <free-form prompt> — the LLM reads the node's current structure and infers the edit. No subcommands, no flags. See agents/.apm/skills/hk/SKILL.md for the full skill and heuristics.
Dry-run preview for large edits (opt-in, off by default)
Why GitHub Issues (vs wiki, Notion, etc.)
Feature
Issues
Wiki
Backlinks
Automatic via CrossReferencedEvent
None
Search
search/issues API
No API
Relationships
Sub-issues, blocking/blockedBy
None
Programmatic access
gh issue + gh api
Must clone .wiki.git repo
Version history
userContentEdits GraphQL
Git history per file
Name
hubkasten (hub + German kasten, "box") is the project name. /hk is the invocation — every keystroke is a tax on frictionless capture. Other candidates (zetthub, issueloom, hubknot, hubrain, …) kept in commit history.
Dogfood
This issue is itself a hubkasten node. Every /hk #568 … invocation mutates it in place; the timeline above shows the full history, and this PR (#585) appears as a backlink automatically.
hubkasten — design doc for
/hkAI-friendly zettelkasten built on GitHub Issues. One repo = one kasten. Each issue = one node.
#Nreferences are links, and GitHub'sCrossReferencedEventgives backlinks for free.Shipped as the
/hkskill (#585). Lives atagents/.apm/skills/hk/SKILL.md; will eventually move to a standalone APM package.Core model
#Nis the only link primitive. Mention it in any body and GitHub logs aCrossReferencedEventon the target's timeline. No labels, no types, no taxonomy.#\d+. Backward: query timeline via GraphQL orsearch/issues.How
/hkworks/hk #N <free-form prompt>— the LLM reads the node's current structure and infers the edit. No subcommands, no flags. Seeagents/.apm/skills/hk/SKILL.mdfor the full skill and heuristics.Two rules that are non-negotiable:
Roadmap
/hkdogfood loop: use only/hkto maintain Canvas mode: freeform 2D terminal workspace #559 for a week, note friction/hk #N summarize everything that links hereWhy GitHub Issues (vs wiki, Notion, etc.)
CrossReferencedEventsearch/issuesAPIgh issue+gh apiuserContentEditsGraphQLName
hubkasten(hub + German kasten, "box") is the project name./hkis the invocation — every keystroke is a tax on frictionless capture. Other candidates (zetthub, issueloom, hubknot, hubrain, …) kept in commit history.Dogfood
This issue is itself a hubkasten node. Every
/hk #568 …invocation mutates it in place; the timeline above shows the full history, and this PR (#585) appears as a backlink automatically.