Skip to content

GregTheGreek/claude-obsidian

Repository files navigation

Claude Obsidian

An opinionated Obsidian workspace designed for Claude Code workflows. Combines personal knowledge management with AI-powered automation for research synthesis, content creation, and project tracking. Built with sensible defaults but fully customizable to match your style.

Important: Version Control Your Config

Before installing, we recommend setting up your ~/.claude directory in git:

cd ~/.claude
git init
git add -A
git commit -m "Initial config before installing claude-obsidian"

This creates a safety checkpoint. If you don't like these configurations, you can easily revert:

cd ~/.claude
git reset --hard HEAD  # Revert to before installation

Table of Contents

Quick Start

Get up and running in under 5 minutes:

  1. Back up your config (if you have existing ~/.claude):

    cd ~/.claude && git init && git add -A && git commit -m "Backup before claude-obsidian"
  2. Install:

    • Fresh install: git clone https://github.com/YOUR_USERNAME/claude-obsidian ~/.claude && cd ~/.claude && ./setup.sh
    • Existing config: See Installation Options
  3. Set up Obsidian: ./setup-obsidian.sh ~/obsidian (or your vault path)

  4. Try it: Run claude code in your terminal and execute /today

For detailed installation options and configuration, see Installation.

What's Included

Skills

Skill Command Description
Today /today Refresh all dashboards - daily, research, GitHub, thinking sessions
GitHub Dashboard /github-dashboard Generate org analytics - PRs, commits, contributors, trends
Daily Sync /daily-sync Process daily notes, extract tasks, update daily dashboard
Sync Dashboard /sync-dashboard Update Obsidian research dashboard
Sync Thinking /sync-thinking Update thinking sessions dashboard with stats
Promote Thinking /promote-thinking Convert resolved thinking sessions into formal research docs
Ghostwrite Twitter /ghostwrite-twitter Generate tweets using multi-model voice validation
Clean Interviews /clean-interviews Standardize user interview notes, add frontmatter, aggregate insights
Figma to Code /figma-to-code Generate React/Next.js code from Figma designs
Apple Notes Import /apple-notes-import Import notes from Apple Notes for processing
Notion /notion Notion integration for page operations
Adversarial Spec /adversarial-spec Iteratively refine specs by debating with multiple LLMs

Agents

Agent Purpose
thinking-partner Explore complex problems, brainstorm solutions, rubber-duck ideas
writing_critic Relentless critique of written content for style and quality

Prerequisites

New to the terminal? See our Terminal for Beginners guide for setup recommendations.

Required:

  • Claude Code installed
  • Obsidian - most skills integrate with Obsidian for dashboards and note management
  • Git
  • Bash 3.2+ (macOS default works)

Optional:

  • GitHub CLI (gh) - for /github-dashboard skill
  • Notion MCP server - for /notion skill
  • Figma MCP server - for /figma-to-code skill

Installation

Installation Options

Choose the installation approach that fits your situation:

Option A: Fresh Install (no existing config)

If you don't have an existing ~/.claude folder, or want to start fresh:

# Clone template directly to ~/.claude
git clone https://github.com/YOUR_USERNAME/claude-obsidian ~/.claude
cd ~/.claude

# Run setup
./setup.sh

Option B: Merge with Existing Config (recommended)

If you already have a ~/.claude folder with your own CLAUDE.md, settings, or custom skills:

# Clone to a separate location
git clone https://github.com/YOUR_USERNAME/claude-obsidian ~/code/claude-dotfiles

# Run setup in merge mode
cd ~/code/claude-dotfiles
./setup.sh --merge

This will:

  • Add new skills/agents that don't exist in your config
  • Preserve all your existing files (CLAUDE.md, settings.json, custom skills)
  • Prompt before overwriting any config files
  • Create backups if you choose to replace files

Option C: Cherry-pick Specific Skills

If you only want specific skills without the full template:

# Clone to temp location
git clone https://github.com/YOUR_USERNAME/claude-obsidian /tmp/claude-dotfiles

# Copy just the skills you want
cp -r /tmp/claude-dotfiles/skills/github-dashboard ~/.claude/skills/
cp -r /tmp/claude-dotfiles/skills/ghostwrite-twitter ~/.claude/skills/

# Clean up
rm -rf /tmp/claude-dotfiles

Setup Configuration

The setup script will prompt for:

  • Git name: Author name for AI commits (e.g., "Your Name (ai)")
  • SSH key path: Key for signing commits (default: ~/.ssh/id_ed25519)
  • Claude directory: Usually ~/.claude
  • Obsidian vault path: Where your Obsidian vault lives (default: ~/obsidian)
  • GitHub org: Organization for dashboard analytics (optional)
  • Twitter handle: For ghostwriting skill (optional)

Non-Interactive Setup

For scripted installations:

GIT_NAME="Your Name (ai)" \
SSH_KEY_PATH="$HOME/.ssh/id_ed25519" \
OBSIDIAN_VAULT_PATH="$HOME/obsidian" \
GITHUB_ORG="your-org" \
TWITTER_HANDLE="yourhandle" \
./setup.sh --non-interactive

# Or with merge mode:
./setup.sh --merge --non-interactive

Setup Options Reference

Flag Description
--merge, -m Merge with existing config instead of in-place setup
--target DIR, -t DIR Target directory (default: ~/.claude in merge mode)
--force, -f Overwrite existing files without asking
--dry-run, -d Show what would be done without making changes
--non-interactive, -n Use environment variables or defaults (no prompts)

Setting Up Obsidian

Many skills integrate with Obsidian for note-taking and dashboard management.

Create Vault Structure

Run the Obsidian setup script:

./setup-obsidian.sh
# Or specify a custom path:
./setup-obsidian.sh /path/to/your/vault

This creates:

your-vault/
|-- .dashboard-archive/     # Dashboard snapshots
|-- .thinking-archive/      # Thinking session archives
|-- Daily Notes/            # Daily notes
|-- Research/
|   |-- User interviews/    # Interview notes
|-- Writing/
|   |-- Tweets/             # Tweet drafts
|-- Thinking/
|   |-- Sessions/           # Thinking sessions
|-- daily-dashboard.md
|-- research-dashboard.md
|-- github-dashboard.md
|-- thinking-dashboard.md

Opening in Obsidian

Important: When opening your vault in Obsidian:

  1. Click "Open" (not "Create")
  2. Select "Open folder as vault"
  3. Navigate to your vault path (e.g., ~/obsidian)

Do NOT use "Create new vault" - this will hide the folder contents from Finder/file browsers.

Dashboard Files

The setup script creates starter dashboards. Run these skills to populate them:

  • /today - Refresh all dashboards at once
  • /daily-sync - Update daily dashboard with tasks
  • /sync-dashboard - Update research dashboard
  • /github-dashboard - Fetch GitHub org analytics
  • /sync-thinking - Update thinking session stats

Getting Started

After installation, here's how to start using the template:

For detailed workflow guidance and skill usage tips, see the Usage Guide.

  1. Verify installation: Open Claude Code and check that skills are loaded with /help

  2. Run your first dashboard refresh: Execute /today to populate all dashboards at once

  3. Explore individual skills:

    • /github-dashboard - Generate GitHub org analytics
    • /daily-sync - Process daily notes and extract tasks
    • /sync-dashboard - Update research dashboard
    • /ghostwrite-twitter - Generate tweets (requires voice profile setup)
  4. Customize your setup: See Customization for adding your own skills

  5. Review the documentation: Check Advanced Topics for directory structure and updating

Customization

Adding Skills

Create a new directory under skills/:

skills/my-skill/
|-- skill.json     # Skill metadata
|-- SKILL.md       # Skill instructions (prompt)

Example skill.json:

{
  "name": "my-skill",
  "description": "What this skill does",
  "user_invocable": true
}

Modifying CLAUDE.md

Edit the CLAUDE.md.template file, then regenerate:

./setup.sh --force

Or edit CLAUDE.md directly (it will be overwritten by setup.sh unless you remove the template).

Voice Profiles

For the ghostwrite-twitter skill, create a voice profile:

  1. Copy the template:

    cp voice-profiles/voice-profile.template.md voice-profiles/yourhandle-twitter.md
  2. Fill in your writing style, vocabulary, and example tweets

Advanced Topics

Directory Structure

~/.claude/
|-- CLAUDE.md              # Global instructions (generated from template)
|-- settings.json          # Claude Code settings (generated)
|-- statusline.sh          # Status line customization
|-- config/
|   |-- paths.env          # Path configuration (generated)
|   |-- README.md
|-- skills/                # Skill definitions
|   |-- today/
|   |-- github-dashboard/
|   |-- ...
|-- agents/                # Custom agent definitions
|   |-- thinking-partner.md
|   |-- writing_critic.md
|-- scripts/               # Utility scripts
|-- voice-profiles/        # Twitter voice profiles
|-- obsidian/              # Obsidian-specific config
    |-- CLAUDE.md          # Obsidian project instructions
    |-- config/

Updating

If you cloned directly to ~/.claude

cd ~/.claude
git pull
./setup.sh  # Re-run setup to process any new templates

Your generated files (CLAUDE.md, settings.json, etc.) will only be overwritten if you use --force.

If you used merge mode

cd ~/code/claude-dotfiles  # wherever you cloned the template
git pull
./setup.sh --merge  # Adds new skills, preserves your customizations

This will add any new skills or agents from the template update while preserving your existing configuration.

For Template Maintainers

If you're maintaining your own fork of this template, use the sync script to pull changes from your personal config:

./sync-from-personal.sh
git status  # Review changes
git add -A && git commit -m "Sync from personal config"
git push

The sync script:

  • Copies skills, agents, and scripts
  • Replaces personal identifiers with template variables
  • Skips runtime directories (cache, data, etc.)

Reference

Known Limitations

  • macOS-focused: Some scripts use macOS-specific paths and tools
  • Obsidian integration: Dashboard skills require Obsidian vault structure
  • GitHub CLI: GitHub dashboard requires gh CLI and authentication
  • Twitter ghostwriting: Requires manual voice profile setup

Contributing

Contributions welcome! Please:

  1. Fork this repository
  2. Create a feature branch
  3. Submit a pull request

For bug reports and feature requests, open an issue.

License

MIT License - See LICENSE for details.


Built with Claude Code

About

A customizable Claude Code configuration template with skills, agents, and Obsidian integration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages