todoist-mind

WarnAudited by ClawScan on May 10, 2026.

Overview

This Todoist skill appears to use a live hard-coded API token and can make real Todoist account changes despite documentation saying the script is only a mock.

Do not use this skill as-is. Treat the included Todoist token as compromised, verify the script uses your own credential source, disable or tightly scope automatic sync, and add explicit confirmation before completing or deleting tasks.

Findings (3)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Commands may operate on an unintended Todoist account, and the bundled token should be treated as compromised.

Why it was flagged

The skill bundles a real-looking Todoist API token in a config file. The Python script loads this config and uses the value as a Bearer token, so the skill can access or mutate the Todoist account tied to that token and the credential is exposed to anyone receiving the skill.

Skill content
"todoist_api_token": "9cda6b...fe861", "sync_on_command": true
Recommendation

Remove the token from the skill package, rotate it in Todoist, and load credentials only from a user-controlled secret source such as an environment variable or approved credential store.

What this means

A user may run the skill expecting a harmless simulation, but it can add, complete, delete, list, or sync real Todoist data.

Why it was flagged

This documentation conflicts with scripts/todoist_api.py, which sets API_URL to https://api.todoist.com/api/v2 and calls requests.request. Users could believe the skill is non-destructive mock code while it can make live account changes.

Skill content
"mock stub" ... "simulates API calls ... instead of hitting the live Todoist API"
Recommendation

Correct the documentation to describe live API behavior, require explicit user confirmation for destructive actions, and clearly label any test/mock mode separately from production execution.

What this means

Even a narrow task command may trigger broad Todoist account data access, increasing exposure of private task/project information to the local agent process and logs.

Why it was flagged

The script defaults to syncing all Todoist resources before every command. This broad account access is not described in the main workflows and is larger than needed for simple add/complete/delete/project-list actions.

Skill content
sync_flag = config.get("sync_on_command", True) ... if sync_flag: sync_data(token) ... "resource_types": ["all"]
Recommendation

Default sync_on_command to false, document the sync behavior, limit resource_types to the minimum needed, and ask the user before broad account reads.