Obsidian Asana Mirror is a plugin for Obsidian that syncs your Asana tasks with an Obsidian note. The plugin allows you to manually or periodically sync tasks, providing a seamless way to keep your task list up to date.
- Sync tasks from Asana to a specified Obsidian note.
- Configure API key, workspace ID, and assignee ID through the settings screen.
- Exclude specific user sections and project IDs from synchronization.
- Customize the task template to control how tasks are displayed in Obsidian.
- Set up periodic sync (e.g., every hour) to keep your task list up to date automatically.
- Right now this is very much a developer's plugin. There are only basic settings, and they expect you to be pretty familiar with the Asana API; it's more a utility than a plug-and-play solution.
-
Clone or Download the Plugin:
- Clone this repository or download the ZIP file and extract it.
-
Move to Obsidian Plugins Folder:
- Move the
obsidian-asana-mirror
folder to your Obsidian plugins directory, typically located at.obsidian/plugins/
.
- Move the
-
Install Dependencies:
- Navigate to the plugin folder in your terminal and run:
npm install
- Navigate to the plugin folder in your terminal and run:
-
Build the Plugin:
- Build the plugin by running:
npm run build
- Build the plugin by running:
-
Enable the Plugin:
- Open Obsidian, go to
Settings
->Community plugins
->Installed plugins
, and enable "Obsidian Asana Mirror".
- Open Obsidian, go to
-
Open Plugin Settings:
- Go to
Settings
->Community plugins
->Obsidian Asana Mirror
.
- Go to
-
Set Asana API Key:
- Enter your Asana API key. You can generate a new API key from your Asana account settings.
-
Set Workspace ID:
- Enter your Asana workspace ID. This is optional but recommended for filtering tasks.
-
Set Assignee ID:
- Enter the assignee ID. This is optional but can be useful for filtering tasks assigned to a specific user.
-
Exclude User Sections:
- Enter comma-separated user section IDs to exclude certain sections from synchronization.
-
Exclude Project IDs:
- Enter comma-separated project IDs to exclude certain projects from synchronization.
-
Task Template:
- Customize the task template using placeholders:
{{task_name}}
: Task name{{project_id}}
: Project ID{{task_id}}
: Task ID{{project_name}}
: Project name{{due_date}}
: Due date{{completed}}
: Task completion status{{notes}}
: Task notes{{assignee_section_id}}
: Assignee section ID
- [ ] [{{task_name}}](https://app.asana.com/0/{{project_id}}/{{task_id}}/) [[{{project_name}}]]
for a basic linked listing- [ ] [{{task_name}}](https://app.asana.com/0/{{project_id}}/{{task_id}}/) [[{{project_name}}]] 📅 {{due_date}}
to use Obsidian Tasks
- Customize the task template using placeholders:
-
Manual Sync:
- Use the command palette (
Cmd/Ctrl + P
) to run theSync Asana Tasks
command and manually sync tasks.
- Use the command palette (
-
Periodic Sync:
- The plugin sync interval is set in the settings.
-
Fork and Clone the Repository:
- Fork this repository and clone it to your local machine.
-
Install Dependencies:
- Navigate to the plugin folder and run:
npm install
- Navigate to the plugin folder and run:
-
Build the Plugin:
- Build the plugin by running:
npm run build
- Build the plugin by running:
-
Develop and Test:
- Make your changes and test them in Obsidian. Ensure the plugin is reloaded after each change.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
Happy task managing with Obsidian and Asana!