Manage attachments
manage_attachmentsList, read, add, or remove file attachments on any OmniFocus task or project. Attach generated content as base64 or an existing file, and retrieve small files inline or save larger ones locally.
Instructions
List, read, add, or remove file attachments on a task or project. 'read' returns small files inline as base64 and writes larger ones to an absolute savePath; 'add' takes either base64 content or an absolute filePath. 10MB limit either way.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | read/remove only: zero-based attachment index from 'list'. Indices shift after a removal, so re-list before removing a second attachment. | |
| base64 | No | add only: file contents as base64. Use this for content you generated. Max 10485760 bytes decoded. Mutually exclusive with filePath. | |
| taskId | No | ID of the task that owns the attachments. | |
| filePath | No | add only: ABSOLUTE path to a file on disk to attach. Mutually exclusive with base64. Max 10485760 bytes. | |
| filename | No | add only: the filename to store the attachment under (e.g. 'receipt.pdf'). Include the extension — OmniFocus uses it to pick an icon and a handler app. | |
| savePath | No | read only: ABSOLUTE path to write the attachment to. Required for attachments of 262144 bytes or more. An existing file is never overwritten. | |
| taskName | No | Name of the task (alternative to taskId). | |
| operation | Yes | 'list' shows every attachment with its index and size. 'read' returns one attachment (inline base64 when small, otherwise written to savePath). 'add' attaches a new file. 'remove' deletes an attachment by index. | |
| projectId | No | ID of the project that owns the attachments. | |
| projectName | No | Name of the project (alternative to projectId). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| meta | No | ||
| tool | Yes | ||
| success | Yes |