Todoist-Plug

by Alberto
5
4
3
2
1
Score: 50/100

Description

Reviews

No reviews yet.

Stats

2
stars
35
downloads
0
forks
12
days
4
days
4
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
64
commits

README file from

Github

Todoist-Plug

A robust integration between Todoist and Obsidian for managing your tasks natively within your knowledge base.

Screenshots

Quick Add Task Modal

Quick Add Task Modal

Minimal Settings

Settings Example

Features

  • Quick Add Task Modal: A beautiful, fully-featured modal for creating tasks without leaving Obsidian.
    • Context-Aware: Automatically populates the task title with your currently selected text, or falls back to your active file name.
    • Obsidian Linking: Can automatically append a deep link to your current Obsidian note directly into the Todoist task description.
    • Premium Property Selectors: Features rich, searchable popover menus for selecting Projects, Labels, Dates, and Priorities.
    • Color Synchronization: Pulls live project and label data straight from the Todoist API, mapping them accurately with their native Todoist colors.
  • Configurable Defaults: A sleek, card-based Settings tab that allows you to configure your desired defaults for new tasks (Default Project, Default Priority, Default Date, and Default Labels).
  • Secure Authentication: Uses Obsidian's native OS keychain (app.secretStorage) to securely store your Todoist API token locally, preventing it from syncing in plaintext.

Authentication

Use Connect Todoist in the plugin settings to authorize through Todoist OAuth. The plugin uses PKCE and stores its access and refresh tokens in Obsidian's native SecretStorage. A manually supplied personal token remains available as an optional fallback.

OAuth requires the static callback and client metadata in this repository to be served at https://albibenni.github.io/Todoist-Plug/. Enable GitHub Pages from the repository root before distributing a release. The callback page only relays the short-lived authorization code to Obsidian; it does not store tokens.

Available Commands

Here is a detailed list of all actions you can perform using the Obsidian command palette (Cmd/Ctrl + P):

Commands Example

  • Todoist-Plug: Add quick task: Opens the Quick Add Task modal. This interface lets you visually configure the task's properties (projects, labels, priority, date). It auto-populates the task title with your currently selected text or active file name, and appends a deep link back to your current note in the task description.
  • Todoist-Plug: Create task from current line: Instantly creates a task in the background using your currently selected text. If no text is selected, it uses the entire line where your cursor is positioned. It skips the modal and adds the task directly to your default project.
  • Todoist-Plug: Check if task already exists: Takes your currently selected text (or current line) and searches your Todoist account to see if a matching task already exists. A notification will tell you if a match was found.
  • Todoist-Plug: Open Todoist sidebar: Opens a dedicated Todoist sidebar view in Obsidian's right-hand pane, letting you view and interact with your tasks.
  • Todoist-Plug: Verify Todoist connection: Pings the Todoist API using your saved token to ensure that your authentication credentials are correct and active.

Task Rendering

You can also render your Todoist tasks directly inside your notes using a markdown code block. Provide a Todoist filter query inside a todoist block, and the plugin will fetch and render a list of matching tasks.

today | overdue

Network Usage & Disclosures

To comply with Obsidian's plugin guidelines, here is a full disclosure of this plugin's network usage and bundled components:

  • Todoist API: The plugin makes background network requests exclusively to api.todoist.com to fetch and sync your tasks, projects, labels, and priorities.
  • External Links: The settings tab contains links that open in your default browser to github.com (for documentation and feedback) and www.paypal.com (for donations). No background network requests are made to these domains.
  • WASM & Base64: The plugin bundle may include WebAssembly (WASM) modules and btoa/atob encoding/decoding functions. These are standard inclusions from our bundled dependencies (such as the official Todoist SDK) and are not used to obscure code.
  • Node.js Modules (fs): The plugin bundle may contain references to the Node.js fs module. This is imported automatically by underlying dependencies and is never used by this plugin to directly read or write files on your local system outside of the official Obsidian vault API.

How to use

  1. Clone this repository into your vault's plugin folder (.obsidian/plugins/Todoist-Plug).
  2. Ensure you have NodeJS installed (v18+).
  3. Run pnpm i to install dependencies.
  4. Run pnpm run dev to compile the plugin.
  5. Enable the plugin in Obsidian settings.
  6. Open the plugin settings and paste your Todoist API token to get started.

Development

This project uses pnpm for package management and biome for lightning-fast linting and formatting.

  • pnpm run dev - Compile in watch mode
  • pnpm run build - Build for production
  • pnpm run lint - Run Biome checks
  • pnpm run indent:write - Format codebase with Biome

License

MIT License. See the LICENSE file for more information.