Todoist Pomodoro Heatmap

approved

by mimo

Track Todoist tasks with a Pomodoro timer and a pretty contribution heatmap. - This plugin has not been manually reviewed by Obsidian staff.

139 downloadsUpdated 1mo agoMIT

Todoist Pomodoro Heatmap

An Obsidian Pomodoro timer with Todoist tasks and a contribution heatmap.

Features

  • Work for as long as you want, then take a break based on the time you worked.
  • Browse, create, select, and complete Todoist tasks without leaving Obsidian.
  • Group tasks by project, display subtasks, and link tasks to notes.
  • Track sessions in year and month heatmaps.
  • Add time manually and import completed-task history from Todoist.
  • Optional break sounds and system notifications.

Installation

Until the plugin is available in Obsidian's community plugin browser, install it with BRAT using:

keptan/obsidian-todoist-pomodoro

For a manual installation, place main.js, manifest.json, and styles.css in:

<vault>/.obsidian/plugins/todoist-pomodoro-heatmap/

Enable Todoist Pomodoro Heatmap under Settings → Community plugins.

Setup

Open Settings → Todoist Pomodoro Heatmap, enter your Todoist API token, and test the connection. You can find the token under Todoist Settings → Integrations → Developer.

Select the timer icon in Obsidian's ribbon to open the timer. Choose a task and start working. When you end the session, the plugin starts a proportional break using your configured break ratio.

To add a heatmap to a note, use:

```mikumodoro-heatmap
```

Privacy

Todoist Pomodoro Heatmap has no telemetry. It connects directly to Todoist only after you provide an API token. Your token, settings, sessions, task links, and completion history are stored in the plugin's local data.json. Vault-sync services may copy that file to your other devices.

Development

npm install
npm run dev
npm test
npm run build

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.