wiki-mode
wiki-mode lets Obsidian vault users declare an organizational methodology (LYT, PARA, Zettelkasten, or Generic) in `.vault-meta/mode.json`, which Claude Code skills consult before filing new pages. Use it when you want wiki-ingest, save, and autoresearch to route notes according to your chosen system rather than a generic folder structure.
git clone --depth 1 https://github.com/AgriciDaniel/claude-obsidian /tmp/wiki-mode && cp -r /tmp/wiki-mode/skills/wiki-mode ~/.claude/skills/wiki-modeSKILL.md
# Route by vault methodology
This skill returns filing suggestions. It does not write knowledge pages or
move existing notes. If `.vault-meta/mode.json` is absent, use `generic`. If
the file exists but is invalid, fail closed and repair it through a reviewed
configuration operation before suggesting routes; never silently substitute
Generic for corrupt user configuration.
Resolve the installed product root from this skill's own location, not from the
vault or current working directory:
```bash
PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
CORE="$PRODUCT_ROOT/scripts/claude-obsidian.py"
MODE_HELPER="$PRODUCT_ROOT/scripts/wiki-mode.py"
test -f "$CORE" && test -f "$MODE_HELPER"
```
## Read and route safely
Always select the vault explicitly:
```bash
python3 "$MODE_HELPER" --vault "$VAULT" get
python3 "$MODE_HELPER" --vault "$VAULT" config
python3 "$MODE_HELPER" --vault "$VAULT" route concept "Concept name"
python3 "$MODE_HELPER" --vault "$VAULT" route source "Source title"
```
The helper validates the selected vault, confines paths, sanitizes names, and
prints a suggestion only. A calling skill may override the suggestion when the
user supplies a more specific project, area, MOC, or parent note, but it must
still apply its eventual writes through one operation transaction.
| Mode | Routing intent |
|---|---|
| `generic` | Type-based folders such as sources, entities, concepts, and sessions. |
| `lyt` | Atomic notes under `wiki/notes/`, connected through MOCs. |
| `para` | Projects, Areas, Resources, or Archives chosen by actionability. |
| `zettelkasten` | Flat atomic notes with time-sortable, collision-resistant identifiers and explicit links. |
Use the templates under `templates/` as structural guidance, not authority to
overwrite user conventions.
## Change mode
A mode change is one configuration operation, dry-run first:
1. Read the current `.vault-meta/mode.json`, or start from the helper's default
config when it is absent.
2. Validate the requested mode as exactly `generic`, `lyt`, `para`, or
`zettelkasten`. Preserve the other mode-specific settings.
3. Choose and retain a pinned UTC timestamp and operation ID for both commands.
4. Preview the canonical configuration transaction; the command records the
current target hash and limits the write to `.vault-meta/mode.json`:
```bash
python3 "$CORE" mode set "$MODE" --vault "$VAULT" \
--generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID"
```
5. Show the old mode, new mode, exact changed path, and complete preview. Copy
its `approved_plan_sha256` only after review.
6. Apply by regenerating that exact vault-bound plan:
```bash
python3 "$CORE" mode set "$MODE" --vault "$VAULT" \
--generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID" \
--approved-plan-sha256 "$APPROVAL_SHA256" --apply
```
Follow the [operation transaction contract](../wiki/references/operation-transactions.md).
Do not use `scripts/wiki-mode.py`'s legacy direct-write `set` action or a setup
script to bypass this workflow.
Changing mode affects routing for future operations only. Never bulk-create
folders, move notes, rewrite wikilinks, or migrate existing pages as a side
effect. If migration is later requested, plan and review it as a distinct
operation with its own hashes and transaction.
## Checkpoint
Observe the user's current structure, think about how they retrieve and act on
notes, verify a few proposed routes before changing configuration, and grow by
revisiting the mode only when real filing friction appears.>
Ingest supplied source material into an Obsidian vault with provenance and claim tracking: pasted text, files staged in the selected vault's inbox or .raw archive, or explicitly approved URLs. Use for a single source or bounded batch, not for saving an assistant answer. Triggers: ingest, ingest this file, ingest this URL, process this source, read and file this source, batch ingest, ingest these sources.
Run a deterministic, read-only health check on an Obsidian wiki. Use for lint, vault health check, audit wiki health, find orphans, find dead links, frontmatter audit, provenance audit, or wiki audit. Reports graph, link, frontmatter, provenance-ledger, empty-section, and stale-index findings; it does not reason broadly or repair files.
Run a bounded, source-grounded research loop, draft a cited dossier, and optionally propose a separately reviewed canonical vault merge. Use when the user wants autonomous or deep research that may access the public web. Triggers: /autoresearch, autoresearch, research this topic, deep dive into, investigate, find everything about, research and file, go research, build a wiki on.
Create, inspect, and update Obsidian JSON Canvas boards with text, file, link, group, and edge nodes. Use for canvas status, canvas lists, visual maps, zones, spatial layouts, adding vault notes or media to a .canvas file, and requests such as create canvas, add to canvas, or put this on the canvas.
Save a user-selected answer, decision, insight, or session summary into an Obsidian vault as one reviewed transaction. Use only when the user explicitly asks to preserve specific conversation content, not when they supply a file or URL to ingest. Triggers: /save, save this, save that answer, file this conversation, save this analysis, keep this insight, preserve this chat result.
Initialize, adopt, and route work for a separate Obsidian knowledge vault through the portable claude-obsidian core. Use for vault setup, scaffolding, workspace selection, cross-project configuration, or choosing the correct wiki sub-skill. Triggers: /wiki, set up wiki, scaffold vault, create knowledge base, adopt this vault, Obsidian vault, second brain setup, persistent wiki.
Plan and, with explicit network consent, use an optional external Defuddle cleaner to extract article-like HTTPS pages as Markdown. Use for defuddle, clean this URL, strip page clutter, readable Markdown from a web page, or preparing a web source for later wiki ingestion.