Obsidian Amazing Marvin Plugin
This plugin for Obsidian enables synchronization with Amazing Marvin, a comprehensive task management and planning system. It is developed and maintained by your productivity friends at Cloud Atlas to facilitate a seamless integration for users who utilize both platforms.
Amazing Marvin Plugin Overview
The Amazing Marvin Plugin provides a way to bring your tasks and project structures from Amazing Marvin directly into your Obsidian vault. It respects the Amazing Marvin hierarchy of categories and projects, creating a matching folder and note structure within Obsidian.
Key Features
- Sync Categories and Projects: Converts Amazing Marvin categories and projects into Obsidian folders and notes, maintaining the original hierarchy.
- Task Integration: Transforms tasks into markdown checklist items, with nested subtasks properly indented.
- Parent Links: For easy navigation, notes for subcategories and subprojects include backlinks to their parent category or project.
- Wiki Links: Sub-Categories and projects Amazing Marvin are added as wiki links.
- Categories and Projects are folder notes: Categories and projects are created as folder notes, compatible with Obsidian folder notes.
- Task Creation: Users can create Amazing Marvin tasks directly within Obsidian, with support for standard Marvin shorthand notations like
+
for dates or @
for labels.
- Deep Linking: Each task and category is equipped with a deep link, providing quick navigation back to Amazing Marvin.
Usage Instructions
Sync Direction
The Obsidian Amazing Marvin Plugin currently supports unidirectional synchronization. It imports and updates data from Amazing Marvin into your Obsidian vault, but it does not export or sync changes made in Obsidian back to Amazing Marvin.
Sync Behavior
Each sync operation performs a fresh import:
- The plugin first removes the existing category/project notes and folders that were previously synchronized.
- It then creates new notes and folders based on the latest data from Amazing Marvin.
Running a Sync
To initiate a sync:
- Open Obsidian's Command Palette with
Ctrl/Cmd + P
.
- Search for and select the command
Sync Amazing Marvin categories and projects
.
- The plugin will then proceed to update your Obsidian vault with the current structure and content from Amazing Marvin.
Once synced, your Obsidian vault will contain a new AmazingMarvin
folder. Inside, you'll find the structured notes corresponding to your categories and projects from Amazing Marvin.
Creating a Marvin Task
The task creation dialog is designed to mirror the task input experience in Amazing Marvin closely. It includes the following features:
- Autocomplete for Categories and Projects using
#
syntax or a search sub-dialog.
- Recognizes shorthand notations for properties like start date (
~
), due date (@
), and labels (+
).
- Places a link to the Marvin task as a deep link in Obsidian at the cursor location upon task creation.
- The created Marvin task contains an Advanced URI-friendly link back to the Obsidian note that instigated the task.
To create a task:
- Open Obsidian's Command Palette with
Ctrl/Cmd + P
.
- Search for and select the command
Create Marvin Task
.
- Input the task details and select the appropriate category from the dropdown, which shows suggestions as you type.
- Upon task creation, a markdown checklist item with a link to the Marvin task is inserted at your cursor location in Obsidian.
Auto-Mark as Done Feature
One of the highlights in this version is the ability to auto-mark tasks as done in Amazing Marvin when they are checked off in Obsidian. When this feature is enabled in the plugin settings, checking a task off in your Obsidian note will automatically update the task status in Amazing Marvin.
Here's how to enable this feature:
- Go to
Settings > Obsidian Amazing Marvin Plugin
.
- Check the option
Attempt to mark tasks as done in Amazing Marvin when checked off in Obsidian
.
- Save your settings.
Now, when you check off a task with an Amazing Marvin Link in an Obsidian note, a request will be sent to Amazing Marvin to mark the task as done there as well.
Important Considerations
- Data Loss: Be cautious when editing Amazing Marvin-generated notes in Obsidian, as these changes will be overwritten by the next sync.
- Backup Recommended: It's advisable to back up your Obsidian vault before running the sync, especially if you've made local modifications to the synchronized notes.
By following these guidelines, you can ensure your Amazing Marvin data is accurately reflected in Obsidian while being mindful of the plugin's current limitations.
Installing
Using BRAT
- Install the BRAT plugin
- Open
Settings
-> Community Plugins
- Disable safe mode, if enabled
- Browse, and search for "BRAT"
- Install the latest version of Obsidian42 - BRAT
- Open BRAT settings (
Settings
-> BRAT
)
- Scroll to the
Beta Plugin List
section
Add Beta Plugin
- Specify this repository:
cloud-atlas-ai/obsidian-am
- Enable the
Amazing Marvin
plugin (Settings
-> Community Plugins
)
Manually
- If you haven't enabled community plugins in Obsidian, follow these instructions to do so.
- Download
cloudatlas-obsidian-am.zip
from the releases.
- Unzip the release and copy the directory into your vault's plugins folder:
<vault>/.obsidian/plugins/cloudatlas-o-am
.
- Restart Obsidian to recognize the new plugin.
- In Obsidian's settings under "Community Plugins," find and enable the Obsidian Amazing Marvin Plugin.
- Add your key token to the plugin settings. You can find your key token in the Amazing Marvin API page.
Development
- Ensure NodeJS and npm are installed on your system.
- Clone this repository.
- Run
npm install
to install the dependencies.
- Make your desired changes.
- Use
npm run dev
to watch for changes and compile the plugin to dist/main.js
.
For more detailed development instructions, refer to the sample plugin provided by Obsidian.
Testing
While you're testing, you're going to send a lot of requests to the Amazing Marvin API. To avoid hitting the rate limit, you can use the Desktop local API server. See Desktop Local API Server for more information. Once setup, you can specify the local API server in the plugin settings.
Note that the /api/children
endpoint is not available in the local API server, always returning 404. I've followed up with the Amazing Marvin team to see if this can be added.