> Set up a new Obsidian knowledge base with the LLM Wiki pattern. Use when the user wants to create a second brain, initialize a vault, set up a personal knowledge base, or says "onboard". Guides through an interactive wizard to configure vault name, location, domain, agent support, and tooling.
npx skills add https://github.com/NicholasSpisak/second-brain --skill second-brain
Set up a new Obsidian knowledge base using the LLM Wiki pattern. The LLM acts as librarian — reading raw sources, compiling them into a structured interlinked wiki, and maintaining it over time.
Guide the user through these 5 steps. Ask ONE question at a time. Each step has a sensible default — the user can accept it or provide their own value.
Ask:
> "What would you like to name your knowledge base? This will be the folder name."
> Default: second-brain
Accept any user-provided name. This becomes the folder name and the title in the agent config.
Ask:
> "Where should I create it? Give me a path, or I'll use the default."
> Default: ~/Documents/
Accept any absolute or relative path. Resolve ~ to the user's home directory. The final vault path is {location}/{vault-name}/.
Ask:
> "What's this knowledge base about? This helps me set up relevant tags and describe the vault's purpose."
>
> Examples: "AI research", "competitive intelligence on fintech startups", "personal health and fitness"
Accept free text. Use this to:
Auto-detect which agent is running this skill. State it clearly:
> "I'm running in [Agent Name], so I'll generate a [config file] for this vault."
Then ask:
> "Do you use any other AI agents you'd like config files for? Options: Claude Code, Codex, Cursor, Gemini CLI — or skip."
Skip the agent that was auto-detected. Generate configs for all selected agents.
Agent detection logic:
CLAUDE.md convention is being used or the Skill tool is Claude Code's → Claude Code.cursor/ exists in the working directory → CursorGEMINI.md convention is being used → Gemini CLIAsk:
> "These tools extend what the LLM can do with your vault. All optional but recommended:"
>
> 1. summarize — summarize links, files, and media from the CLI
> 2. qmd — local search engine for your wiki (helpful as it grows)
> 3. agent-browser — browser automation for web research
>
> "Install all, pick specific ones (e.g. '1 and 3'), or skip?"
After collecting all answers, execute these steps in order:
Run the onboarding script, passing the full vault path:
bash <skill-directory>/scripts/onboarding.sh <vault-path>
This creates all directories and the initial wiki/index.md and wiki/log.md files.
For each selected agent, read the corresponding template from <skill-directory>/references/agent-configs/:
| Agent | Template | Output File | Output Location |
|---|---|---|---|
| Claude Code | claude-code.md | CLAUDE.md | Vault root |
| Codex | codex.md | AGENTS.md | Vault root |
| Cursor | cursor.md | second-brain.mdc | <vault>/.cursor/rules/ |
| Gemini CLI | gemini.md | GEMINI.md | Vault root |
For each template, replace the placeholders:
{{VAULT_NAME}} → the vault name from Step 1{{DOMAIN_DESCRIPTION}} → a one-line description derived from Step 3{{DOMAIN_TAGS}} → generate 5-8 domain-relevant tags as a bullet list based on the domain from Step 3{{WIKI_SCHEMA}} → read <skill-directory>/references/wiki-schema.md and insert everything from ## Architecture onwardWrite the generated config to the vault.
Append the setup entry:
## [YYYY-MM-DD] setup | Vault initialized
Created vault "{{VAULT_NAME}}" for {{DOMAIN_DESCRIPTION}}.
Agent configs: {{list of generated config files}}.
For each tool the user selected in Step 5, run the install command:
npm i -g @steipete/summarizenpm i -g @tobilu/qmdnpm i -g agent-browser && agent-browser installAfter each install, verify with <tool> --version. Report success or failure for each.
Show the user:
> Install the Obsidian Web Clipper to easily save web articles into your vault:
> https://chromewebstore.google.com/detail/obsidian-web-clipper/cnjifjpddelmedmihgijeibhnjfabmlf
raw/, then run /second-brain-ingestThese files are bundled with this skill and available at <skill-directory>/references/:
wiki-schema.md — canonical wiki rules (single source of truth for all agent configs)tooling.md — CLI tool details, install commands, and verification stepsagent-configs/claude-code.md — CLAUDE.md templateagent-configs/codex.md — AGENTS.md templateagent-configs/cursor.md — Cursor rules templateagent-configs/gemini.md — GEMINI.md templateAfter setup is complete, the user's workflow is:
raw/ using the Obsidian Web Clipper/second-brain-ingest — processes raw files into wiki pages/second-brain-query — searches and synthesizes from the wiki/second-brain-lint — run after every 10 ingests or monthlyComprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.
Take nicholasspisak/second-brain from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.