{"id":26027,"library":"obsidian-kb-cli","title":"obsidian-kb-cli","description":"A CLI tool for managing Obsidian vaults following the Karpathy-style LLM-wiki workflow. Provides lint, bootstrap, index, and log commands for vaults structured with topic folders containing index.md, CLAUDE.md schemas, and entry notes with YAML frontmatter. Current stable version is 0.4.0 (March 2025). Release cadence is irregular, with major features in recent releases including attachment-aware linting and nested-topic exclusion. Key differentiators: companion to the obsidian-kb LLM skill, designed for cron jobs and git pre-commit hooks, supports wikilinks, stale claims via git history, and machine-readable JSON output.","status":"active","version":"0.4.0","language":"javascript","source_language":"en","source_url":"https://github.com/ab2891/obsidian-kb-cli","tags":["javascript","obsidian","knowledge-base","llm","karpathy","wiki","lint"],"install":[{"cmd":"npm install obsidian-kb-cli","lang":"bash","label":"npm"},{"cmd":"yarn add obsidian-kb-cli","lang":"bash","label":"yarn"},{"cmd":"pnpm add obsidian-kb-cli","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used by watch command for reliable file watching across platforms","package":"chokidar","optional":false}],"imports":[{"note":"Install globally via npm i -g obsidian-kb-cli, or use npx without install.","wrong":"obkb lint /path/to/vault (if not installed globally)","symbol":"default","correct":"npx obsidian-kb-cli lint /path/to/vault"},{"note":"The lint command walks top-level folders with index.md. Use --json for machine-readable output.","symbol":"lint","correct":"obkb lint ~/vault --topic Projects --json"},{"note":"Template options: generic, projects, papers, books, people. Default is generic.","wrong":"obkb bootstrap Papers --vault ~/vault (wrong template if non-default)","symbol":"bootstrap","correct":"obkb bootstrap Papers --vault ~/vault --template papers"},{"note":"Non-destructive by default. Use --force to overwrite existing index.md, or --output - to stdout.","wrong":"obkb index Projects --vault ~/vault --output ~/vault/Projects/index.md (without --force, will refuse to overwrite)","symbol":"index","correct":"obkb index Projects --vault ~/vault --output draft.md"}],"quickstart":{"code":"// Install globally\nnpm i -g obsidian-kb-cli\n\n// Lint a vault\nobkb lint ~/vault\n\n// Bootstrap a new topic with a template\nobkb bootstrap Projects --vault ~/vault --template projects\n\n// Generate an index for a topic\nobkb index Projects --vault ~/vault --output draft.md\n\n// Show help for a command\nobkb help bootstrap\n\n// Watch for changes and re-lint\nobkb watch ~/vault --debounce 250","lang":"bash","description":"Shows installation, basic lint, bootstrap, index generation, help, and watch commands."},"warnings":[{"fix":"Ensure you pass the correct vault path as used by Obsidian (e.g., absolute path, no trailing slash).","message":"v0.4.0 changed the vault path resolution to use exact vaultPath, which may cause lints to fail if vault path is specified differently from how Obsidian stores it.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"If you rely on flagging nested orphans, adjust your workflow — only direct children of the topic folder are now checked.","message":"v0.4.0 scoped the not-in-index orphan check to direct children only, so deeply nested notes that were previously flagged may no longer be reported.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"Review lint findings after upgrade; some entries may no longer appear in parent topic's checks.","message":"v0.4.0 skips entry notes inside sub-folders that have their own index.md, preventing double-flagging against parent topic. This may change existing lint results.","severity":"breaking","affected_versions":">=0.4.0"},{"fix":"Use --topic to restrict watched folder or increase --debounce to reduce relint frequency.","message":"The watch command requires chokidar (included) and may have higher CPU usage on very large vaults due to watching all .md files.","severity":"gotcha","affected_versions":">=0.3.0"},{"fix":"Add --force flag if you want to overwrite existing CLAUDE.md, index.md, or log.md.","message":"The bootstrap command will refuse to overwrite existing files unless --force is used. This can be surprising when re-bootstrapping.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Provide an absolute or correct relative path to the Obsidian vault directory.","cause":"Vault path specified incorrectly or does not exist.","error":"Error: ENOENT: no such file or directory, open '/path/to/vault/...'"},{"fix":"Run 'npm i -g obsidian-kb-cli' to install globally, or use 'npx obsidian-kb-cli'.","cause":"Package not installed globally or locally.","error":"Error: Cannot find module 'obsidian-kb-cli'"},{"fix":"Use one of: generic, projects, papers, books, people.","cause":"Bootstrap called with a template name that doesn't exist.","error":"Error: Invalid template 'custom'"},{"fix":"Add '--force' flag to overwrite, or specify a different --output path.","cause":"Index or bootstrap command tried to write to an existing file without --force.","error":"Error: --output file exists. Use --force to overwrite."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}