Obsidian File Manager Skill
Automated file management for Obsidian vault integration via the Local REST API.
Triggers
This skill should be used when:
- Creating session artifacts or documentation in the vault
- Moving planning documents from project directories to vault
- Updating document lifecycle states (active → processed → archived)
- Searching for documents by tags, project, or content
- Automating archival of old documents based on retention policies
- Managing documentation during task-startup/task-wrapup workflows
Quick Start
Prerequisites
- Obsidian with Local REST API plugin installed and enabled
- Ruby 2.7+ installed
- API key configured in
config/.env
Setup
# Configure API key (get from Obsidian → Settings → Local REST API)
echo "OBSIDIAN_API_KEY=your-key" > ~/.claude/skills/obsidian-file-manager/config/.env
chmod 600 ~/.claude/skills/obsidian-file-manager/config/.env
Operations
create - Create new document
~/.claude/skills/obsidian-file-manager/scripts/create_in_vault.rb \
--type session \
--project myproject \
--subject "feature implementation" \
--content "# Session Notes\n\n..." \
--lifecycle active
move - Move file to vault
~/.claude/skills/obsidian-file-manager/scripts/move_to_vault.rb \
--source /path/to/project/docs/plan.md \
--type plan \
--project myproject
update-lifecycle - Change document state
~/.claude/skills/obsidian-file-manager/scripts/update_lifecycle.rb \
--path sessions/myproject/session_myproject_20251124.md \
--lifecycle processed
search - Find documents
~/.claude/skills/obsidian-file-manager/scripts/search_vault.rb \
--query "project:myproject lifecycle:active type:session"
archive - Auto-archive old documents
~/.claude/skills/obsidian-file-manager/scripts/auto_archive.rb --dry-run
Project Partitioning
Files are organized by type first, then by project:
{type}/{project}/filename.md
This enables multi-project support within a single vault. For example:
planning/softtrak/plan_softtrak_auth_system.mdplanning/myotherproject/plan_myotherproject_api_design.md
Document Types
| Type | Directory Pattern | Purpose |
|---|---|---|
| session | sessions/{project}/ | Development session artifacts |
| plan | planning/{project}/ | Implementation plans |
| prd | projects/{project}/ | Product requirements |
| adr, decision | decisions/{project}/ | Architecture decisions |
| investigation | investigations/{project}/ | Research and analysis |
| resource | resources/{project}/ | Reference materials |
Lifecycle States
| State | Description | Auto-Archive |
|---|---|---|
| master | Reference docs | Never |
| active | Currently in use | Never |
| processed | Work complete | After 30 days |
| trash | Abandoned | After 7 days |
| archived | Long-term storage | N/A |
Error Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Configuration error |
| 3 | API error |
| 4 | Validation error |
| 5 | File operation error |
Resources
For detailed documentation, see references/:
references/operations.md- Full parameter documentationreferences/configuration.md- Config file referencereferences/integration.md- Workflow integration patternsreferences/troubleshooting.md- Common issues and solutions
Scripts
All scripts are in scripts/:
create_in_vault.rb- Create new documentsmove_to_vault.rb- Move files to vaultupdate_lifecycle.rb- Change lifecycle statesearch_vault.rb- Search vaultauto_archive.rb- Automatic archival
Core libraries in scripts/lib/:
obsidian_client.rb- REST API wrapperfile_namer.rb- Naming conventionstag_manager.rb- Tag/frontmatter utilities