Toddyi

io.github.toddyi-appv0.2.7Updated Oct 11, 2026

Tasks, calendar and study materials in Toddyi: search, read and plan with your tasks.

Overview

AI-generated overview

Lets an assistant read and change Toddyi tasks, folders, study materials, decks and knowledge graphs for the signed-in account.

What it does
Exposes Toddyi's task, folder and study-material operations as MCP tools, including list_tasks, get_task, create_task, update_task, complete_task, reopen_task, archive_task, delete_task, list_folders and create_folder. Study tools cover listing, searching, reading, updating, tagging and deleting study assets, annotations, decks, knowledge-graph nodes and relations, collections, share links, fragments and publications. A remote endpoint offers the everyday tools, while the local CLI server exposes the full set including study editing.
When to use it
Useful when tasks, deadlines, folders and study material already live in Toddyi and you want an assistant to plan, search, summarise or update them in conversation, for example asking what is overdue or turning notes into tasks.
Requirements
Either the remote endpoint at toddyi.love/mcp signed in with OAuth, or the local toddyi binary run as toddyi mcp over stdio. The local route needs a Toddyi account and a token from toddyi login, or the TODDYI_TOKEN environment variable (with TODDYI_URL for another server).
Before you install
Tools can create, update, complete, archive and delete tasks and study assets, and delete_task is marked destructive. Share links and publications can make content publicly reachable. The token in ~/.config/toddyi/config.json grants account access and should not be copied into archives or shared; revoke it with toddyi logout or from the token list.

Installation

In SourceWeft

  1. Open Toddyi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "toddyi": {
      "type": "http",
      "url": "https://toddyi.love/mcp"
    }
  }
}

README

toddyi — Toddyi from the terminal

A single binary for people, shell scripts, CI jobs and AI agents: read and change your Toddyi tasks without opening the app.

console
$ toddyi loginYour code: UCT4-4D8DApprove it at https://toddyi.love/cli/authorize?code=UCT4-4D8DLogged in as [email protected].
$ toddyi create task "Write the quarterly report" --due tomorrow --folder Work --tag q4 --priority highCreated #1038 Write the quarterly report
$ toddyi tasks --due today1040  [~]  2026-10-01  Call the bank1039  [~]  2026-10-01  Buy milk
$ toddyi tasks --due today --ids | toddyi doneDone 2 tasks.

Install

Download the binary for your platform from Releases — one static file, no dependencies — check it against SHA256SUMS, and put it on your PATH.

Or with Go 1.24+:

bash
go install github.com/toddyi-app/toddyi-cli/cmd/toddyi@latest

Building from source:

bash
go build -o ~/.local/bin/toddyi ./cmd/toddyi    # this machinebash build.sh v0.1.0                             # every platform, into dist/

Signing in

toddyi login shows a code and opens the approval page in your browser. You approve it there, signed in as you normally are — second factor included — and the CLI collects a token of its own. The CLI never sees your password.

  • The token is stored in ~/.config/toddyi/config.json (mode 0600).
  • toddyi logout revokes it on the server, not just locally.
  • Every signed-in terminal is listed at /cli/tokens, where any of them can be revoked.
  • For CI or an agent that should not write files, set TODDYI_TOKEN (and TODDYI_URL for a server other than toddyi.love) instead of logging in.

Commands

Both word orders work: toddyi create task … and toddyi task create …. Flags may come before or after the arguments. toddyi <command> -h lists a command's flags.

toddyi login / logout / whoamisign in, sign out (revokes the token), show the account
toddyi tasks [words]list tasks — --status pending|completed|archived|active|all, --due today|overdue|week|none, --folder NAME, --kind, --search, --limit, --ids
toddyi create task TITLE--due, --start, --end, --priority low|medium|high, --important, --urgent, --folder, --tag (repeatable), --notes, --kind todo|habit|study
toddyi show IDone task, with notes
toddyi update task ID…change only the flags given (--title, --due none clears a date)
toddyi done ID… / reopen / archivea repeating task is done for today
toddyi delete ID… --yesfor good; asks when run in a terminal, refuses without --yes otherwise
toddyi folders / create folder NAME
toddyi assetslist study files and their current versions; filter with --search, --kind, --visibility, --tag, --created-from, --created-to, --updated-from, and --updated-to
toddyi asset upload FILEcreate an asset (--title, --visibility private|public)
toddyi asset show IDshow asset metadata and version history
toddyi asset update IDchange --title or --visibility private|public
toddyi asset version ID FILEupload a new immutable version (--summary)
toddyi asset download IDdownload the current version (--version, --output)
toddyi asset restore ID VERSIONrestore an older version as the newest version
toddyi asset correct ID VERSION GENERATION --file TEXT_FILEappend a provenance-linked OCR/transcription correction while preserving the original result
toddyi asset link --source ID --target ID --kind citescreate a directed source relationship; --source-fragment and --target-fragment anchor either end
toddyi asset links --asset ID / toddyi asset unlink LINK_IDbrowse links from either asset and remove a relationship
toddyi asset fragments --asset ID / toddyi asset fragment --asset ID --kind page --locator '{"page":2}'browse and create source fragments; pass --parent ID to build document hierarchy
toddyi asset export ID [--output FILE.zip] / asset import FILE.zipportable bundle with versions, extraction history, annotations and crops, fragments, related knowledge graph, publication state, tags and collection membership; import remaps references to a new asset ID
toddyi collection list|create|show|update|deletemanage owner-only collections of stable asset IDs (--assets ID,ID)
toddyi asset share list|create|revoke ID [LINK_ID]create seven-day-by-default share links, list own links, and revoke them
toddyi asset publish show|create|update|delete IDmanage a public Markdown publication
toddyi assets clone DIRdownload a workspace and create its local manifest
toddyi assets pull|push|sync [DIR]pull server changes, push local edits, or do both
toddyi mcpserve Toddyi to an AI agent (below)

An asset keeps the same ID across all versions. A workspace stores those IDs, version numbers, file paths and SHA-256 checksums in .toddyi-assets.json. sync keeps a local edit if the remote version also changed and reports a conflict instead of overwriting either copy. New files in the workspace are uploaded as private assets; deleting a tracked file creates a recoverable remote deletion, and asset restore ID VERSION can bring it back.

Dates are read in your account's time zone: today, tomorrow, yesterday, +3d, +2w, 2026-10-01, 2026-10-01T09:30, or none. A day without a time is the end of that day for a deadline, so "due today" is not overdue at breakfast.

For scripts and automation

  • --json on any command prints JSON on stdout; errors go to stderr as {"error": {"code", "message", "status", "exit_code"}}.
  • Exit codes are stable: 0 ok, 1 error, 2 usage or a value the server could not read, 3 not logged in / token revoked, 4 not found, 5 the Free plan's task limit.
  • stdin: toddyi create task - makes one task per line; done, reopen, archive, show and delete read ids from stdin when none are given.
bash
# Anything that prints lines becomes tasksgrep -h "TODO" src/**/*.rb | sed 's/.*TODO:\s*//' | toddyi create task - --folder Code --tag todo
# Everything overdue, as JSONtoddyi --json tasks --due overdue | jq -r '.[] | "\(.id)\t\(.title)"'
# A nightly job: archive what was finishedtoddyi tasks --status completed --ids | toddyi archive

For AI agents: toddyi mcp

toddyi mcp is a Model Context Protocol server on stdio. It exposes the same operations as tools — list_tasks, get_task, create_task, update_task, complete_task, reopen_task, archive_task, delete_task, list_folders, create_folder, whoami — and Study tools: list_study_assets, search_study_assets (query plus optional kind, visibility, tag, and created/updated date bounds), get_study_asset, update_study_asset, delete_study_asset, tag_study_asset, restore_study_asset_version, reprocess_study_asset_extraction, analyze_study_asset, list_study_annotations, create_study_annotation, update_study_annotation, delete_study_annotation, and analyze_study_crop. Flashcard tools are list_study_decks, get_study_deck, push_study_deck, clone_study_deck, import_public_study_deck, restore_study_deck_version, and set_study_deck_public. list_study_knowledge_graph, create_study_knowledge_node, update_study_knowledge_node, delete_study_knowledge_node, link_study_knowledge_nodes, and delete_study_knowledge_relation. They use the logged-in account's token and the same owner-scoped server rules. Knowledge nodes can be marked as primary source facts or interpretations and can retain a source fragment ID. Collection and sharing tools include list_study_collections, create_study_collection, update_study_collection, delete_study_collection, create_study_share_link, and revoke_study_share_link. Asset relationships can be browsed with list_study_asset_links, created with create_study_asset_link, and removed with delete_study_asset_link. Fragments and their document hierarchy are available through list_study_fragments and create_study_fragment. MCP publication tools are get_study_publication, create_study_publication, update_study_publication, and delete_study_publication.

Study bundles keep content and provenance while assigning new asset, fragment, annotation, knowledge-node, relation, and publication IDs on import. Existing same-named collections gain the imported asset as a member. Revocable share links are omitted because the token itself grants access and should not be copied into an archive.

Claude Code:

bash
claude mcp add toddyi -- toddyi mcp

Claude Desktop (claude_desktop_config.json), or any MCP client:

json
{ "mcpServers": { "toddyi": { "command": "toddyi", "args": ["mcp"] } } }

Then ask for things in words: "plan my week from these notes and put it in Toddyi", "what is overdue?", "mark the bank call done". Read-only tools are annotated as such and delete_task as destructive, so a client can ask before using it.

ChatGPT, Claude and Gemini

AgentHow it connects
ChatGPTToddyi's remote MCP server, https://toddyi.love/mcp, signed in with OAuth. Settings ? Apps & Connectors ? Create, URL https://toddyi.love/mcp, authentication OAuth. The app submission bundle (toddyi-chatgpt-app-<version>.zip) is attached to every release; its sources are in integrations/chatgpt.
Claude CodeThe plugin in toddyi-app/claude-plugins: /plugin marketplace add toddyi-app/claude-plugins, then /plugin install toddyi@toddyi. It runs toddyi mcp.
Gemini CLIThe extension in toddyi-app/gemini-extension: gemini extensions install https://github.com/toddyi-app/gemini-extension. It runs toddyi mcp.

The remote server offers the everyday tools ? search, fetch, tasks, folders, study materials, decks and the knowledge graph ? and needs nothing installed. toddyi mcp here has the full set, Study editing included.

Releases

Pushing a tag v* runs .github/workflows/release.yml: it tests, builds the CLI for every platform and the ChatGPT bundle, and attaches them and SHA256SUMS to the release. A tag with a hyphen (v0.2.0-rc.1) is published as a pre-release.

Layout

main.goentry point; version is set with -ldflags -X main.version=…
internal/cmdparsing, dispatch, output, exit codes
internal/apithe /api/cli client, and an in-memory fake of it for tests
internal/configwhere the URL and token are kept
internal/mcpthe MCP server and its tools
bash
cd cli && go vet ./... && go test -race ./...

The server side is app/controllers/api/cli/ (the API), app/controllers/features/cli/ (the approval page and the token list) and app/models/features/accounts/cli_token.rb.

License

MIT. See LICENSE.

Source: README.md at commit d342a43

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.2.7LatestOct 11, 2026