Toddyi

io.github.toddyi-appv0.2.7更新于 Oct 11, 2026

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

已验证Streamable HTTP可网页运行Files & StorageProductivity & WorkflowKnowledge & Memory

概览

AI 生成的概览

让助手读取和修改已登录账户在 Toddyi 中的任务、文件夹、学习资料、卡片组和知识图谱。

功能
把 Toddyi 的任务、文件夹和学习资料操作暴露为 MCP 工具,包括 list_tasks、get_task、create_task、update_task、complete_task、reopen_task、archive_task、delete_task、list_folders 和 create_folder。学习类工具可列出、搜索、读取、更新、打标签和删除学习资产、批注、卡片组、知识图谱节点与关系、集合、分享链接、片段和发布内容。远程端点提供日常工具,本地 CLI 服务器提供包含学习编辑在内的完整工具集。
适用场景
适合任务、截止日期、文件夹和学习资料已经放在 Toddyi 中,并希望助手在对话里规划、搜索、汇总或更新它们的场景,例如询问哪些已逾期,或把笔记整理成任务。
运行要求
可以使用 toddyi.love/mcp 的远程端点并通过 OAuth 登录,也可以本地运行 toddyi 二进制并以 toddyi mcp 通过 stdio 提供。本地方式需要 Toddyi 账户,以及 toddyi login 生成的令牌,或设置 TODDYI_TOKEN 环境变量(连接其他服务器时还需 TODDYI_URL)。
安装前请注意
工具可以创建、更新、完成、归档和删除任务与学习资产,其中 delete_task 被标记为破坏性操作。分享链接和发布功能可能让内容被公开访问。~/.config/toddyi/config.json 中的令牌可访问账户,不应复制进归档或分享;可用 toddyi logout 或在令牌列表中撤销。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Toddyi,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "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.

来源:README.md,提交 d342a43

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.2.7最新Oct 11, 2026