Lead README with Obsidian-shaped claims memory and the agent host path. Mark the old JSONL session skill deprecated leftover. GitHub is a mirror. |
||
|---|---|---|
| examples | ||
| obsidian-plugin/tapestry-control | ||
| scripts | ||
| server | ||
| skills | ||
| vault-template | ||
| .gitignore | ||
| LICENSE | ||
| NOTICE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
Tapestry
Personal claims memory as an Obsidian-shaped markdown vault.
The product is the vault: claims, generated surface, thread context-pack.md, and AGENTS.md. That loop is forever. Chat is not the system of record.
Source-available. Free for personal, non-commercial use. Commercial use needs a separate license. See LICENSE and NOTICE.
Clone (canonical)
git clone https://git.coyotes.cloud/coyotes/tapestry-memory.git
Product source of truth: git.coyotes.cloud/coyotes/tapestry-memory (Forgejo).
GitHub Coyotes-Commits/tapestry-memory is an optional mirror. Prefer Forgejo.
Core: the vault
Copy vault-template/ to a private folder (example: ~/Documents/Tapestry) and open it as an Obsidian vault — or any folder of markdown. Never commit a live vault.
AGENTS.md
PROTOCOL.md
yarns/<domain>/instructions.md
yarns/<domain>/threads/<thread>/
instructions.md
context-pack.md budgeted reopen (prefer)
surface.md generated from current claims
claims/*.md system of record
fibers/<id>/summary.md
fibers/<id>/transcript/transcript.md
Supersession over mutation. New claim markdown supersedes the old. History stays. Partitions keep people and projects from mixing.
Default operator: any file-capable agent
Grok Bot, Claude, Hermes, Cursor, OpenClaw — same path. They share one host contract. Do not split per harness except a one-line pointer (skill file vs this vault’s AGENTS.md).
| Step | What the agent does |
|---|---|
| Arm | Read the markdown stack. Confirm armed <domain>/<thread>. Answer from pack + surface + claims. |
| Work | Think in the agent. Do not append every turn to JSONL. |
| Knot | When the human says knot / land it: write claim .md, supersede stale claims, regenerate surface.md, refresh that thread’s context-pack.md only, write a short fiber summary + transcript, update TAPESTRY_SESSION.md and .tapestry/active.json (pointer only). |
Skill to load: skills/tapestry-host/SKILL.md. If the host has no skill install, follow vault AGENTS.md — same loop.
skills/tapestry-session is DEPRECATED: leftover JSONL / non-Obsidian write path for the product CLI only. Not the live loop.
Do not use the product CLI for Q&A or knots. Do not invent ids; read .tapestry/active.json or existing folder names. Never cross partitions.
Arm read order
AGENTS.mdPROTOCOL.md(skim)yarns/<id>/instructions.mdthreads/<id>/instructions.mdcontext-pack.md(prefer)surface.mdif the pack looks stale- Individual claims only if needed
Optional: terminal CLI + Obsidian plugin
A Node CLI (server/) and Tapestry Control plugin exist for people who want a control plane. They are leftover / optional, not the loop. The current CLI still expects JSON meta after the vault moved to Obsidian-shaped files. Host/agent markdown is the supported path.
Why
Chat is a terrible system of record. Static notes go stale without clean supersession. An LLM wiki is great for how the world works — and the wrong place for “what is our current protocol right now?”
C LLM wiki general mechanisms & entities
B personal vault long-form life notes
A Tapestry current claims, supersedes, packs ← this repo
0 live agent reads and writes the vault
Vocabulary
| Term | Meaning | Disk |
|---|---|---|
| Yarn | Domain workspace | yarns/<id>/ |
| Thread | Long-lived conversation line | yarns/<y>/threads/<id>/ |
| fiber | One sitting / segment | …/fibers/<id>/ |
| Claim | One durable fact or decision | …/claims/<id>.md |
| Surface | Generated view of current claims | …/surface.md |
| Pack | Budgeted reopen context | …/context-pack.md (thread-scoped) |
| Partition | Isolation key (person / project) | on thread + claims |
| Arm | Bind to one thread by reading the stack | .tapestry/active.json pointer |
| Knot | HITL land: write claims + regenerate surface/pack | vault files |
License
PolyForm Noncommercial 1.0.0 — free for personal / non-commercial use.
Not OSI “open source.” Source is available to read, run, and adapt for permitted purposes. Commercial use requires a separate written license.
Status
Early (0.1.0). Core loop: arm (read markdown) → work → knot (write claims, regenerate surface/pack). The repo also ships optional CLI/plugin code. Not a rebuild of your agent — it owns memory structure, not the model.
Inspiration
- Karpathy — LLM Wiki pattern
- Files-first memory; cold archive + hot bounded context
Tapestry is not an LLM wiki. It is personal state with supersession — complementary, not competing.