ClawLink

How to connect Todoist to Hermes Agent

Connect Todoist to Hermes Agent with ClawLink: no API token in your shell profile, no token to regenerate when it breaks. 76 Todoist tools your agent calls from chat.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Todoist
Todoist
TodoistOAUTH2MCP

Create and manage tasks and projects. Once connected, Hermes Agent can read and act on Todoist from chat — pairing, token refresh, and tool wiring handled for you.

76 tools

Most guides for giving Hermes Agent Todoist access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Todoist setup: pair once in the browser and your always-on Hermes agent can act on Todoist for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into Hermes to install the plugin and pair your account.

Prompt for Hermes
Set up ClawLink for Hermes and tell me when it's ready.

1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable

2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin

3. I'll approve it in my browser, then reply "approved".

4. When I say approved, finish setup:
hermes clawlink finish

5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.

Setup

It takes three steps to connect Hermes to Todoist.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Todoist

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask Hermes Agent: "What can you do with Todoist?"

Install by command

The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:

hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin    # prints an approval link — open it and approve
hermes clawlink finish   # after approving in the browser
hermes clawlink test

Then connect Todoist in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking Hermes:

Use todoist_quick_add_task to add these, one call each, keeping my syntax intact: "Renew domain tomorrow 9am #Admin p2", "Draft Q3 update Friday #Marketing", "Call the accountant next Monday p1". Confirm what Todoist parsed for each.

Using a different agent?

The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Todoist is connected in the dashboard, that agent calls the same 76 Todoist tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Todoist MCP for Hermes

Looking for a Todoist MCP server for Hermes Agent? ClawLink connects Todoist to Hermes Agent and exposes 76 Todoist tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Todoist integration works the same way.

The advice you will find for this is to copy your API token out of Todoist's settings and add an export line to your shell profile. It works, and it is also why the most common Todoist integration question is what to do when authentication starts failing: the token was regenerated, or it was copied with a trailing space, or it lives on a machine you are no longer using. ClawLink connects through Todoist's OAuth flow, so no token is copied anywhere and nothing is written to your shell profile. You approve access once in the browser and the 76 tools below work from Hermes chat. The connection appears in Todoist's integrations settings, where you can revoke it.

What the Hermes Agent Todoist integration can do

76 Todoist tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 76.

30 of 76 Todoist tools for Hermes

ToolWhat it does
Add workspace todoist_add_workspaceCreate a new workspace in Todoist
Archive project2 todoist_archive_project2Archive a project in Todoist
Bulk create tasks todoist_bulk_create_tasksCreate many tasks in one request
Close task v1 todoist_close_task_v1Close (complete) a task in Todoist
Filter tasks todoist_filter_tasksGet all tasks matching a filter
Get all comments todoist_get_all_commentsRetrieve all comments for a task or project
Get all projects todoist_get_all_projectsGet all projects from a Todoist account
Get all tasks todoist_get_all_tasksFetches all incomplete tasks from Todoist
Export template as file todoist_export_template_as_fileExport a Todoist project as a CSV template file
Export template as URL todoist_export_template_as_urlExport a Todoist project as a shareable template URL
Get backups todoist_get_backupsList all available backup archives for the user
Get comment v1 todoist_get_comment_v1Retrieve a single comment by ID using the v1 API
Get completed tasks by completion date todoist_get_completed_tasks_by_completion_dateRetrieve completed tasks within a specified completion date window
Get ID mappings todoist_get_id_mappingsTranslate IDs between Todoist API v1 and v2
Get personal label todoist_get_personal_labelRetrieve a personal label by its ID
Get productivity stats todoist_get_productivity_statsRetrieve comprehensive productivity statistics for the authenticated user
Get project todoist_get_projectRetrieve a specific project by its ID using Todoist API v1
Get project full todoist_get_project_fullRetrieve full project data including all sections, tasks, and collaborators
Get project permissions todoist_get_project_permissionsRetrieve all available roles and their associated actions in Todoist projects
Get section v1 todoist_get_section_v1Retrieve a specific section by its ID using Todoist v1 API
Get special backups todoist_get_special_backupsList special backup archives for the authenticated user's projects
Get task2 todoist_get_task2Retrieve a single active (non-completed) task by ID using API v1
Get user todoist_get_userRetrieve information about the currently authenticated user
Get workspace plan details todoist_get_workspace_plan_detailsRetrieve details about a workspace's current plan and usage
List activities todoist_list_activitiesGet activity logs from Todoist
List all invitations workspaces todoist_list_all_invitations_workspacesReturn a list containing details of all pending invitations to a workspace
List archived projects todoist_list_archived_projectsGet all archived projects from Todoist
List archived sections todoist_list_archived_sectionsRetrieve all archived sections for a specific project in Todoist
List archived workspace projects todoist_list_archived_workspace_projectsList all archived projects in a workspace
List completed tasks todoist_list_completed_tasksRetrieve all completed tasks with optional project filtering

Try it: find the Todoist tool you need

Browse the 30 Todoist tools

Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.

Example prompts

Use todoist_quick_add_task to add these, one call each, keeping my syntax intact: "Renew domain tomorrow 9am #Admin p2", "Draft Q3 update Friday #Marketing", "Call the accountant next Monday p1". Confirm what Todoist parsed for each.

Run todoist_filter_tasks with the filter "overdue | today" and show me everything, grouped by project. Suggest which five matter most this week and why. Do not change any due dates until I say so.

Create a project called "Website relaunch" with todoist_create_project2, add sections for Design, Content, and Build with todoist_create_section_v1, then use todoist_bulk_create_tasks to add the action items from the notes I paste next into the right sections.

Use todoist_list_completed_tasks for the last 7 days and todoist_get_productivity_stats. Tell me how many tasks I closed, which project took the most, and whether my completion rate moved compared to the week before.

How the Todoist tools behave

Naming and argument detail from the manifest. The first point is the one that breaks prompts.

  • Several tool names end in a digit and that is correct. todoist_get_task2, todoist_create_project2, todoist_update_project2, todoist_reopen_task2, todoist_update_section2, and todoist_archive_project2 are the real names. Others carry a _v1 suffix, such as todoist_create_comment_v1 and todoist_create_label_v1. Neither is a typo.
  • todoist_quick_add_task and todoist_create_task solve different problems. Quick-add parses Todoist's own syntax, so dates, projects, labels, and priorities come from the sentence. todoist_create_task takes explicit arguments, which is what you want when the agent is generating tasks in bulk and you do not want its phrasing interpreted.
  • Completing and deleting are not the same. todoist_close_task_v1 completes a task and todoist_reopen_task2 undoes that. todoist_delete_task removes it. "Clear these off my list" is ambiguous across both.
  • Filters are Todoist's query language. todoist_filter_tasks accepts filter strings such as overdue | today or @waiting & #Work, which is more precise than pulling everything with todoist_get_all_tasks and sorting it afterwards.
  • Bulk creation exists. todoist_bulk_create_tasks takes many tasks in one call, which is the difference between turning a meeting into a project in one step and watching thirty sequential writes.
  • Completed tasks have two lookups. todoist_get_completed_tasks_by_completion_date and todoist_list_completed_tasks_by_due_date answer different questions: what got finished in a window, versus what was due in one.
  • Productivity data is available directly. todoist_get_productivity_stats returns karma and streak information without the agent counting tasks itself.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Todoist working from chat.

ManualClawLink
Connection flowRegister a Todoist app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Todoist through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Todoist.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Todoist actions to the runtime in a format your agent can reliably use.76 tools for Todoist are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Todoist to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Todoist in the browser, and the 76 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

Hermes paired but still can't use Todoist

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.

Connection succeeds but no tools appear

Reconnect Todoist from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Todoist tools

Todoist tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Todoist call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Todoist returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

Todoist returns 401 Unauthorized, "Invalid token", or the agent reports an authentication error on a connection that shows as connected

The standard advice for this phrase is to check your Authorization: Bearer header, delete and regenerate your API token, and make sure you are not calling a deprecated endpoint. None of it applies here, because there is no token in your possession and no header you control. What this means on a hosted connection is that the stored authorization is no longer valid on Todoist's side, and there are only a few ways that happens: you revoked the connection in Todoist's integrations settings, you changed your Todoist password in a way that invalidated existing sessions, or the account itself changed. The fix is to reconnect Todoist from the ClawLink dashboard, which replaces the authorization. If it fails again immediately after reconnecting, the problem is on the Todoist account rather than the connection, and signing in to Todoist directly in a browser will usually show what it is.

Ask the agent to diagnose it:

Run todoist_get_user and tell me exactly which Todoist account is connected, or report the exact error body if it fails. Do not retry the other Todoist calls.
Todoist returns 403 or 404 on a project or task that exists

Two causes, and they are easy to separate. The first is a placeholder id: Todoist project and task ids are numeric strings, and an agent that has not listed anything yet will invent one that is structurally valid enough to reach the API, so the answer comes back as forbidden or missing rather than as a bad argument. Run todoist_get_all_projects or todoist_filter_tasks first, then retry with a real id. The second is scope of the account: a project owned by someone else and not shared with you is not visible, and a task in an archived project is not where the agent is looking. todoist_list_archived_projects is the tool for the second case.

Ask the agent to diagnose it:

Run todoist_get_all_projects and show me the project ids and names you can see. Then tell me which one you were trying to use. Do not retry the failing call yet.
A Todoist tool returns "tool not found" or the agent asks for a tool with a version suffix like todoist_get_task2

If the name looks ordinary, the tool catalog had not loaded when the first call went out; schemas load on demand and retrying once usually clears it. The confusing case is version suffixes, which are real: several tools in this integration genuinely end in a digit, including todoist_get_task2, todoist_create_project2, todoist_reopen_task2, and todoist_update_section2. Those are correct names rather than typos, so an agent that strips the digit to make the name look tidier will get a not-found error. The failures most search results describe for this phrase, involving absolute paths in claude_desktop_config.json and missing environment variables, belong to locally run MCP servers and do not apply here.

Ask the agent to diagnose it:

List the Todoist tools you actually have available that match what I asked for, including any trailing digits, and use the exact name.
OAuth finished in the browser but the account is still missing

Try reconnecting Todoist and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a Hermes Agent Todoist integration?

Yes. ClawLink is the fastest way to connect Hermes to Todoist: link your Todoist account once in the browser and Hermes Agent can call the Todoist API through 76 ready-made tools — no custom code or token handling.

How do I connect Todoist to Hermes with ClawLink?

Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Todoist in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.

How long does it take to connect Todoist to Hermes Agent?

About two minutes. Sign in, click Connect next to Todoist in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.

Why use ClawLink instead of wiring Todoist up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Todoist working from chat.

Do I need a Todoist API token for this?

No. A Todoist API token is a single string that grants full access to your account, does not expire on its own, and has to be stored somewhere your agent can read it. That is why so much troubleshooting advice ends with regenerating it: when it stops working, the fix is to replace it everywhere you put it. This connection uses OAuth instead, so there is no string for you to hold, and revoking access is a button in Todoist rather than a hunt through config files.

Does this work with a free Todoist account?

Yes for the core task, project, label, comment, and section tools. Some of the 76 tools reach features that Todoist itself gates by plan, including workspace management, project collaborators, activity logs, and backups. Those tools exist in the catalog and will return an error from Todoist rather than from ClawLink if your plan does not include the feature, which is worth knowing so you can tell a plan limit from a broken connection.

Can the agent add tasks in natural language, the way Quick Add does?

Yes, through todoist_quick_add_task, which accepts Todoist's own quick-add syntax. That means "Pay invoice tomorrow at 5pm #Finance p1" is parsed by Todoist for the date, project, and priority rather than by the agent guessing at fields. For anything where you want explicit control over due dates, labels, or parent tasks, todoist_create_task takes them as separate arguments instead.

Will the agent see my shared or team projects?

It sees what your Todoist account sees, so shared projects you are a collaborator on are included. todoist_get_all_projects lists everything reachable, and todoist_list_project_collaborators shows who else is on a given project. Bear in mind that a task the agent creates or completes in a shared project is visible to your collaborators and attributed to you, so a bulk change is a change other people will notice.

Hermes paired but still can't use Todoist

Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.