- Add write permissions for contents, pull-requests, and issues - Configure allowed tools for pnpm, git, gh CLI, and file operations - Restrict Claude activation to repository owner (heyitsnoah) only - Update init-bootstrap to ask about development work - Personal vault users: Remove .github folder and disconnect from origin - Contributors: Keep GitHub workflows and origin for development - Prevents personal vault users from seeing confusing GitHub Actions failures
22 KiB
name, description, allowed-tools, argument-hint
| name | description | allowed-tools | argument-hint | |||||
|---|---|---|---|---|---|---|---|---|
| init-bootstrap | Interactive setup wizard that helps new users create a personalized CLAUDE.md file based on their Obsidian workflow preferences |
|
(optional) path to existing vault or 'new' for fresh setup |
Initialize Bootstrap Configuration
This command helps you create a personalized CLAUDE.md configuration file by asking questions about your Obsidian workflow and preferences.
Task
Read the CLAUDE-BOOTSTRAP.md template and interactively gather information about the user's:
- Existing vault structure (if any)
- Workflow preferences
- Note-taking style
- Organization methods
- Specific requirements
Then generate a customized CLAUDE.md file tailored to their needs.
Process
-
Initial Environment Setup
- Get current date with
datecommand for timestamps - Check current folder name and ask if they want to rename it
- If yes, guide them through renaming (handle parent directory move)
- Check for package.json and install dependencies:
- Try
pnpm installfirst (faster, better) - Fall back to
npm installif pnpm not available
- Try
- Verify core dependencies are installed
- Check git status:
- If no .git folder: Initialize git repository
- If has remote origin: Ask about development work
- Personal vault: Remove origin and .github folder
- Contributing: Keep origin and workflows intact
- If clean local repo: Ready to go
- Don't create folders yet - wait until after asking about organization method
- Get current date with
-
Check Existing Configuration
- Look for existing CLAUDE.md
- If exists, ask if they want to update or start fresh
- Check for CLAUDE-BOOTSTRAP.md template
-
Gather Vault Information
- Search common locations for existing Obsidian vaults (.obsidian folder)
- Check: ~/Documents, ~/Desktop, home directory, current directory parent
- If found, ask: "Found Obsidian vault at [path]. Is this the vault you want to import?"
- Count files correctly:
find [path] -type f -name "*.md" | wc -l(no depth limit) - Show vault size:
du -sh [path] - If confirmed, analyze vault structure:
- Run
tree -L 3 -d [path]to see folder hierarchy - Sample 10-15 random notes to understand content types
- List 30-50 recent file names to detect naming patterns
- Check for daily notes folder and format
- Identify most active folders by file count
- Detect if using PARA, Zettelkasten, Johnny Decimal, or custom
- Run
- If not the right one or none found, ask for path to existing vault
- If no existing vault, they're starting fresh
-
Ask Configuration Questions
- "What's your name?" (for personalization)
- "Would you like me to research your public work to better understand your context?"
- If yes: Search for information
- ALWAYS show findings and ask "Is this correct?" for confirmation
- If multiple people found, list them numbered for selection
- If wrong person, offer to search again or skip
- Save relevant context about their work, writing style, areas of expertise
- "Do you follow the PARA method or have a different organization system?"
- "What are your main use cases? (research, writing, project management, knowledge base, daily notes)"
If using PARA, ask specific setup questions: PARA Method by Tiago Forte
- "What active projects are you working on?" (Create folders in 01_Projects)
- "What areas of responsibility do you maintain?" (e.g., Work, Health, Finance, Family)
- "What topics do you research frequently?" (Set up in 03_Resources)
- "Any projects you recently completed?" (Can archive with summaries)
General preferences:
- Check .obsidian/community-plugins.json to see what plugins they use
- Analyze existing files to detect naming convention automatically
- Check for attachments folder to see if they work with media files
- "Do you use git for version control?"
- "Any specific websites or resources you reference often?"
- "Do you have any specific writing style preferences?"
- "Are there any workflows or patterns you want Claude to follow?"
- "Would you like a weekly review ritual? (e.g., Thursday project review)"
- "Do you prefer 'thinking mode' (questions/exploration) vs 'writing mode'?"
-
Optional Tool Setup
Gemini Vision (already included)
- Ask: "Gemini Vision is already included for analyzing images, PDFs, and videos. Would you like to activate it? (yes/no/later)"
- Explain: "You just need a free API key from Google. This lets Claude analyze any visual content in your vault."
- If later: "No problem! You can set it up anytime by running
/setup-gemini" - If yes:
- Guide to get API key from https://aistudio.google.com/apikey (free, takes 30 seconds)
- Help add to shell profile (.zshrc, .bashrc, etc.)
- Run
claude mcp add --scope project gemini-vision node .claude/mcp-servers/gemini-vision.mjs - Configure .mcp.json with API key
- Test the connection with a sample command
Firecrawl (already included)
- Ask: "Firecrawl is included for web research. Would you like to set it up? (yes/no/later)"
- Explain: "This is a game-changer for research! When you find an article or website, you can save it directly to your vault as markdown - preserving the content forever, making it searchable, and letting Claude analyze it. Perfect for building a research library."
- Example: "Just tell Claude: 'Save this article to my vault: [URL]' and it's done!"
- If later: "You can set it up anytime by running
/setup-firecrawl" - If yes:
- Guide to get API key from https://firecrawl.dev (free tier available)
- Help configure the scripts in .scripts/
- Show example usage:
.scripts/firecrawl-scrape.sh https://example.com
-
Generate Custom Configuration
- Get current date:
date +"%B %d, %Y"for the CLAUDE.md header - Save preferences to
.claude/vault-config.json:{ "user": { "name": "Jane Smith", "background": { "companies": ["Variance", "Percolate"], "roles": ["Co-founder", "Writer"], "publications": ["Why Is This Interesting?", "every.to"], "expertise": ["Developer tools", "Marketing tech", "Systems thinking"], "interests": ["AI for thinking", "Note-taking systems", "Creativity"] }, "profileSources": [ "https://whyisthisinteresting.com/about", "https://every.to/@username" ], "customContext": "Focuses on AI as thinking augmentation, not just writing", "publicProfile": true }, "vaultPath": "/path/to/existing/vault", "fileNamingPattern": "detected-pattern", "organizationMethod": "PARA", "primaryUses": ["research", "writing", "projects"], "tools": { "geminiVision": true, "firecrawl": false }, "projects": ["Book - Productivity", "SaaS App"], "areas": ["Newsletter", "Health"], "importedAt": "2025-01-13", "lastUpdated": "2025-01-13" } - Start with CLAUDE-BOOTSTRAP.md as base
- Add user-specific sections:
- Custom folder structure with their actual projects/areas
- Personal workflows
- Preferred tools and scripts
- Specific guidelines
- MCP configuration if set up
- Include their websites/resources if provided
- Add any custom naming conventions
- Pre-populate with their projects and areas:
- Create project folders in 01_Projects/
- Create area folders in 02_Areas/
- Create resource topics in 03_Resources/
- Add README files explaining each project/area
- Get current date:
-
Import Existing Vault (if applicable)
- If user has existing vault:
- Create OLD_VAULT folder:
mkdir OLD_VAULT - Copy entire vault preserving structure:
cp -r [vault-path]/* ./OLD_VAULT/ - Copy Obsidian configuration:
cp -r [vault-path]/.obsidian ./ - Check for and copy other important files:
.trash/(Obsidian's trash folder).smart-connections/(if using that plugin)- Any workspace files:
.obsidian.vimrc, etc.
- Skip copying:
.git/(they'll have their own),.claude/(using ours) - Show summary: "Imported your vault to OLD_VAULT/ (X files, Y folders)"
- Explain: "Your original structure is preserved in OLD_VAULT. You can gradually migrate files to the PARA folders as needed."
- Create OLD_VAULT folder:
- If user has existing vault:
-
Create Supporting Files
- Generate initial folder structure if new vault
- Create README files for main folders
- For each project folder, create subfolders:
- Research/ (source materials)
- Chats/ (AI conversations)
- Daily Progress/ (running log)
- Create 05_Attachments/Organized/ directory
- Set up .gitignore if using git (include .mcp.json, node_modules)
- Create initial templates if requested
- Create WEEKLY_REVIEW.md if user wants review ritual
- Remove FIRST_RUN marker file if it exists
- Make initial git commit if repository was initialized
-
Run Test Commands
- Execute
pnpm vault:statsto verify scripts work - Test attachment commands if folders exist
- Test MCP tools if configured
- Verify git is tracking files correctly
- Execute
-
Provide Next Steps
- Summary of what was created and configured
- Quick start guide specific to their setup
- List of available commands they can use
- Test commands to verify everything works
- Suggestions for first tasks based on their use cases
- How to modify configuration later
Example Output
# Your Obsidian Vault Configuration
Generated on: [Run `date +"%B %d, %Y"` to get current date]
Last updated: [Same date]
Based on your preferences for: [main use cases]
Setup completed with: ✅ Dependencies ✅ Folder structure ✅ Git initialized
## Your Custom Folder Structure
[Their specific structure with explanations]
## Your Workflows
### Daily Routine
[Based on their answers]
### Project Management
[Their specific approach]
### Research Method (Noah Brier Style)
- Capture everything you read
- Let important ideas naturally resurface
- Start with writing to test understanding
- Use search, not tags, to find things
- [Learn more from Noah's system](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452)
### Weekly Review Ritual
[If enabled: Every Thursday at 4pm, review all projects]
## Your Preferences
### File Naming
- Pattern: [their convention]
- Examples: [specific examples]
### Tools & Scripts
[Relevant scripts for their workflow]
## MCP Servers (if configured)
### Gemini Vision
- Status: ✅ Configured and tested
- API Key: Set in .mcp.json
- Test with: `Use gemini-vision to analyze [image path]`
## Available Commands
### Vault Management
- `pnpm vault:stats` - Show vault statistics
- `pnpm attachments:list` - List unprocessed attachments
- `pnpm attachments:organized` - Count organized files
### Claude Commands
- `claude run thinking-partner` - Collaborative thinking mode
- `claude run daily-review` - Review your day
- `claude run init-bootstrap` - Re-run this setup
## Quick Start
1. [Personalized first step]
2. [Next action based on their goals]
3. [Specific to their workflow]
## Pro Tips from Research Masters
- **Be a token maximalist**: Provide lots of context to Claude
- **Writing scales**: Document everything for future reference ([Noah Brier](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452))
- **Trust emergence**: Important ideas will keep surfacing
- **Start with writing**: Always begin projects in text form
- **Review regularly**: Set aside time weekly to prune and update
- **PARA Method**: Projects, Areas, Resources, Archive ([Tiago Forte](https://fortelabs.com/blog/para/))
## Setup Summary
✅ Dependencies installed (pnpm/npm)
✅ Folder structure created
✅ Git repository initialized and disconnected from original
✅ CLAUDE.md personalized
✅ First-run setup completed
[✅ MCP Gemini Vision configured - if set up]
[✅ First commit made - if git was initialized]
Important Implementation Notes
Handling Multiple Vaults
When multiple vaults are detected:
- Always list all vaults found with clear numbering and details
- Require explicit selection - don't assume which vault to use
- Confirm the selection before proceeding with import
- Handle ambiguous responses - if user provides unclear input (like pasting a screenshot), ask for clarification:
- "I see you've shared a screenshot. Could you please type the number (1-3) of the vault you'd like to import?"
- "I need a clear selection. Please type '1', '2', or '3' to choose a vault, or 'skip' to start fresh."
Never Proceed Without Clear Confirmation
If the user's response is unclear:
- Don't guess or assume
- Ask for explicit confirmation
- Provide clear options again
- Example: "I want to make sure I import the right vault. Please type the number of your choice (1, 2, or 3)."
Interactive Example
User: claude run init-bootstrap
Assistant: Welcome! I'll help you set up your personalized Obsidian + Claude configuration.
📅 Today's date: [Gets from `date +"%B %d, %Y"`]
First, let me check your setup...
📁 **Folder Name Check**
Current folder: claudesidian
Would you like to rename this folder to something more personal? (e.g., my-vault, knowledge-base, obsidian-notes)
*Why: Your vault should have a name that makes sense to you - you'll see it every day!*
[If yes: Handles the rename by moving to parent directory and back]
Now setting up your environment...
📦 **Installing Dependencies**
[Checks for pnpm, uses npm if not available]
[Installs dependencies with pnpm/npm]
*Why: These tools enable Claude Code to work with your vault effectively*
🔓 **Repository Setup**
**Will you be contributing to claudesidian development?**
- **No** (Personal vault only) → I'll remove GitHub workflows and disconnect from the repo
- **Yes** (I want to contribute) → I'll keep the development setup intact
[Implementation:]
```bash
# If user says "No" (personal vault):
rm -rf .github # Remove GitHub workflows
git remote remove origin # Disconnect from claudesidian repo
# If user says "Yes" (contributing):
# Keep .github folder and origin remote
echo "Development setup preserved for contributing"
Why: Personal vaults don't need GitHub Actions, but contributors benefit from the automation
📂 Creating Folder Structure [Creates folders based on your chosen organization method] Why: A good structure helps you organize and find your knowledge effectively
🎯 Finalizing Setup [Checks git status and removes first-run marker] Why: Git gives you version control, and removing the marker ensures you won't see the welcome message again
✅ Folder renamed (if requested) ✅ Dependencies installed ✅ Core folders created ✅ Git repository ready (disconnected from original claudesidian) ✅ First-run marker removed
Now let me ask you a few questions to customize your setup:
🔍 Searching for existing Obsidian vaults... [Searches ~/Documents, ~/Desktop, ~/, and parent directories]
Case 1: Single Vault Found
Found Obsidian vault at: ~/Documents/MyNotes 📊 Vault stats: 2,517 markdown files, 1.1GB total size Would you like to import this vault?
- yes - Import this vault
- no - Search for a different vault
- skip - Start fresh without importing
- path - Specify a different path manually
User: yes
Case 2: Multiple Vaults Found
🔍 Found multiple Obsidian vaults:
-
~/Documents/MyNotes (2,517 files, 1.1GB)
- Last modified: 2 hours ago
- Contains: Daily notes, projects, resources
-
~/Desktop/WorkVault (892 files, 450MB)
- Last modified: 3 days ago
- Contains: Client projects, meeting notes
-
~/Documents/ObsidianVault (156 files, 23MB)
- Last modified: 2 weeks ago
- Contains: Personal notes, drafts
Which vault would you like to import?
- Enter 1-3 to select a vault
- all - Import all vaults (each to a separate folder)
- skip - Start fresh without importing
- path - Specify a different path manually
User: 1
Confirming your selection: You selected: ~/Documents/MyNotes (2,517 files, 1.1GB)
Is this correct? (yes/no)
User: yes
Great! I'll import your vault to OLD_VAULT/ where it will be safely preserved. You can migrate files to the PARA folders at your own pace.
📦 Analyzing your vault structure... [Running tree to see folder hierarchy] [Sampling notes to understand content] [Detecting naming patterns from recent files]
I can see you're using:
- A modified PARA structure with custom folders
- Date-prefixed files for daily notes (YYYY-MM-DD)
- Project folders with nested research
- Heavy use of the Resources folder for reference material
📦 Importing your vault... [Copying files to OLD_VAULT/] [Preserving .obsidian settings] [Checking for plugin folders]
✅ Imported 2,517 files (1.1GB) to OLD_VAULT/ Your original structure is completely preserved!
Now let's personalize your setup:
-
What's your name?
Why I'm asking: I'll use this to personalize your CLAUDE.md file and help me understand your context better. This creates a more tailored experience where I can reference your work and interests naturally.
User: Noah Brier
-
Would you like me to research your public work?
Why this helps: By understanding your background, expertise, and interests, I can:
- Tailor suggestions to your specific field and workflow
- Reference relevant examples from your domain
- Better understand the context of your questions
- Build a profile that helps me be a more effective thinking partner
User: Yes
Great! To make sure I find information about the real you, could you provide any of these details?
- Your company or organization
- Your location (city/country)
- A unique project you've worked on
- Your website or social media handle
- Any other distinguishing information
This helps me avoid confusion with others who share your name.
User: I co-founded Variance and Percolate, I write at every.to
Perfect! Let me search for you with those details...
[Searches for information using the provided identifying information]
Based on your details, I found you - Noah Brier, co-founder of Variance and Percolate, writer at every.to.
Let me confirm this is correct:
- Co-founded Variance (developer tools) and Percolate (marketing software)
- Write at every.to and Why Is This Interesting? newsletter
- Focus on systems thinking, creativity, and technology
Is this you? (yes/no)
User: yes
Excellent! I've identified the right profile.
Building Your Profile Would you like me to read any specific pages to better understand your work?
- Your personal website or blog
- Recent articles or papers you've written
- Company/project pages
- LinkedIn or other profiles
Enter URLs (comma-separated) or 'skip' to continue:
User: https://whyisthisinteresting.com/about, https://every.to/@noahbrier
[Fetches and analyzes the provided URLs]
I've built a comprehensive profile:
- You co-founded Variance (developer tools) and Percolate (marketing software)
- You write Why Is This Interesting? newsletter with Colin Nagy
- You explore creativity, technology, and systems thinking
- You've written about writing as thinking, note-taking systems, and AI
Is there anything else I should know about your work or interests?
User: I'm really interested in how AI can augment thinking, not just writing
Got it! I'll remember that you focus on AI as a thinking tool, not just a writing assistant.
- What will you primarily use this vault for? (research, writing, project management, daily notes, knowledge base, or combination?)
User: I'll use it for research and writing, plus managing client projects
Assistant: Great! I'll configure your vault for research, writing, and client project management.
- What specific projects are you currently working on? (I'll create folders for each in 01_Projects)
User: I'm writing a book about productivity systems, building a SaaS app, and planning a conference talk
Assistant: Perfect! I'll set up project folders for:
- 01_Projects/Book - Productivity Systems/
- 01_Projects/SaaS App Development/
- 01_Projects/Conference Talk/
- What ongoing areas of responsibility do you maintain? (These go in 02_Areas - things without an end date)
User: My newsletter, health & fitness, personal finances, and family activities
Assistant: I'll create area folders for:
- 02_Areas/Newsletter/
- 02_Areas/Health & Fitness/
- 02_Areas/Finances/
- 02_Areas/Family/
- What topics do you frequently research or reference? (I'll organize these in 03_Resources)
User: AI tools, productivity methods, SaaS metrics, and writing techniques
Assistant: Setting up resource folders for:
- 03_Resources/AI Tools/
- 03_Resources/Productivity Methods/
- 03_Resources/SaaS Metrics/
- 03_Resources/Writing Techniques/
[Continues with questions...]
Gemini Vision Setup Gemini Vision is already included in claudesidian! It can analyze images, PDFs, and videos in your vault. To activate it, you just need a free Google API key (takes 30 seconds). Would you like to set it up now? (yes/no/later)
User: later
No problem! You can set it up anytime by running /setup-gemini when you're ready.
Firecrawl Setup Firecrawl is a game-changer for research! Save any article or website directly to your vault as markdown. Perfect for building a permanent, searchable research library. Would you like to set it up? (yes/no/later)
User: yes
Great choice! Firecrawl will transform how you collect research.
Assistant: Excellent! Here's how to get your API key:
- Go to https://aistudio.google.com/apikey
- Click "Create API Key"
- Copy the key (starts with AIzaSy...)
Once you have it, paste it here and I'll configure everything for you.