home / skills / andrejones92 / canifi-life-os / obsidian-publish
/skills/obsidian-publish
npx playbooks add skill andrejones92/canifi-life-os --skill obsidian-publishReview the files below or copy the command above to add this skill to your agents.
---
name: obsidian-publish
description: Enables Claude to publish and manage content on Obsidian Publish sites via Playwright MCP
category: productivity
---
# Obsidian Publish Skill
## Overview
Claude can manage your Obsidian Publish site to publish notes, manage site settings, and create a public knowledge base. Publish transforms your markdown notes into a beautiful website.
## Quick Install
```bash
curl -sSL https://canifi.com/skills/obsidian-publish/install.sh | bash
```
Or manually:
```bash
cp -r skills/obsidian-publish ~/.canifi/skills/
```
## Setup
Configure via [canifi-env](https://canifi.com/setup/scripts):
```bash
# First, ensure canifi-env is installed:
# curl -sSL https://canifi.com/install.sh | bash
canifi-env set OBSIDIAN_PUBLISH_EMAIL "[email protected]"
```
## Privacy & Authentication
**Your credentials, your choice.** Canifi LifeOS respects your privacy.
### Option 1: Manual Browser Login (Recommended)
If you prefer not to share credentials with Claude Code:
1. Complete the [Browser Automation Setup](/setup/automation) using CDP mode
2. Login to the service manually in the Playwright-controlled Chrome window
3. Claude will use your authenticated session without ever seeing your password
### Option 2: Environment Variables
If you're comfortable sharing credentials, you can store them locally:
```bash
canifi-env set SERVICE_EMAIL "your-email"
canifi-env set SERVICE_PASSWORD "your-password"
```
**Note**: Credentials stored in canifi-env are only accessible locally on your machine and are never transmitted.
## Capabilities
- Publish notes to the web
- Unpublish content
- Manage site settings
- Update site navigation
- Configure custom domains
- Set up site appearance
- Manage page links
- Update published content
- View site analytics
- Configure search
- Set page aliases
- Manage access control
## Usage Examples
### Example 1: Publish Note
```
User: "Publish my 'Getting Started' note to Obsidian Publish"
Claude: Navigates to publish settings, selects note, publishes.
Confirms: "Published: yoursite.publish.obsidian.md/getting-started"
```
### Example 2: Update Site
```
User: "Sync all changed notes to my publish site"
Claude: Checks for changes, publishes updated notes.
Reports: "Published 5 updated notes, 2 new notes"
```
### Example 3: Manage Navigation
```
User: "Add 'Resources' to the site navigation"
Claude: Opens site settings, adds Resources to nav.
Confirms: "Added Resources to site navigation"
```
### Example 4: Unpublish Content
```
User: "Remove the draft article from the published site"
Claude: Finds note, unpublishes it.
Confirms: "Unpublished 'Draft Article'"
```
## Authentication Flow
1. Claude navigates to publish.obsidian.md via Playwright MCP
2. Enters OBSIDIAN_PUBLISH_EMAIL for authentication
3. Handles 2FA if required (notifies user via iMessage)
4. Maintains session for publish operations
## Selectors Reference
```javascript
// Site selector
'.site-selector'
// File tree
'.file-tree'
// Publish button
'.publish-button'
// Unpublish button
'.unpublish-button'
// Settings
'.site-settings'
// Navigation editor
'.nav-editor'
// Appearance settings
'.appearance-settings'
// Search config
'.search-settings'
// Custom domain
'.domain-settings'
// File checkbox
'.file-checkbox'
```
## Error Handling
- **Login Failed**: Retry 3 times, notify user via iMessage
- **Session Expired**: Re-authenticate automatically
- **Publish Failed**: Check file validity, retry
- **Site Not Found**: List available sites, ask user
- **Sync Failed**: Check for conflicts, retry
- **Domain Error**: Verify DNS settings
## Self-Improvement Instructions
When you learn a better way to accomplish a task with Obsidian Publish:
1. Document the improvement in your response
2. Suggest updating this skill file with the new approach
3. Include specific publishing workflows
4. Note site configuration best practices
## Notes
- Publish subscription required
- Selective publishing of notes
- Links between published notes work
- Custom CSS supported
- Password protection available
- Custom domain support
- Search functionality built-in
- Mobile-responsive design
- Google indexing supported