AI is optional in OpenTodo. Nothing here is on until the person who runs your server, and then you, say yes. This page explains what you get when you do, and what stays in your hands.

Off until someone says yes

The assistant in the app needs the server owner to turn it on and each person to accept, before their first message, what is sent to which provider. Your own AI tools need the owner’s switch too, and changes need both the owner’s and your own switch. The rules are the same for every option, as What AI assistants can and can’t do explains.

You choose the model

The owner connects Claude with an Anthropic key, or any compatible endpoint: OpenRouter, Mistral, or a model on your own network such as Ollama or LM Studio, as Set up the assistant and a local model describe. Before your first message the assistant shows what will be sent and to whom, and nothing is sent before you accept; see what the assistant sends and keeps.

It proposes, you decide

Ask in plain words. The assistant reads your tasks and answers, and when a change would help it shows the whole set of changes first. Tick what you want, apply it, and undo it in one step if you change your mind. Every change shows in its task’s history. The steps are in Ask, review and undo.

An illustration of the review card, with the app's own wording: you pick which proposed changes to apply.

Your own AI tools, with a key you control

Claude Desktop, an editor or any other MCP client can read your tasks through the MCP server, and make changes only with an agent token and only when the owner and you allow it. In Claude Code, the OpenTodo plugin adds skills that teach Claude to read before changing, use ids, show a plan first and never follow instructions written inside tasks. Assistants can’t touch tokens, settings, sharing, members, encryption, imports or backups, and their changes are also in the audit log, as the limits list.

With end-to-end encryption

If your account uses end-to-end encryption, the assistant in the app is not available: the server holds no key to your tasks, so it cannot pass them to a model, as encrypted accounts explains. Over MCP, encrypted text is reported as an encrypted item, and ot mcp --decrypt turns it back into text on your own computer; see MCP and encryption.