- Skill ID
- ar9av/obsidian-wiki/wiki-setup
- Publisher
- ar9av
- Repository
- obsidian-wiki
- Installs
- 0
- Files
- 1
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
ar9av/obsidian-wiki/wiki-setupInstalls these files- SKILL.md
What this skill tells the agent
Obsidian Setup — Vault Initialization
You are setting up a new Obsidian wiki vault (or repairing an existing one).
Step 1: Create .env
If .env doesn't exist, create it from .env.example. Ask the user for:
- Where should the vault live? →
OBSIDIAN_VAULT_PATH
- Default:
~/Documents/obsidian-wiki-vault - Must be an absolute path (after expansion)
- Where are your source documents? →
OBSIDIAN_SOURCES_DIR
- Can be multiple paths, comma-separated
- Default:
~/Documents - Local git repo clones (public or private, any host) can be listed here too — clone the repo locally first, then add its path. See "Ingesting Git Repositories" in
wiki-ingest/SKILL.mdfor how repo sources are handled.
- Want to import Claude history? →
CLAUDE_HISTORY_PATH
- Default: auto-discovers from
~/.claude - Set explicitly if Claude data is elsewhere
- Have QMD installed? →
QMD_WIKI_COLLECTION/QMD_PAPERS_COLLECTION/QMD_TRANSPORT
- Optional. Enables semantic search in
wiki-queryand source discovery inwiki-ingest. - Default to
QMD_TRANSPORT=mcpunless the user wants the agent to call the localqmdCLI directly. - If using CLI mode, set
QMD_CLI_SEARCH_MODE=qualityby default; suggestbalancedif reranking is too slow. - If unsure, skip for now — both skills fall back to
Grepautomatically. - Install instructions: see
.env.example(QMD section). - If `QMD_WIKI_COLLECTION` is set, verify the collection excludes `_raw/`. The wiki collection and papers collection must stay disjoint —
wiki-querycites them as separate layers (compiled knowledge vs. raw staging), andOBSIDIAN_VAULT_PATHcontains_raw/, so a plainqmd collection add <vault>silently merges the two. Read~/.config/qmd/index.yml, find the entry for$QMD_WIKI_COLLECTION, and check itsignorelist includes_raw/**(and ideallylog.md, which has no semantic value). If the collection doesn't exist yet, create it (qmd collection add "$OBSIDIAN_VAULT_PATH" --name <collection-name>), then add theignoreblock toindex.ymlby hand —qmdhas no--ignoreflag and refuses a secondcollection addon a path that already has one, so editing the YAML is the only way to scope it. Runqmd updateafter editing. If the collection already exists without theignoreblock, tell the user their wiki collection is indexing_raw/(including_raw/_archived/drafts left behind bywiki-ingest) and offer to add theignoreblock and re-runqmd update.
- Token budget warning threshold? →
WIKI_TOKEN_WARN_THRESHOLD
- Default:
100000(warn when full-wiki read would cost > 100K tokens) - Set to
0to disable the warning entirely wiki-statusshows a token footprint table and emits this warning automatically
- Enable staged writes? →
WIKI_STAGED_WRITES
- Default: unset /
false(pages written directly to their final location) - Set to
truefor team wikis, high-stakes domains, or any vault where the human wants final say on every LLM-written page - When enabled: all new/updated pages land in
_staging/first; run/wiki-stage-committo review and promote them wiki-statusshows a "Staged writes pending" count when files are waiting
After resolving config, assign the global config directory with the exact obsidian_wiki_config_dir algorithm from the Config Resolution Protocol in .skills/llm-wiki/SKILL.md. Create the shared writing profile only when it does not already exist. Preserve an existing $GLOBAL_CONFIG_DIR/WRITING.md; never overwrite it and do not ask additional writing-style questions.
Use OBSIDIAN_WIKI_REPO when it was loaded from config. When it is absent, derive the absolute repository/data root from this loaded skill's absolute path, distinguishing the packaged <root>/skills/wiki-setup/SKILL.md layout from the source <root>/.skills/wiki-setup/SKILL.md layout. Then check both canonical template layouts:
- Packaged install:
<root>/skills/llm-wiki/references/WRITING.md - Source checkout:
<root>/.skills/llm-wiki/references/WRITING.md
GLOBAL_CONFIG_DIR="$(obsidian_wiki_config_dir)"
mkdir -p "$GLOBAL_CONFIG_DIR"
SKILL_FILE="<absolute path of this loaded wiki-setup/SKILL.md>"
SKILL_DIR="$(cd "$(dirname "$SKILL_FILE")" && pwd)"
if [ -n "${OBSIDIAN_WIKI_REPO:-}" ]; then
WIKI_ROOT="${OBSIDIAN_WIKI_REPO%/}"
else
case "$SKILL_DIR" in
*/.skills/wiki-setup) WIKI_ROOT="${SKILL_DIR%/.skills/wiki-setup}" ;;
*/skills/wiki-setup) WIKI_ROOT="${SKILL_DIR%/skills/wiki-setup}" ;;
*) echo "Cannot derive writing-profile template root from $SKILL_DIR" >&2; exit 1 ;;
esac
fi
WRITING_TEMPLATE=""
for candidate in \
"$WIKI_ROOT/skills/llm-wiki/references/WRITING.md" \
"$WIKI_ROOT/.skills/llm-wiki/references/WRITING.md"
do
if [ -f "$candidate" ]; then
WRITING_TEMPLATE="$candidate"
break
fi
done
[ -n "$WRITING_TEMPLATE" ] || { echo "Writing profile template not found under $WIKI_ROOT" >&2; exit 1; }
WRITING_PROFILE="$GLOBAL_CONFIG_DIR/WRITING.md"
if [ ! -e "$WRITING_PROFILE" ]; then
cp "$WRITING_TEMPLATE" "$WRITING_PROFILE"
fiStep 2: Create Vault Directory Structure
mkdir -p "$OBSIDIAN_VAULT_PATH"/{concepts,entities,skills,references,synthesis,journal,projects,_archives,_raw,_staging,.obsidian}.obsidian/— Obsidian's own config. Creates vault recognition.projects/— Per-project knowledge (populated during ingest)._archives/— Stores wiki snapshots for rebuild/restore operations._raw/— Staging area for unprocessed drafts. Drop rough notes here;wiki-ingestwill promote them to proper wiki pages and move the originals into_raw/_archived/(created on first use)._staging/— Review queue for LLM-written pages whenWIKI_STAGED_WRITES=true. Pages here are not visible in Obsidian's graph until promoted via/wiki-stage-commit.
Step 3: Create Special Files
index.md
---
title: Wiki Index
---
# Wiki Index
*This index is automatically maintained. Last updated: TIMESTAMP*
## Concepts
*No pages yet. Use `wiki-ingest` to add your first source.*
## Entities
## Skills
## References
## Synthesis
## Journallog.md
---
title: Wiki Log
---
# Wiki Log
- [TIMESTAMP] INIT vault_path="OBSIDIAN_VAULT_PATH" categories=concepts,entities,skills,references,synthesis,journalhot.md
---
title: Hot Cache
updated: TIMESTAMP
---
# Hot Cache
*A ~500-word semantic snapshot of recent activity. Updated after every major write operation.*
## Recent Activity
- [TIMESTAMP] INIT — vault created at OBSIDIAN_VAULT_PATH
## Active Threads
*None yet — start ingesting sources to populate.*
## Key Takeaways
*None yet.*
## Flagged Contradictions
*None yet.*.manifest.json
Create an empty manifest so ingest skills have a tracking file to append to and obsidian-wiki doctor reports the vault as complete (it treats .manifest.json as a required core file):
printf '{}\n' > "$OBSIDIAN_VAULT_PATH/.manifest.json"Step 4: Create .obsidian Configuration
Create minimal Obsidian config for a good out-of-box experience:
.obsidian/app.json
{
"strictLineBreaks": false,
"showFrontmatter": false,
"defaultViewMode": "preview",
"livePreview": true
}.obsidian/appearance.json
{
"baseFontSize": 16
}Step 5: Recommend Obsidian Plugins
Tell the user about these recommended community plugins (they install manually):
- Dataview — Query page metadata, create dynamic tables. Essential for a wiki.
- Graph Analysis — Enhanced graph view for exploring connections.
- Templater — If they want to create pages manually using templates.
- Obsidian Git — Auto-backup the vault to a git repo.
Step 6: Verify Setup
Run a quick sanity check:
More from ar9av
Use this skill in a project
Open any RiverX project, search the Skills panel for ar9av/obsidian-wiki/wiki-setup, and install it in one click.
