SkillAtlasSkill 详情

wiki-cli

Build an Obsidian knowledge base that becomes more useful every time you use it.

审核状态:已审核Quality 80Security 80

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月2日

claude-obsidian cover featuring an astronaut, the Obsidian crystal, and a connected knowledge graph

claude-obsidian

Build an Obsidian knowledge base that becomes more useful every time you use it.
Capture sources, create connected notes, retrieve grounded answers, and keep the vault healthy—without giving up ownership of your files.

MIT license Agent Skills compatible Claude Code plugin Release v2.1.0

See the workflow · Quick start · Explore the skills · Installation guide · Windows & WSL

claude-obsidian is a local-first knowledge system for Claude Code and compatible Agent Skills hosts. It turns source material into linked, source-cited Obsidian pages; answers from the evidence already in the vault; and provides explicit workflows for research, retrieval, maintenance, and visual mapping.

Your vault remains a normal directory of Markdown, JSON, and source files. It is not hidden in a plugin cache, locked in a cloud database, or silently uploaded to a model.

From source to living knowledge

Most AI note workflows stop after saving text. claude-obsidian is organized around a repeatable loop: retain the source, ground the claims, connect the knowledge, then put it back to work.

The claude-obsidian compounding knowledge loop

  • Capture with context. Bring local sources through a visible inbox and preserve immutable, content-addressed copies before synthesis.
  • Ground every important claim. Source and claim ledgers retain authority, freshness, support, contradiction, confidence, and review state.
  • Connect what you learn. Build linked pages, indexes, Maps of Content, methodology-aware structures, and Obsidian Canvas views.
  • Use the vault again. Query, research, retrieve, lint, and fold what is already known instead of starting every conversation from zero.

See the vault

The output is meant to remain useful with or without an agent: plain Markdown for portability, Obsidian for navigation and visual exploration.

Example claude-obsidian vault in Obsidian Graph view Example claude-obsidian knowledge map in Obsidian Canvas

Linked knowledge in Graph view · A visual knowledge map in Obsidian Canvas

Why it feels different

  • Local by default. The vault is user-owned and works as ordinary files. Network egress is a separate, explicit decision.
  • Sources survive the summary. Notes point back to durable source evidence; unsupported and contradictory claims remain visible.
  • Knowledge compounds deliberately. Ingestion, querying, linting, retrieval, research, and rollups share one provenance-aware model.
  • Parallel agents cannot race the vault. Workers return drafts. One orchestrator inspects and applies one recoverable transaction.
  • Capabilities are stated honestly. Optional tools are detected, maturity is declared, and missing adapters degrade clearly instead of being simulated.

This is not an automatic transcript recorder, a cloud sync service, a factual oracle, or a substitute for backups and source control.

Quick start

The safest first run uses a source checkout and a separate user vault. Every mutating setup command previews its exact operation before it can apply.

1. Get the product

git clone https://github.com/AgriciDaniel/claude-obsidian.git
cd claude-obsidian

The checkout contains the product. It is not your knowledge vault.

2. Initialize a separate vault

export GENERATED_AT="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
export OPERATION_ID="init-reviewed"

python3 scripts/claude-obsidian.py init "$HOME/Documents/MyKnowledgeVault" \
  --generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID"

Review the JSON plan and copy its approved_plan_sha256, then apply that exact operation:

python3 scripts/claude-obsidian.py init "$HOME/Documents/MyKnowledgeVault" \
  --generated-at "$GENERATED_AT" --operation-id "$OPERATION_ID" \
  --approved-plan-sha256 "<sha256-from-the-plan>" --apply

For an existing Obsidian vault, use the non-destructive adopt workflow described in the installation guide.

3. Start from the vault

Open the new directory in Obsidian, then run Claude Code from that directory with the local plugin:

cd "$HOME/Documents/MyKnowledgeVault"
claude --plugin-dir /absolute/path/to/claude-obsidian

Start with:

/claude-obsidian:wiki

Then place a source in inbox/ and invoke /claude-obsidian:wiki-ingest. Save an answer explicitly with /claude-obsidian:save; ask the vault with /claude-obsidian:wiki-query.

For Codex, OpenCode, or Gemini, preview and then apply the portable skill links from the product checkout:

bash bin/setup-multi-agent.sh --host codex
bash bin/setup-multi-agent.sh --host codex --apply

Cursor and Windsurf use workspace-local skill discovery. Marketplace setup, every supported host, vault adoption, upgrades, and uninstall steps are covered in the full installation guide.

15 skills, one system

The skills are small enough to invoke directly and coordinated enough to share the same evidence, vault-selection, and mutation rules.

Build and use the wiki

SkillWhat it does
wikiInitializes or adopts a vault, diagnoses readiness, and routes work
saveSaves one scoped answer or insight—never an automatic transcript
wiki-ingestTurns captured sources into linked pages and provenance records
wiki-queryAnswers read-only from relevant vault evidence
wiki-lintReports dead links, orphans, metadata gaps, stale indexes, and empty sections

Extend the workflow

SkillWhat it adds
autoresearchBounded web research with explicit egress and a separate canonical merge
canvasWiki-scoped Obsidian Canvas creation and maintenance
defuddleClean, readable web content before ingestion
wiki-foldExtractive, traceable rollups of the operation log
wiki-modeGeneric, LYT, PARA, or Zettelkasten filing conventions
wiki-retrieveContextual prefixes, BM25, and optional cosine reranking
wiki-cliObsidian CLI reads and search with transaction-safe writes

Reference skills

SkillWhat it provides
obsidian-markdownCorrect Obsidian Flavored Markdown, links, embeds, and callouts
obsidian-basesNative .base tables, cards, filters, formulas, and summaries
thinkA structured observe, listen, connect, create, and grow review loop

Claude Code exposes namespaced invocations such as /claude-obsidian:wiki-lint; other hosts use their native Agent Skills invocation. Trigger phrases and exact contracts live in each skills/<name>/SKILL.md.

Trust is part of the architecture

The claude-obsidian product and vault trust boundary

The product never treats a source checkout, plugin cache, or contributor state as the default vault. A vault is selected explicitly, through CLAUDE_OBSIDIAN_VAULT, by the nearest .claude-obsidian.json, or by one unambiguous initialized ancestor. If selection is uncertain, the command exits without writing.

One logical knowledge operation is one recoverable transaction:

  1. Read every target and record its expected SHA-256.
  2. Let parallel workers return drafts and evidence only.
  3. Merge the complete change into one operation bundle.
  4. Inspect the bundle, then apply it once.
  5. Report the operation ID and exact changed paths.

The core holds one process-lifetime vault lock, journals backups, uses atomic replacement, and restores the prior state if an apply cannot finish. A changed target is a conflict, never a silent overwrite. Git checkpoints, destructive repairs, network egress, and canonical research merges remain explicit operations.

Read the transaction contract, provenance contract, and Compound Vault architecture for the machine-facing detail.

Honest capability boundaries

Input or capabilityCurrent support
Local filesystem sourcesImplemented bounded, content-addressed byte capture
ImagesMetadata, hash, size, and bounded dimensions when available
PDF and EPUBMetadata, hash, and size; no built-in semantic extraction
URL and YouTubeValidated consent plans; a configured external runner is required
OCRLocal-file consent plan; a configured external runner is required
BM25 retrievalLocal and deterministic
Contextual prefixes or remote modelsOptional and gated by explicit egress consent
Obsidian CLIOptional for reads/search; filesystem transport remains available

High-risk accepted claims require two independent sources. Unsupported or contradictory evidence stays visible, and a grounded refusal is preferred over an invented citation. Model-based retrieval falls back to deterministic BM25 when the embedding or reranking stage cannot be trusted.

Shape the vault to the way you think

wiki-mode can route new notes using four methodologies without bulk-moving existing knowledge:

ModeFiling principle
GenericSources, concepts, entities, and sessions
LYTMaps of Content and linked atomic notes
PARAProjects, Areas, Resources, and Archives
ZettelkastenStable identifiers, atomic notes, and dense links

Generic is the default when no mode is configured. Switching modes changes how new notes are routed; it does not silently reorganize old ones. See the methodology modes guide.

Operator reference

Portable CLI

The wrapper is python3 scripts/claude-obsidian.py.

CommandEffect
doctor --vault PATHShow vault selection and readiness
init PATH [--approved-plan-sha256 HASH --apply]Plan or create a separate vault
adopt PATH [--approved-plan-sha256 HASH --apply]Plan or adopt an existing Obsidian vault
migrate --vault PATH [--approved-plan-sha256 HASH --apply]Add v1 ledgers and configuration without rewriting legacy data
transaction inspect BUNDLE --vault PATHValidate a write bundle without mutation
transaction apply BUNDLE --vault PATH --approved-plan-sha256 HASHApply one inspected, recoverable operation
transaction recover --vault PATH [--force-stale-lock]Restore an interrupted operation
lint --vault PATH [--as-of YYYY-MM-DD]Emit findings deterministic for the declared UTC date
contracts --verify --vault PATHExecute capability readiness contracts
capture plan --vault PATH [SOURCE ...]Run a local capture preflight without writes
capture apply --vault PATH [SOURCE ...]Plan or create immutable content-addressed copies
checkpoint OPERATION_ID --vault PATHExplicitly commit one completed operation
package validateCheck skills, hooks, manifests, and documentation coherence
release build --output FILE.zipBuild and self-audit a deterministic public artifact
release audit FILE.zipAudit an artifact without extracting or publishing it

High-level mutating planners emit approved_plan_sha256. Pin --generated-at and --operation-id, review the JSON operation, and pass that exact hash with --apply. Filesystem or generated-bundle drift fails before a vault write.

Repository and vault layout
product repository/                user vault/
├── claude_obsidian/               ├── .gitignore
├── skills/                        ├── .claude-obsidian.json
├── hooks/                         ├── inbox/
├── scripts/                       ├── .raw/
├── templates/vault/               ├── wiki/
├── config/                        ├── .obsidian/
├── assets/                        └── .vault-meta/   # ignored runtime state
└── tests/

Public artifacts contain product code, deterministic templates, and reviewed README assets. They reject contributor hot/log state, root raw sources, runtime metadata, private paths, recognizable personal email addresses, secrets, symlinks, unsafe archive entries, and unreviewed binaries.

The private development checkout deliberately has no marketplace catalog. The release builder injects the reviewed catalog only into the distribution-clean artifact. A public default branch must be populated from that audited tree, never by pushing contributor-vault state.

Upgrade, rollback, and uninstall

Upgrade the product independently from the vault. For an older vault, first preview the additive, idempotent migration:

python3 scripts/claude-obsidian.py migrate --vault /path/to/vault \
  --generated-at "$GENERATED_AT" --operation-id migrate-reviewed

Review its hash and rerun with --approved-plan-sha256 HASH --apply. Migration preserves the legacy raw manifest byte-for-byte and does not infer claims from prose.

After an interrupted operation, run:

python3 scripts/claude-obsidian.py transaction recover --vault /path/to/vault

Removing the plugin or host links never removes the vault. Delete only the integration you installed; user notes, sources, ledgers, and Obsidian settings remain yours.

Requirements

  • Python 3.11 or newer for the portable core
  • Obsidian for the visual vault experience; plain Markdown remains usable without it
  • Bash for setup, optional extensions, and shell test suites
  • Git only for development, releases, or an explicit knowledge checkpoint

CI exercises Linux and macOS, plus a native-Windows smoke job for the portable surface. On native Windows (including Git Bash), read-only inspection and dry-run commands work; vault writes require WSL and fail closed with an UNSUPPORTED_PLATFORM error otherwise. Approval hashes bind to the reviewing environment, so review inside WSL when the apply will happen there. Platform details, the support matrix, and WSL troubleshooting (including hangs from virtualization conflicts) live in the Windows and WSL guide. The bash setup scripts and shell test suites remain POSIX-only. Optional tools such as Obsidian CLI, Ollama, and defuddle are capability-detected and affect only their dependent workflow.

Development and release

make test

The test target runs every hermetic Python and shell suite, product and capability contracts, skill and hook validation, manifest checks, and package boundaries. CI repeats the suite on supported Linux and macOS/Python combinations and verifies a byte-reproducible release build.

Build and audit locally without publishing:

python3 scripts/claude-obsidian.py release build --output dist/claude-obsidian.zip
python3 scripts/claude-obsidian.py release audit dist/claude-obsidian.zip

No command pushes, tags, publishes, opens issues, or creates releases automatically. See CONTRIBUTING.md, SECURITY.md, and CODE_OF_CONDUCT.md.

Lineage, license, and attribution

The design follows Andrej Karpathy's LLM Wiki pattern and uses kepano/obsidian-skills as the reference substrate for Obsidian Markdown, Bases, and JSON Canvas syntax.

MIT licensed. See ATTRIBUTION.md and CITATION.cff.

研究与检索

中风险

  • 来源需自行核对维护者身份。
  • 包含脚本或命令调用,安装前请复核。
  • 未检测到明显外部权限要求。
  • 未检测到高风险命令。
  • 扫描发现:2 条。

Codex — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/claude-obsidian.git
  3. 将 "skills/wiki-cli" 文件夹复制到 Codex 的 skills 目录中。
  4. 重启 Codex 让新的 skill 生效。

Codex — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Codex 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Codex 让新的 skill 生效。

Claude Code — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/claude-obsidian.git
  3. 将 "skills/wiki-cli" 文件夹复制到 Claude Code 的 skills 目录中。
  4. 重启 Claude Code 让新的 skill 生效。

Claude Code — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Claude Code 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Claude Code 让新的 skill 生效。

Cursor — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/claude-obsidian.git
  3. 将 "skills/wiki-cli" 文件夹复制到 Cursor 的 skills 目录中。
  4. 重启 Cursor 让新的 skill 生效。

Cursor — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Cursor 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Cursor 让新的 skill 生效。

GitHub Copilot — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/claude-obsidian.git
  3. 将 "skills/wiki-cli" 文件夹复制到 GitHub Copilot 的 skills 目录中。
  4. 重启 GitHub Copilot 让新的 skill 生效。

GitHub Copilot — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 GitHub Copilot 让新的 skill 生效。

Windsurf — Git Clone 安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 克隆仓库:git clone https://github.com/AgriciDaniel/claude-obsidian.git
  3. 将 "skills/wiki-cli" 文件夹复制到 Windsurf 的 skills 目录中。
  4. 重启 Windsurf 让新的 skill 生效。

Windsurf — 手动复制安装

  1. 安装前请先查看来源仓库和风险报告。
  2. 从源仓库下载 SKILL.md 及相关文件。
  3. 在 Windsurf 的 skills 目录中创建新文件夹。
  4. 将所有 skill 文件复制到新文件夹中。
  5. 重启 Windsurf 让新的 skill 生效。
查看 SKILL.md 原文
name: wiki-cli
description: "Detect and use the official Obsidian command-line interface for read-only vault access; use for wiki-cli, Obsidian CLI, Obsidian read, Obsidian search, vault transport, which transport, transport detection, backlinks, tags, or Obsidian command line. Mutations always go through the claude-obsidian transaction core."

Obsidian CLI read transport

Use this skill only to detect transport and read or search a selected vault. The official executable is obsidian; binary presence alone does not prove it is usable.

Resolve the installed product root from this skill's own location, not from the vault or current working directory:

PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
DETECT_TRANSPORT="$PRODUCT_ROOT/scripts/detect-transport.sh"
test -f "$DETECT_TRANSPORT"

Detect safely

Probe without persisting host state:

bash "$DETECT_TRANSPORT" --peek --vault "$VAULT"

Trust available.cli.usable, not merely present or exit status. A supported CLI can still be unavailable because the Obsidian app is not running, command line access is disabled, or its response is an error. Use filesystem reads as the portable fallback.

Persist a refreshed .vault-meta/transport.json only when the user or setup workflow asks for a transport snapshot:

bash "$DETECT_TRANSPORT" --force --vault "$VAULT"

That file is derived runtime configuration, not knowledge content. Preserve a valid manual_override recorded by the detector.

Read and search

Run official CLI commands from the selected vault so Obsidian resolves the correct workspace. Confirm supported syntax with the installed CLI before relying on optional commands. Typical read-only forms are:

(cd "$VAULT" && obsidian read path="$NOTE")
(cd "$VAULT" && obsidian search query="$QUERY")

Use read-only commands for backlinks, tags, or Bases results only when the detector reports the CLI ready. Otherwise read files under $VAULT directly and use rg for search. Reject absolute note arguments, traversal, symlinks, or resolved paths outside the selected vault.

Mutation boundary

Do not use CLI create, write, append, property-set, daily-append, move, rename, or delete commands. Do not replace those commands with direct filesystem writes. Any knowledge or configuration change must be expressed as one reviewed transaction through the portable core; see operation transactions.

Transport choice never changes mutation semantics. The CLI is an optional read surface, not a lock manager, transaction engine, or Git checkpoint mechanism.

Checkpoint

Observe actual capability, think about the least complex read transport, verify that every resolved path stays in the vault, and accept filesystem fallback when the CLI is not ready.

发现问题?提交给管理员复核

评分:

评论 (0)

暂无评论,成为第一个评论者吧!