# Complete Automation Actions Index for Obsidian

This reference catalogs every programmatic action available in Obsidian, organized by interface.

---

## 1. File System (Direct Disk) Actions

These work on any vault whose files are accessible on the local filesystem.

### File Operations
| Action | Tool | Notes |
|---|---|---|
| Read any note | `read_file` | Provides line numbers and pagination |
| Read binary attachment | `read_file` | For images, PDFs, etc. |
| List all notes | `search_files` with `target: "files"`, `pattern: "*.md"` | Sorted by modification time |
| List a subfolder | `search_files` under subfolder path | |
| Search note contents | `search_files` with `target: "content"` | Regex support, context lines |
| Create a new note | `write_file` | Full markdown content |
| Overwrite a note | `write_file` | Replaces entire file |
| Append to a note | `patch` or terminal `echo >>` | `patch` preferred for anchored appends |
| Insert in middle | `patch` (old_string -> new_string) | Requires stable anchor text |
| Rename/move a note | `terminal` (`mv`) or CLI `move` | CLI updates links automatically |
| Delete a note | `terminal` (`rm`) or CLI `delete` | |
| Create folder | `terminal` (`mkdir -p`) or API `createFolder` | |
| Delete folder | `terminal` (`rm -rf`) | |
| Copy file | `terminal` (`cp`) | |
| Check file exists | `terminal` (`test -f`) | |
| Get file size/date | `terminal` (`stat`) or `ls -la`) | |
| Bulk rename | `terminal` (`rename` or Python `os.rename`) | |
| Find broken links | Custom script scanning `[[...]]` patterns | |
| Find orphaned notes | Script: notes with no incoming links | |
| Generate file statistics | Script: word count, link count, tag count | |
| Diff two versions | CLI `obsidian diff` or `git diff` | |

### Content Manipulation
| Action | Method |
|---|---|
| Add YAML frontmatter | Prepend `---\n...\n---\n` to content |
| Modify frontmatter field | Parse YAML, modify, rewrite |
| Add wikilink | Insert `[[Target]]` |
| Add tag | Insert `#tag` or modify frontmatter `tags:` |
| Add heading | Insert `# Heading` |
| Add task | Insert `- [ ] Task text` |
| Embed another note | Insert `![[Other Note]]` |
| Create block ID | Add `^block-id` to line |
| Link to block | Insert `[[Note#^block-id]]` |
| Create table | Markdown table syntax |
| Create callout | `> [!info] Title\n> Content` |
| Create Mermaid diagram | `\`\`\`mermaid` block |
| Add footnote | `[^1]` + `[^1]: Text` |

---

## 2. CLI Actions (100+ Commands)

Requires Obsidian desktop app running. Full commands in `cli-command-reference.md`.

### Vault Commands
- `obsidian vault list` - List open vaults
- `obsidian vault switch` - Switch active vault
- `obsidian vault path` - Show vault path

### Note Commands
- `obsidian create` - Create note (with template support)
- `obsidian read` - Read active or specified note
- `obsidian edit` - Edit note content
- `obsidian move` - Move note (preserves links)
- `obsidian rename` - Rename note (preserves links)
- `obsidian delete` - Delete note
- `obsidian copy` - Copy note
- `obsidian merge` - Merge two notes

### Daily Note Commands
- `obsidian daily` - Open today's daily note
- `obsidian daily:append` - Append to daily note
- `obsidian daily:prepend` - Prepend to daily note
- `obsidian yesterday` - Open yesterday's note
- `obsidian tomorrow` - Open tomorrow's note

### Search Commands
- `obsidian search` - Search vault
- `obsidian search:files` - File name search
- `obsidian search:content` - Content search
- `obsidian search:tags` - Tag search
- `obsidian search:properties` - Property search
- `obsidian grep` - Regex search

### Tag Commands
- `obsidian tags` - List all tags
- `obsidian tags counts` - Tag frequency counts
- `obsidian tag add` - Add tag to files
- `obsidian tag remove` - Remove tag from files
- `obsidian tag rename` - Rename tag across vault

### Property (Frontmatter) Commands
- `obsidian properties:list` - List all properties
- `obsidian properties:get` - Get property value
- `obsidian properties:set` - Set property value
- `obsidian properties:delete` - Delete property
- `obsidian properties:rename` - Rename property

### Task Commands
- `obsidian tasks` - List tasks
- `obsidian tasks daily` - Tasks from daily note
- `obsidian task add` - Add task
- `obsidian task toggle` - Toggle task completion
- `obsidian task delete` - Delete task

### Graph Commands
- `obsidian graph` - Open graph view
- `obsidian graph analyze` - Graph statistics
- `obsidian backlinks` - Show backlinks
- `obsidian outgoing` - Show outgoing links

### Template Commands
- `obsidian template list` - List templates
- `obsidian template apply` - Apply template to note
- `obsidian template create` - Create template

### Developer Commands
- `obsidian dev:reload` - Reload plugins
- `obsidian dev:inspect` - Open dev tools
- `obsidian dev:screenshot` - Take screenshot
- `obsidian dev:console` - Open console

### Output Formats
- `--json` - JSON output for piping
- `--csv` - CSV output
- `--markdown` - Markdown output
- `--quiet` - Suppress non-error output

---

## 3. URI Scheme Actions

### obsidian:// Actions
| Action | Parameters | Effect |
|---|---|---|
| `open` | `vault`, `file`, `path` | Opens vault or file |
| `new` | `vault`, `name`, `content`, `append`, `overwrite` | Creates/appends note |
| `daily` | `vault` | Opens/creates daily note |
| `unique` | `vault` | Creates unique Zettel note |
| `search` | `vault`, `query` | Opens search panel |
| `choose-vault` | none | Opens vault manager |

### Advanced URI Plugin Actions (if installed)
The Advanced URI plugin adds many more actions:
| Action | Parameters | Effect |
|---|---|---|
| `advanced-uri` | `filepath`, `data`, `mode` | Open file with data insertion |
| `advanced-uri` | `commandid` | Execute command by ID |
| `advanced-uri` | `search` | Search and open result |
| `advanced-uri` | `workspace` | Open workspace |
| `advanced-uri` | `navigation` | Navigate back/forward |
| `advanced-uri` | `eval` | Evaluate JavaScript |

---

## 4. REST API Actions (Local REST API Plugin)

Requires the `obsidian-local-rest-api` plugin.

### Endpoints
| Method | Endpoint | Action |
|---|---|---|
| GET | `/` | API info |
| GET | `/vault/` | List all files |
| GET | `/vault/<file>` | Read note content |
| PUT | `/vault/<file>` | Create/update note |
| DELETE | `/vault/<file>` | Delete note |
| POST | `/active/` | Open file in UI |
| GET | `/search/` | Search vault |
| GET | `/tags/` | List tags |
| GET | `/commands/` | List commands |
| POST | `/commands/<id>` | Execute command |
| POST | `/periodic/daily` | Open daily note |

---

## 5. Plugin-Specific Actions

### Dataview
- Query notes with DQL (Dataview Query Language)
- Inline queries: `= this.file.name`
- JS queries: `dataviewjs` blocks
- Access: `dv.pages()`, `dv.table()`, `dv.list()`, `dv.taskList()`

### Templater
- Execute system commands: `tp.system.prompt()`, `tp.system.clipboard()`
- Date functions: `tp.date.now()`, `tp.date.tomorrow()`
- File functions: `tp.file.create_new()`, `tp.file.move()`
- Web functions: `tp.web.random_picture()`
- Internal functions: `tp.frontmatter.prop`, `tp.config.target_file`

### QuickAdd
- Capture macros: multi-step workflows
- Template choice: create from template with prompts
- Capture choice: append to existing note
- Macro choice: chain multiple actions
- Script choice: execute JavaScript

### Tasks
- Create tasks with inline metadata: `- [ ] Task 📅 2026-07-14 ⏫`
- Query tasks: `tasks` code block
- Recurrence: `🔁 every day`
- Filters: `not done`, `done`, `has due date`, `path includes ...`

### Periodic Notes
- Daily: `YYYY-MM-DD.md`
- Weekly: `gggg-[W]WW.md`
- Monthly: `YYYY-MM.md`
- Quarterly: `YYYY-[Q]Q.md`
- Yearly: `YYYY.md`

### Kanban
- Create board from template
- Add cards with dates/tags
- Move between lanes
- Archive completed cards
- Generate from Dataview query

### Obsidian Git
- Auto-commit on file changes
- Periodic push
- Diff viewing
- Conflict resolution
- History browsing

### Canvas
- Create `.canvas` file (JSON format)
- Add nodes: text, file, group, URL
- Connect nodes with edges
- Export as image
- Embed in markdown

### Style Settings
- Toggle theme features
- Custom color schemes
- Font settings
- Layout adjustments

---

## 6. Headless Sync Actions

Using `obsidian-headless` (npm package, requires Node.js 22+):

| Command | Action |
|---|---|
| `ob login` | Authenticate with Obsidian account |
| `ob logout` | Clear credentials |
| `ob sync pull` | Download vault from Obsidian Sync |
| `ob sync push` | Upload vault to Obsidian Sync |
| `ob sync status` | Show sync status |
| `ob publish deploy` | Deploy to Obsidian Publish |
| `ob publish status` | Show publish status |

---

## 7. Metadata/Cache Actions (Developer API)

### Read Metadata
```typescript
// For any file
const cache = app.metadataCache.getFileCache(file)
const { frontmatter, tags, headings, links, embeds, blocks, sections } = cache

// Get all tags in vault
app.metadataCache.getTags()

// Get all property types
app.metadataCache.getAllPropertyInfos()

// Get first link destination
app.metadataCache.getFirstLinkpathDest(linkpath, sourcePath)
```

### File Events
```typescript
// Listen for changes
app.vault.on('create', (file) => {})
app.vault.on('modify', (file) => {})
app.vault.on('delete', (file) => {})
app.vault.on('rename', (file, oldPath) => {})

// Metadata changes
app.metadataCache.on('changed', (file, data, cache) => {})
app.metadataCache.on('resolve', (file) => {})
app.metadataCache.on('deleted', (file, prevCache) => {})
```

### Workspace Actions
```typescript
// Open file in pane
app.workspace.openLinkText(linktext, sourcePath, { active: true })

// Get active file
app.workspace.getActiveFile()

// Get active leaf (pane)
app.workspace.getMostRecentLeaf()

// Split pane
app.workspace.splitActiveLeaf('vertical')

// Set view state
leaf.setViewState({ type: 'markdown', state: { file: path } })
```

---

## 8. Automation Trigger Points

### Time-based (Cron)
- Daily note generation
- Weekly review compilation
- Git commit/push
- iCloud sync
- Backup creation
- Tag cleanup

### Event-based
- File created (Templater folder templates)
- File modified (Git auto-commit)
- Vault opened (startup scripts)
- Note linked (graph update)
- Task completed (follow-up actions)

### External triggers
- Webhook -> REST API -> create note
- Email -> script -> append to daily note
- Calendar event -> create meeting note
- RSS feed -> create literature note
- Browser extension (Web Clipper) -> capture to vault

---

## 9. Cross-Platform Integration Actions

### Alfred (macOS)
- Search vault from Alfred
- Create note via Alfred workflow
- Append to daily note

### Raycast (macOS)
- Obsidian extension for search/create

### Keyboard Maestro / AutoHotkey
- Global hotkeys for capture
- Template insertion
- Quick note creation

### Siri Shortcuts (iOS/macOS)
- `obsidian://` URL scheme actions
- Voice capture to vault

### Zapier / Make (n8n)
- Webhook -> REST API
- Calendar -> meeting notes
- RSS -> literature notes
- Email -> task creation

### Tailscale
- Access vault files across devices
- Serve HTML tools from vault subfolders
- Sync between Tailnet nodes

---

## 10. Complete Action Matrix

| Category | Direct Filesystem | CLI | URI | REST API | Plugin | API |
|---|---|---|---|---|---|---|
| Read note | Yes | Yes | Yes | Yes | Yes | Yes |
| Create note | Yes | Yes | Yes | Yes | Yes | Yes |
| Edit note | Yes | Yes | No | Yes | Yes | Yes |
| Delete note | Yes | Yes | No | Yes | No | Yes |
| Move/rename | Yes | Yes | No | No | No | Yes |
| Search | Yes | Yes | Yes | Yes | Yes | Yes |
| Tag management | Yes | Yes | No | Yes | Yes | Yes |
| Properties | Yes | Yes | No | Yes | Yes | Yes |
| Tasks | Partial | Yes | No | Partial | Yes | Yes |
| Templates | No | Yes | No | No | Yes | Yes |
| Graph | No | Yes | No | No | Yes | Yes |
| Daily notes | No | Yes | Yes | Yes | Yes | Yes |
| Sync | Script | No | No | No | No | No |
| Export | Script | No | No | No | Yes | Yes |
| Backup | Script | No | No | No | No | No |
| Git ops | Script | No | No | No | Yes | No |
| Canvas | JSON | No | No | No | Yes | Yes |
| Plugin reload | No | Yes | No | No | No | Yes |
| Screenshots | No | Yes | No | No | No | No |

---

*Last updated: July 2026. Obsidian v1.12.4+*
