🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
855 lines
29 KiB
Markdown
855 lines
29 KiB
Markdown
---
|
|
name: init-bootstrap
|
|
description:
|
|
Interactive setup wizard that helps new users create a personalized CLAUDE.md
|
|
file based on their Obsidian workflow preferences
|
|
allowed-tools: [Read, Write, MultiEdit, Bash, Task]
|
|
argument-hint: "(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
|
|
|
|
1. **Initial Environment Setup**
|
|
- Get current date with `date` command 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 install` first (faster, better)
|
|
- Fall back to `npm install` if pnpm not available
|
|
- 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
|
|
|
|
2. **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
|
|
|
|
3. **Gather Vault Information**
|
|
- Search common locations for existing Obsidian vaults (.obsidian folder)
|
|
- Check these paths with appropriate depth limits:
|
|
- `~/Documents` (maxdepth 3) - all platforms
|
|
- `~/Desktop` (maxdepth 3) - all platforms
|
|
- `~/Library/Mobile Documents/iCloud~md~obsidian/Documents` (maxdepth 5 -
|
|
**macOS only**, iCloud vaults)
|
|
- Home directory `~/` (maxdepth 2) - all platforms
|
|
- Current directory parent (maxdepth 2) - all platforms
|
|
- 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
|
|
- If not the right one or none found:
|
|
- **On macOS only:** Ask: "Is your vault stored in iCloud Drive? (yes/no)"
|
|
- If yes (macOS): "Please enter the full path to your vault (e.g.,
|
|
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/YourVault)"
|
|
- If no, or on Linux/Windows: "Please enter the path to your existing
|
|
vault, or type 'skip' to start fresh"
|
|
- **Validate user-provided paths** (see "User Path Validation" section
|
|
below)
|
|
- If no existing vault or user skips, they're starting fresh
|
|
|
|
4. **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](https://fortelabs.com/blog/para/)
|
|
- "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'?"
|
|
|
|
5. **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`
|
|
|
|
6. **Generate Custom Configuration**
|
|
- Get current date: `date +"%B %d, %Y"` for the CLAUDE.md header
|
|
- Save preferences to `.claude/vault-config.json`:
|
|
```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
|
|
|
|
7. **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."
|
|
|
|
8. **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
|
|
|
|
9. **Run Test Commands**
|
|
- Execute `pnpm vault:stats` to verify scripts work
|
|
- Test attachment commands if folders exist
|
|
- Test MCP tools if configured
|
|
- Verify git is tracking files correctly
|
|
|
|
10. **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
|
|
|
|
```markdown
|
|
# 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:
|
|
|
|
1. **Always list all vaults found** with clear numbering and details
|
|
2. **Require explicit selection** - don't assume which vault to use
|
|
3. **Confirm the selection** before proceeding with import
|
|
4. **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)."
|
|
|
|
### Platform Compatibility
|
|
|
|
This command is designed to work across Linux, macOS, and Windows (WSL/Git
|
|
Bash), with platform-specific features:
|
|
|
|
**All Platforms:**
|
|
|
|
- Search ~/Documents, ~/Desktop, home directory
|
|
- Standard Obsidian vault detection
|
|
- Full vault import and setup
|
|
|
|
**macOS Only:**
|
|
|
|
- iCloud Drive vault detection and import
|
|
- Obsidian's iCloud sync is macOS-only, so iCloud features are disabled on other
|
|
platforms
|
|
|
|
**Platform Detection:**
|
|
|
|
```bash
|
|
# Check platform
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS - enable iCloud features
|
|
PLATFORM="macOS"
|
|
ICLOUD_SUPPORTED=true
|
|
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
# Linux
|
|
PLATFORM="Linux"
|
|
ICLOUD_SUPPORTED=false
|
|
elif [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
|
# Windows (Git Bash or WSL)
|
|
PLATFORM="Windows"
|
|
ICLOUD_SUPPORTED=false
|
|
fi
|
|
```
|
|
|
|
### iCloud Vault Search Implementation
|
|
|
|
When searching for vaults, use this find command pattern:
|
|
|
|
```bash
|
|
# Standard locations (shallow search)
|
|
# Note: 2>/dev/null suppresses expected permission errors from system directories
|
|
# If no vaults are found, we'll ask the user for their vault path
|
|
find ~/Documents ~/Desktop -maxdepth 3 -type d -name ".obsidian" 2>/dev/null
|
|
|
|
# iCloud location (deeper search needed due to nested structure)
|
|
# Only search on macOS
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
find ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents -maxdepth 5 -type d -name ".obsidian" 2>/dev/null
|
|
fi
|
|
|
|
# Home directory (shallow to avoid deep recursion)
|
|
find ~ -maxdepth 2 -type d -name ".obsidian" 2>/dev/null
|
|
```
|
|
|
|
The iCloud path requires:
|
|
|
|
- Higher maxdepth (5) due to nested folder structure
|
|
- Escaped spaces in path name
|
|
- Silent error handling (2>/dev/null) as many users won't have iCloud
|
|
- Platform check (macOS only)
|
|
|
|
**Error Handling Note:** Permission errors are suppressed (2>/dev/null) because
|
|
they're expected when searching system directories. If no vaults are found, the
|
|
script gracefully prompts the user for their vault path.
|
|
|
|
### User Path Validation
|
|
|
|
When users manually provide a vault path, validate it thoroughly with helpful
|
|
error messages:
|
|
|
|
```bash
|
|
# User provided path
|
|
USER_PATH="$1"
|
|
|
|
# Expand tilde and resolve to absolute path
|
|
USER_PATH="${USER_PATH/#\~/$HOME}"
|
|
REAL_PATH=$(realpath "$USER_PATH" 2>/dev/null)
|
|
|
|
# Validation 1: Path exists
|
|
if [ -z "$REAL_PATH" ]; then
|
|
echo "❌ Error: Path does not exist: $USER_PATH"
|
|
echo ""
|
|
echo "💡 Suggestions:"
|
|
echo " • Check for typos in the path"
|
|
echo " • Make sure you're using the full path (e.g., /Users/name/vault)"
|
|
echo " • You can use ~ for your home directory (e.g., ~/Documents/vault)"
|
|
exit 1
|
|
fi
|
|
|
|
# Validation 2: Is a directory
|
|
if [ ! -d "$REAL_PATH" ]; then
|
|
echo "❌ Error: Not a directory: $REAL_PATH"
|
|
echo ""
|
|
echo "💡 The path exists but points to a file, not a folder."
|
|
exit 1
|
|
fi
|
|
|
|
# Validation 3: Contains .obsidian folder
|
|
if [ ! -d "$REAL_PATH/.obsidian" ]; then
|
|
echo "❌ Error: Not a valid Obsidian vault (no .obsidian folder)"
|
|
echo " Looking in: $REAL_PATH"
|
|
echo ""
|
|
echo "💡 Suggestions:"
|
|
echo " • Make sure the path points to your vault root (not a subfolder)"
|
|
echo " • Check that you've opened this vault in Obsidian at least once"
|
|
echo " • Try the path without trailing slash"
|
|
echo " • For iCloud: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/YourVault"
|
|
exit 1
|
|
fi
|
|
|
|
# Validation 4: Readable permissions
|
|
if [ ! -r "$REAL_PATH/.obsidian" ]; then
|
|
echo "❌ Error: Cannot read vault directory (permission denied)"
|
|
echo " Path: $REAL_PATH"
|
|
echo ""
|
|
echo "💡 You may need to:"
|
|
echo " • Check file permissions with: ls -la \"$REAL_PATH\""
|
|
echo " • Make sure you own this directory"
|
|
exit 1
|
|
fi
|
|
|
|
# Show resolved path if different from input
|
|
if [ "$USER_PATH" != "$REAL_PATH" ]; then
|
|
echo "✓ Resolved path: $REAL_PATH"
|
|
fi
|
|
|
|
# Valid vault path
|
|
VAULT_PATH="$REAL_PATH"
|
|
echo "✓ Valid Obsidian vault found"
|
|
```
|
|
|
|
This validation:
|
|
|
|
- Expands `~` to home directory properly
|
|
- Resolves symlinks and relative paths to absolute paths
|
|
- Checks all essential requirements (exists, is directory, has .obsidian,
|
|
readable)
|
|
- Provides helpful, actionable error messages with suggestions
|
|
- Shows the resolved path so users understand what's being checked
|
|
- Trusts users (allows symlinks, paths outside home directory)
|
|
- Cross-platform compatible (works on Linux, macOS, Windows/WSL)
|
|
|
|
### iCloud Sync State Checking
|
|
|
|
When a user selects an iCloud vault, check sync state and warn if needed:
|
|
|
|
```bash
|
|
# After user confirms vault selection
|
|
if [[ "$OSTYPE" == "darwin"* ]] && [[ "$vault_path" == *"iCloud"* ]]; then
|
|
# Check for common iCloud sync indicators
|
|
if [ -f "$vault_path/.icloud" ] || [ -f "$vault_path/.obsidian/.icloud" ]; then
|
|
echo ""
|
|
echo "📱 iCloud Sync Notice:"
|
|
echo " This vault appears to be still downloading from iCloud."
|
|
echo " For best results, open it in Obsidian first to ensure files are synced."
|
|
echo ""
|
|
read -p "Continue anyway? (yes/no): " sync_answer
|
|
if [[ ! "$sync_answer" =~ ^[Yy] ]]; then
|
|
echo "No problem! Open the vault in Obsidian, then re-run /init-bootstrap"
|
|
exit 0
|
|
fi
|
|
else
|
|
echo ""
|
|
echo "📱 iCloud vault detected. If import seems incomplete, make sure sync is complete."
|
|
echo ""
|
|
fi
|
|
fi
|
|
```
|
|
|
|
This provides a soft warning that:
|
|
|
|
- Only runs on macOS for iCloud paths
|
|
- Checks for placeholder files that indicate incomplete download
|
|
- Asks for confirmation if sync issues detected
|
|
- Gives gentle reminder even when no issues found
|
|
- Lets users proceed if they choose
|
|
|
|
## 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, home directory, and parent directories. On macOS, also searches
|
|
iCloud Drive]
|
|
|
|
### 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:**
|
|
|
|
1. **~/Documents/MyNotes** (2,517 files, 1.1GB)
|
|
- Last modified: 2 hours ago
|
|
- Contains: Daily notes, projects, resources
|
|
|
|
2. **~/Desktop/WorkVault** (892 files, 450MB)
|
|
- Last modified: 3 days ago
|
|
- Contains: Client projects, meeting notes
|
|
|
|
3. **~/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.
|
|
|
|
### Case 3: No Vaults Found (Platform-Aware)
|
|
|
|
🔍 **No Obsidian vaults found in common locations.**
|
|
|
|
**On macOS:** Is your vault stored in iCloud Drive? (yes/no)
|
|
|
|
User: yes
|
|
|
|
Please enter the full path to your vault: (Example: ~/Library/Mobile
|
|
Documents/iCloud~md~obsidian/Documents/YourVault)
|
|
|
|
User: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault
|
|
|
|
[Validates path and shows vault stats]
|
|
|
|
Found vault at: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/MyVault
|
|
📊 Vault stats: 1,248 markdown files, 523MB total size
|
|
|
|
Would you like to import this vault? (yes/skip)
|
|
|
|
**On Linux/Windows:** Please enter the path to your existing Obsidian vault, or
|
|
type 'skip' to start fresh: (Example: ~/Documents/MyVault or
|
|
/home/user/obsidian-vault)
|
|
|
|
User: ~/Documents/MyVault
|
|
|
|
[Validates path and shows vault stats]
|
|
|
|
Found vault at: ~/Documents/MyVault 📊 Vault stats: 1,248 markdown files, 523MB
|
|
total size
|
|
|
|
Would you like to import this vault? (yes/skip)
|
|
|
|
📦 **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:
|
|
|
|
1. **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
|
|
|
|
2. **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.
|
|
|
|
3. **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.
|
|
|
|
2. **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/
|
|
|
|
3. **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/
|
|
|
|
4. **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:
|
|
|
|
1. Go to https://aistudio.google.com/apikey
|
|
2. Click "Create API Key"
|
|
3. Copy the key (starts with AIzaSy...)
|
|
|
|
Once you have it, paste it here and I'll configure everything for you.
|