Agent skill

Todoist Setup

by davekilleen in davekilleen/Dex

Connect Todoist so Dex reads and updates your Todoist tasks two ways.

MITAuto-check: notes

Install Todoist Setup

skills CLI
$ npx skills add davekilleen/Dex --skill todoist-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install davekilleen/Dex todoist-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/davekilleen/Dex.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/todoist-setup .claude/skills/todoist-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
todoist-setup
GitHub stars
493
Token cost
~2.2k tokens
SKILL.md length
723 words
Files
1
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

Connect Todoist so Dex reads and updates your Todoist tasks two ways.

  • Works in 8 steps: Check if Already Connected → Explain What We're Setting Up → Enter the API Key Locally → …
  • The user says I use Todoist
  • SKILL.md covers What This Enables, Privacy, When to Run and Setup Flow, plus 2 more sections
  • Calls python3; needs TODOIST_API_KEY

What it does

Todoist Setup is an agent skill from davekilleen/Dex. Connect Todoist so Dex reads and updates your Todoist tasks two ways. Use when the user says 'I use Todoist', 'sync Todoist', or pastes a todoist.com link. Not for Things 3 (things-setup) or Trello (trello-setup); not for Jira tickets (atlassian-setup).

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Todoist and Jira. The repository describes itself as: Your AI Chief of Staff — a personal operating system starter kit that adapts to your role. No coding required. The licence is MIT.

When your agent uses it

  • The user says I use Todoist
  • Pastes a todoist.com link

Example prompts

  • “I use Todoist”
  • “sync Todoist”
  • “/todoist-setup”

Requirements

  • Python 3
  • A credential in TODOIST_API_KEY

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Check if Already Connected
  2. Explain What We're Setting Up
  3. Enter the API Key Locally
  4. Store the Local Credential
  5. Test the Connection
  6. Choose Default Project
  7. Save Configuration
  8. Capability Cascade

What it can do on your machine

Read from SKILL.md and the folder at commit 227f78e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • TODOIST_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Todoist Setup loads about 2.2k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 723 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:41
    y stays local in the ignored vault-root `.env` file. Tracked YAML stores only its variable name.
  • NoteMentions a .env fileSKILL.md:94
    nversation. Open the ignored vault-root `.env` in your
  • NoteMentions a .env fileSKILL.md:108
    Confirm locally that `.env` defines `TODOIST_API_KEY` without printing or returning its value.
  • NoteMentions a .env fileSKILL.md:110
    ore continuing if it reports an invalid `.env` authority.
  • NoteMentions a .env fileSKILL.md:120
    tdin read-only health path. It resolves `.env`
  • NoteMentions a .env fileSKILL.md:229
    odoist-setup` to restore the vault-root `.env` value and tracked reference.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from davekilleen/Dex at commit 227f78e, republished under its MIT licence (© davekilleen). 723 words, ~2,156 tokens.

Download SKILL.mdSave it as .claude/skills/todoist-setup/SKILL.md (or your agent's skills folder).
name
todoist-setup
description
Connect Todoist so Dex reads and updates your Todoist tasks two ways. Use when the user says 'I use Todoist', 'sync Todoist', or pastes a todoist.com link. Not for Things 3 (`things-setup`) or Trello (`trello-setup`); not for Jira tickets (`atlassian-setup`).
integration.id
todoist
integration.name
Todoist
integration.auth
api_key
<!-- Generated from `.claude/skills/todoist-setup/SKILL.md` by `scripts/generate-agents-skills.py`. Do not edit. -->

Todoist Setup

Connect your Todoist account so Dex can work with your Todoist tasks whenever you ask — check what's due, create a task there instead of in Dex, or mark something done.

What this enables (on request): Once connected, say "sync with Todoist" — Dex pushes new tasks to the right Todoist project, marks completions, and pulls back tasks you completed or created in Todoist directly. Sync runs on demand; Dex does not poll Todoist in the background without you asking.

What This Enables

Once connected, you can ask Dex to:

  • See what's due: "What's due in Todoist today?" — including alongside your daily plan
  • Create there instead: "Add that to Todoist, not Dex" during triage or any conversation
  • Complete from chat: "Mark the invoice task done in Todoist"
  • Cross-check: "Anything in Todoist that isn't tracked in Dex?"

Privacy

  • Dex reads and writes your Todoist tasks only when you ask it to
  • Your API key stays local in the ignored vault-root .env file. Tracked YAML stores only its variable name.
  • Dex never shares your Todoist data with third parties

When to Run

  • User types /todoist-setup
  • User asks about connecting Todoist or task sync
  • User wants Todoist tasks in daily plans
  • During /integrate-mcp if Todoist is mentioned

Setup Flow

Step 1: Check if Already Connected
  1. Check System/integrations/config.yaml for a todoist: section with enabled: true through core.utils.strict_yaml.load_yaml_path; refuse duplicate keys, aliases, anchors, or merge mappings before reading or writing any setup field.
  2. If enabled, test authentication with the read-only health check
  3. If healthy, skip to Reconfiguration section below
  4. If not configured or unhealthy, continue to Step 2
Step 2: Explain What We're Setting Up

Say:

**Let's connect Todoist to Dex.**

Once connected, you can ask me to check, create, or complete Todoist tasks
right from our conversations.

**What you'll need:**
- Your Todoist API token (I'll show you where to find it)
- About 2 minutes

**Ready to go?**

Wait for confirmation.

Step 3: Enter the API Key Locally

Guide the user:

To get your Todoist API token:

1. Open Todoist (web or app)
2. Go to **Settings** → **Integrations** → **Developer**
3. Copy the **API token** shown there

Do not paste the token into this conversation. Open the ignored vault-root `.env` in your
local editor and replace the placeholder in this line directly:

`TODOIST_API_KEY=<paste token locally here>`

Save the file with mode `0600`, then reply only `saved`. Dex must never echo, read aloud,
log, or include the value in a command, argv, or process environment.

Wait only for the non-secret saved confirmation. Never ask the user to provide or validate the token in chat.

Step 4: Store the Local Credential

Confirm locally that .env defines TODOIST_API_KEY without printing or returning its value. Use python3 -m core.utils.credential_workflow scan for the redacted authority finding; repair permissions/ownership before continuing if it reports an invalid .env authority. Preserve unrelated lines and never place the value in .mcp.json, tracked YAML, a command, argv, logs, transcript, or process environment. Existing .mcp.json is scan/report-only and must remain byte-identical.

Before health, update only the non-secret tracked Todoist fields to enabled: true and api_key_env_var: TODOIST_API_KEY; do not add an api_key field.

Step 5: Test the Connection

Use only Dex's sanitized Python-to-adapter-stdin read-only health path. It resolves .env internally and performs Todoist GET /projects; it does not put the token in the command or environment:

bash
python3 -c 'from core.integrations.task_sync import check_service_health; print(check_service_health("todoist"))'

If the health result is {"healthy": True}:

Connected! Todoist authentication succeeded through the read-only health check.

If it fails:

That API key didn't work. A few things to check:

1. **Copy the full key** — it should be about 40 characters
2. **Check for extra spaces** before or after the key
3. **Regenerate the key** in Todoist Settings → Integrations → Developer

Want to try again?

Retry up to 2 times, then offer to skip and come back later.

Show full SKILL.md (276 more words)Show less
Step 6: Choose Default Project

Ask the user which Todoist project should receive Dex tasks:

**Which Todoist project should Dex tasks go into?**

The health check does not enumerate projects. Open Todoist locally and enter the exact project
name you want Dex to use without pasting any credential.

You can pick one default project, or map each Dex pillar to a different project.

**Option A:** All Dex tasks go to one project (simplest)
**Option B:** Map each pillar to a project:
  (Read pillar names from `System/pillars.yaml` and list them here)
  - [pillar 1 name] → [project]
  - [pillar 2 name] → [project]
  - [pillar 3 name] → [project]

Which works for you?

Save their choices for the config file.

Step 7: Save Configuration

Write to System/integrations/config.yaml — update the todoist section. Build pillar_map dynamically from the user's actual pillars in System/pillars.yaml (one entry per pillar id — never assume fixed pillar names); it's used when the user asks Dex to file a task in the matching Todoist project.

yaml
todoist:
  enabled: true
  configured_at: YYYY-MM-DD
  auth_type: api_key
  api_key_env_var: TODOIST_API_KEY
  project: <default project name>
  pillar_map:
    [pillar_id]: <Todoist project name>   # one entry per pillar, from pillars.yaml

If the file already exists, only update the todoist: section. Preserve other integration configs.

Step 8: Capability Cascade

Read the integration manifest from this skill's frontmatter. Present:

**Todoist is connected!** Here's what you can do now:

- **Ask about Todoist anytime** — "What's due in Todoist today?", "Add that to
  Todoist", "Mark the invoice task done in Todoist".
- **Bring it into your planning** — during `/daily-plan` or `/triage`, ask Dex to
  include or route to Todoist and it will.
- **Sync on demand** — say "sync Dex with Todoist" and new tasks push, completions flow
  both directions, and tasks you added in Todoist come in for review

**Sync is on demand** — say "sync with Todoist" anytime. Dex doesn't poll in the background.

Troubleshooting

API Key Invalid or Expired

Todoist API keys don't expire unless you regenerate them. If you see auth errors:

  1. Go to Todoist Settings → Integrations → Developer
  2. Copy the current API token (or regenerate if needed)
  3. Update the key by running /todoist-setup again
"Dex doesn't see my Todoist tasks"

Dex only reads Todoist when you ask it to — there is no background sync. Ask directly ("what's in Todoist?") and if that errors, re-run /todoist-setup to check the connection.

"Todoist credential not found"

Re-run /todoist-setup to restore the vault-root .env value and tracked reference.


Reconfiguration

If the user runs /todoist-setup when already configured:

  1. Check current config from System/integrations/config.yaml
  2. Test the existing API key with the read-only authentication health check
  3. Show the current pillar-to-project mapping
  4. Offer options:
    • Update project mapping
    • Update API key
    • Disconnect Todoist
Disconnect Flow

If user wants to disconnect:

  1. Update System/integrations/config.yaml:
    yaml
    todoist:
      enabled: false
  2. Confirm: "Todoist is disconnected. Tasks will no longer sync between systems. Your existing tasks in both Dex and Todoist are unchanged. Run /todoist-setup anytime to reconnect."

© davekilleen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/todoist-setup of davekilleen/Dex.

Open the folder on GitHubat commit 227f78e

Compare with similar skills

Todoist Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Todoist Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Todoist Setup this skilldavekilleen/Dex493—~2.2kAutomated safety check: NotesMIT
Management Talkthananon/9arm-skills3.2k—~3.2kAutomated safety check: PassNone
YugabyteDB Issue Creatoryugabyte/yugabyte-db11k—~2kAutomated safety check: PassCustom licence
Dynamo Jira TicketDynamoDS/Dynamo2k—~1.1kAutomated safety check: PassApache-2.0
Code Reviewcroffasia/itsaplan913—~2kAutomated safety check: PassAGPL-3.0
Connect Apps with ComposioComposioHQ/awesome-claude-skills77k3 repos~557Automated safety check: PassNone

Similar skills

  • Management Talk

    thananon/9arm-skills

    Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…

    3.2k GitHub stars~3.2k tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed
  • YugabyteDB Issue Creator

    yugabyte/yugabyte-db

    Creates a GitHub issue or JIRA ticket for a YugabyteDB change or bug, after scrubbing customer data, secrets and unreleased details from anything public.

    11k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Dynamo Jira Ticket

    DynamoDS/Dynamo

    Create structured Jira tickets for Dynamo from bug reports, failing tests, or feature requests.

    2k GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Code Review

    croffasia/itsaplan

    A skill your agent uses when reviewing code — a diff, a merge request, a file, a directory, or a feature.

    913 GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Connect Apps with Composio

    ComposioHQ/awesome-claude-skills

    Connects an agent to 1000+ external apps through the Composio Tool Router plugin, so it can actually send emails, create issues and post messages instead of only drafting them.

    77k GitHub starsUsed in 3 repos~557 tokens
    Productivity & AutomationAuto-check passed
  • PR Body

    SAP/spartacus

    Official

    A skill your agent uses when the user asks to generate, write, or draft a pull request (PR) body or description for the current branch.

    784 GitHub stars~499 tokensUpdated today
    DevelopmentAuto-check passed

More from davekilleen/Dex

All 61 skills in this repo
  • Dspy Ruby

    davekilleen/Dex

    This skill should be used when working with DSPy.rb, a Ruby framework for building type-safe, composable LLM applications.

    493 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed
  • Diff Adopt Profile

    davekilleen/Dex

    Adopt a full published Heydex profile by handle ('set me up like @davekilleen').

    493 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Diff Generate

    davekilleen/Dex

    Package one workflow — how you use Dex for a specific job — into a shareable DexDiff methodology doc.

    493 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Creating Agent Skills

    davekilleen/Dex

    Expert guidance for creating, writing, and refining Claude Code Skills.

    493 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Feedback

    davekilleen/Dex

    Report a Dex bug to the Dex team with zero homework — Dex investigates locally, builds a privacy-safe report, shows it to you (or auto-sends if you've chosen that), and tracks the ticket until it's…

    493 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Dhh Rails Style

    davekilleen/Dex

    This skill should be used when writing Ruby and Rails code in DHH's distinctive 37signals style.

    493 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed

Works with

Questions about Todoist Setup

What does Todoist Setup do?

Connect Todoist so Dex reads and updates your Todoist tasks two ways. Todoist Setup is an agent skill from davekilleen/Dex. Connect Todoist so Dex reads and updates your Todoist tasks two ways.

When should I use Todoist Setup?

Todoist Setup fits situations like: the user says I use Todoist; pastes a todoist.com link.

How do I install Todoist Setup in Claude Code?

Run `npx skills add davekilleen/Dex --skill todoist-setup -a claude-code`. Or copy the skill folder (.agents/skills/todoist-setup in davekilleen/Dex) into .claude/skills/todoist-setup in your project. Claude Code loads it when a task matches its description.

How do I install Todoist Setup in Codex?

Run `npx skills add davekilleen/Dex --skill todoist-setup -a codex`. Or copy the skill folder (.agents/skills/todoist-setup in davekilleen/Dex) into .agents/skills/todoist-setup in your project. Codex loads it when a task matches its description.

Can I use Todoist Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davekilleen/Dex --skill todoist-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/todoist-setup, .gemini/skills/todoist-setup, .github/skills/todoist-setup and .opencode/skills/todoist-setup in your project.

What does Todoist Setup need to run?

Going by SKILL.md and its folder, Todoist Setup needs the command-line tools its instructions call (python3) and credentials named TODOIST_API_KEY. Our summary lists: Python 3; A credential in TODOIST_API_KEY.

Does Todoist Setup access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Todoist Setup safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Todoist Setup use?

Todoist Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Todoist Setup use?

About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Todoist Setup?

Skills that share tags, products or a category with Todoist Setup: Management Talk (thananon/9arm-skills, 3.2k stars), YugabyteDB Issue Creator (yugabyte/yugabyte-db, 11k stars), Dynamo Jira Ticket (DynamoDS/Dynamo, 2k stars) and Code Review (croffasia/itsaplan, 913 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Todoist Setup?

davekilleen (a GitHub user) maintains it in davekilleen/Dex, which has 493 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on October 8, 2026.

Source: davekilleen/Dex on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.