An AI agent skill for managing long-term semantic memory as structured knowledge in plain text (markdown).
🤖 🚰 ✂️ Unlock 🎋 WikiBonsai digital gardening for your AI agent.
Teaches AI agents to use wikirefs, CAML, and semtree to build and maintain a structured knowledge graph as persistent memory. Agents learn to capture concepts, verbalize definitions, connect ideas with typed links, and organize knowledge in a semantic hierarchy. All in plain markdown.
Requires tendr-cli:
npm install -g tendr-cliAll supported agents also discover skills in ~/.agents/skills/:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p ~/.agents/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" ~/.agents/skills/tendr/SKILL.mdThis makes the skill available to pi, gptme, and OpenClaw from a single install.
As a plugin (recommended):
git clone git@github.com:wikibonsai/tendr-skill.git ~/.claude/plugins/tendr-skillAs a standalone skill (user-level, available across all projects):
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p ~/.claude/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" ~/.claude/skills/tendr/SKILL.mdAs a standalone skill (project-level, available only in that project):
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p .claude/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" .claude/skills/tendr/SKILL.mdInvoke with /tendr in Claude Code.
User-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p ~/.config/gptme/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" ~/.config/gptme/skills/tendr/SKILL.mdWorkspace-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p .gptme/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" .gptme/skills/tendr/SKILL.mdgptme auto-loads the skill when "tendr" is mentioned in conversation.
User-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p ~/.openclaw/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" ~/.openclaw/skills/tendr/SKILL.mdWorkspace-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" skills/tendr/SKILL.mdInvoke with /tendr in OpenClaw.
User-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p ~/.pi/agent/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" ~/.pi/agent/skills/tendr/SKILL.mdProject-level:
git clone git@github.com:wikibonsai/tendr-skill.git
mkdir -p .pi/skills/tendr
ln -s "$(pwd)/tendr-skill/skills/tendr/SKILL.md" .pi/skills/tendr/SKILL.mdInvoke with /skill:tendr in pi.
tendr-skill/
├── .claude-plugin/
│ └── plugin.json ← Claude Code plugin metadata
├── skills/
│ ├── tendr/
│ │ └── SKILL.md ← main skill (syntax, workflow, CLI reference)
│ └── tendr-gc/
│ └── SKILL.md ← garden consolidation sub-agent
├── hooks/
│ ├── hooks.json ← Claude Code hooks (session start, recall, gc)
│ ├── pi-hooks.json ← pi hook config
│ └── gptme-hooks.toml ← gptme hook config
├── scripts/
│ ├── load-tree.sh ← discovers garden and prints semantic tree
│ ├── recall.sh ← fuzzy-matches prompt keywords against garden nodes
│ └── gc.sh ← post-consolidation cleanup (doctor, tree refresh)
├── README.md ← this file
└── LICENSE ← MIT
Set TENDR_DIR to point to your garden directory:
export TENDR_DIR=/path/to/gardenIf unset, the plugin auto-discovers the garden from common locations. The /tendr command also accepts a path argument: /tendr /path/to/garden.
Once installed, type /tendr to activate the skill in your session. On first use, the agent will set up a garden (knowledge base) with a config.toml, index/, and entries/ directory.
Clone a starter knowledge base from garden-beds to get going faster.
- WikiBonsai — the project
- tendr-cli — the CLI tool
- garden-beds — starter knowledge bases
- wikirefs —
[[wikilink]]spec - caml-mkdn —
: key :: valuespec - semtree — semantic tree spec