journey-cli 0.9.11

A CLI-based journal application with automatic timestamping, vault management, and Obsidian integration
Documentation
# Obsidian Integration

Journey can integrate with existing Obsidian vaults, automatically detecting and configuring from your Obsidian plugins.

## Basic Obsidian Vault Initialization

```bash
# Initialize from an existing Obsidian vault
journeyctl init --path ~/Documents/MyObsidianVault --obsidian

# With custom name
journeyctl init --path ~/Documents/MyObsidianVault --name my-journal --obsidian
```

## Supported Obsidian Plugins

Journey automatically detects and configures from these Obsidian plugins:

### Daily Notes (Core Plugin)
- Extracts date format, folder structure, and template settings
- Maps to Journey's `date_format`, `file_path_format`, and `template_file`

### Periodic Notes Plugin
- Extracts weekly, monthly, quarterly, and yearly format settings
- Stores periodic note formats in Journey's `phrases` configuration

### Journals Plugin
- Creates separate Journey vaults for each configured journal
- Each journal becomes a separate vault with its own folder structure and date format
- Supports multiple journals in a single Obsidian vault
- Uses `{{date:y}}` and `{{date:MM}}` variables for folder structure compatibility

## Multiple Journals Support

When using the Journals plugin, Journey creates one vault per journal:

```bash
# If your Obsidian vault has 3 journals: "Personal", "Work", "Daily"
journeyctl init --path ~/Documents/MyObsidianVault --obsidian

# This creates 3 Journey vaults:
# - MyObsidianVault-Personal
# - MyObsidianVault-Work  
# - MyObsidianVault-Daily
```

You can then use each vault independently:

```bash
# Add to Personal journal
journey --vault MyObsidianVault-Personal "Personal note"

# Add to Work journal
journey --vault MyObsidianVault-Work "Work note"

# Add to Daily journal
journey --vault MyObsidianVault-Daily "Daily note"
```

## Error Handling

Journey provides clear error messages for invalid Obsidian vaults:

```bash
# Path doesn't exist
journeyctl init --path /nonexistent/path --obsidian
# Error: Obsidian vault path does not exist: /nonexistent/path

# Path exists but isn't an Obsidian vault
journeyctl init --path /regular/folder --obsidian
# Error: Path is not a valid Obsidian vault (missing .obsidian directory): /regular/folder
```

## Configuration Extraction

Journey automatically extracts relevant settings from your Obsidian plugins:

**From Daily Notes:**
- Date format (e.g., `YYYY-MM-DD`)
- Folder structure (e.g., `/Daily Notes`)
- Template file (e.g., `Templates/Daily Note Template`)

**From Periodic Notes:**
- Weekly format (e.g., `YYYY-[W]ww`)
- Monthly format (e.g., `YYYY-MM`)
- Quarterly format (e.g., `YYYY-[Q]Q`)
- Yearly format (e.g., `YYYY`)

**From Journals Plugin:**
- Journal-specific folder structures
- Journal-specific date formats
- Multiple journal configurations

## Example Generated Configuration

After running `journeyctl init --path ~/MyObsidianVault --obsidian`, your `journey.yaml` might look like:

```yaml
vaults:
  MyObsidianVault-Personal:
    name: MyObsidianVault-Personal
    path: /home/user/MyObsidianVault
    locale: en_US.UTF-8
    date_format: YYYY-MM-DD
    file_path_format: Personal/{{date:y}}/{{date:MM}}/{{date:MM}}-{day:02}.md
    template_file: Templates/Personal Template
    
  MyObsidianVault-Work:
    name: MyObsidianVault-Work
    path: /home/user/MyObsidianVault
    locale: en_US.UTF-8
    date_format: YYYY-MM-DD
    file_path_format: Work/{{date:y}}/{{date:MM}}/{{date:MM}}-{day:02}.md
    template_file: Templates/Work Template
    
  MyObsidianVault-Daily:
    name: MyObsidianVault-Daily
    path: /home/user/MyObsidianVault
    locale: en_US.UTF-8
    date_format: YYYY-MM-DD
    file_path_format: 10-Journal/{{date:y}}/{{date:MM}}/{{date:MM}}-{day:02}.md
    template_file: Templates/Daily Note Template
    phrases:
      weekly_format: YYYY-[W]ww
      monthly_format: YYYY-MM
      quarterly_format: YYYY-[Q]Q
      yearly_format: YYYY
```

## Best Practices

1. **Backup First**: Always backup your Obsidian vault before initializing with Journey
2. **Test with Copy**: Consider testing with a copy of your vault first
3. **Review Configuration**: Check the generated `journey.yaml` to ensure settings are correct
4. **Template Compatibility**: Ensure your Obsidian templates use compatible variable syntax
5. **Path Consistency**: Use consistent path formats across your Obsidian and Journey configurations