list-checkscmdhub adapter
Microsoft To Do CLI
for cmdhub.
Task lists, tasks, due dates, and completion through Microsoft To Do.
lock
Auth: OAuth2
Quick Install
cmdhub get mstodo
data_object Agent Contract
Agents should start with auth/status and discovery commands, inspect schemas before composition, and treat commands marked as mutating as state-changing operations.
Output
Use human output for reading, `--json` for one object, and `--jsonl` for pipes.
Auth
Microsoft OAuth. Used for Microsoft To Do lists and tasks.
Refs
Prefer list/search, then short refs or piped JSONL. Use `resolve` to inspect cached refs.
Schemas
Use `mstodo schema` and `catalog.json` to inspect fields, flags, examples, and side effects.
Auth scopes
offline_accessUser.ReadTasks.ReadWriteterminal Command Reference
Generated from source. Global flags apply to all commands.
Global Flags
--json
bool
Emit JSON machine output--jsonl
bool
Emit JSONL records for piping--output, -o
string
Compatibility output mode: json|jsonl. Prefer --json or --jsonl--view
string = summary
View mode: summary|full--profile
string = default
Config/auth profile--config
string
Config path override--quiet, -q
bool
Suppress non-essential diagnostics--debug
bool
Enable debug diagnostics--limit
int = 50
Maximum items to emit--page-size
int = 50
Requested upstream page size--cursor
string
Continuation cursor--no-paginate
bool
Fetch only one page--version, -v
bool
Print version informationmstodo auth
Manage Microsoft authentication#cmd-mstodo-auth
discovery safe
mstodo auth login
Authenticate with Microsoft To Do#cmd-mstodo-auth-login
mutates state
$ mstodo auth login
$ mstodo auth login --help
$ mstodo auth status
$ mstodo auth whoami
mstodo auth logout
Remove stored credentials#cmd-mstodo-auth-logout
mutates state
$ mstodo auth logout
$ mstodo auth logout --help
mstodo auth refresh
Refresh stored token#cmd-mstodo-auth-refresh
mutates state
$ mstodo auth refresh
$ mstodo auth refresh --help
mstodo auth status
Show auth status#cmd-mstodo-auth-status
discovery safe
$ mstodo auth status
$ mstodo auth status --help
mstodo auth whoami
Show current Microsoft identity#cmd-mstodo-auth-whoami
discovery safe
$ mstodo auth whoami
$ mstodo auth whoami --help
mstodo capabilities
Describe capabilities#cmd-mstodo-capabilities
discovery safe
$ mstodo capabilities --help
mstodo config
Inspect local configuration#cmd-mstodo-config
discovery safe
mstodo config explain
Explain resolved configuration#cmd-mstodo-config-explain
discovery safe
$ mstodo config explain --help
mstodo doctor
Run mstodo diagnostics#cmd-mstodo-doctor
discovery safe
$ mstodo doctor --help
mstodo list
Work with Microsoft To Do task lists#cmd-mstodo-list
discovery safe
$ mstodo list list
$ mstodo list search --query operations
$ mstodo list get l1 --limit 0
mstodo list create
Create a task list#cmd-mstodo-list-create
mutates state
--name
string
List name$ mstodo list create --help
$ mstodo list create --name "Operations"
mstodo list delete
Delete a task list#cmd-mstodo-list-delete
mutates state
dry-run
--dry-run
bool
Preview task list deletion without deleting--yes
bool
Confirm task list deletion$ mstodo list delete l1 --dry-run
$ mstodo list delete l1 --yes
mstodo list get
Get a task list#cmd-mstodo-list-get
discovery safe
--query
string
Filter tasks in this list by title/body$ mstodo list get
$ mstodo list get l1
$ mstodo list get l1 --limit 0
$ mstodo list get l1 --query packet
$ mstodo list search --query operations --jsonl | mstodo list get
mstodo list list
List task lists#cmd-mstodo-list-list
discovery safe
--query
string
Filter list names locally$ mstodo list list
$ mstodo list list --limit 0
mstodo list search
Search task lists#cmd-mstodo-list-search
discovery safe
--query
string
Filter list names locally$ mstodo list search
$ mstodo list search --query operations
$ mstodo list search operations
mstodo list update
Update a task list#cmd-mstodo-list-update
mutates state
--name
string
New list name$ mstodo list update --help
$ mstodo list update l1 --name "Operations"
mstodo login
Authenticate with Microsoft To Do#cmd-mstodo-login
mutates state
$ mstodo auth status
$ mstodo auth whoami
$ mstodo login
mstodo logout
Remove stored credentials#cmd-mstodo-logout
mutates state
$ mstodo logout
mstodo profile
Manage provider profiles#cmd-mstodo-profile
discovery safe
mstodo profile create
Create an unauthenticated provider profile#cmd-mstodo-profile-create
mutates state
$ mstodo profile create --help
mstodo profile delete
Delete a local provider profile#cmd-mstodo-profile-delete
mutates state
$ mstodo profile delete --help
mstodo profile list
List provider profiles#cmd-mstodo-profile-list
discovery safe
$ mstodo profile list --help
mstodo profile rename
Rename a local provider profile#cmd-mstodo-profile-rename
discovery safe
$ mstodo profile rename --help
mstodo profile use
Set the default provider profile#cmd-mstodo-profile-use
mutates state
$ mstodo profile use --help
mstodo resolve
Resolve a local mstodo reference#cmd-mstodo-resolve
discovery safe
$ mstodo resolve --help
mstodo schema
Emit mstodo schema hints#cmd-mstodo-schema
discovery safe
--in
bool
Show input schema--out
bool
Show output schema$ mstodo schema --help
mstodo task
Work with Microsoft To Do tasks#cmd-mstodo-task
discovery safe
$ mstodo task list --list l1
$ mstodo task search --list l1 --query packet
$ mstodo task create --list l1 --title "Send packet"
$ mstodo task get t1
$ mstodo task complete t1
mstodo task comment
Append text to a task body#cmd-mstodo-task-comment
mutates state
--body
string
Text to append--list
string
Task list ref or ID when task is not a local ref--task
string
Task ref or ID$ mstodo task comment --help
$ mstodo task comment t1 --body "Comment marker for audit trail"
mstodo task complete
Mark a task complete#cmd-mstodo-task-complete
mutates state
--all
bool
Confirm batch task completion--list
string
Task list ref or ID when task is not a local ref--task
string
Task ref or ID$ mstodo task complete --help
$ mstodo task complete t1
mstodo task create
Create a task#cmd-mstodo-task-create
mutates state
--body
string
Task body--due
string
Due date/time, e.g. YYYY-MM-DD or RFC3339; date-only values are stored at 00:00 UTC--importance
string
Importance: low, normal, or high--list
string
Task list ref or ID--title
string
Task title$ mstodo task create --help
$ mstodo task create --list l1 --title "Send packet"
$ mstodo task create --list l1 --title "Send packet" --due 2026-05-01 --importance high
mstodo task delete
Delete a task#cmd-mstodo-task-delete
mutates state
dry-run
--all
bool
Confirm batch task deletion--dry-run
bool
Preview task deletion without deleting--list
string
Task list ref or ID when task is not a local ref--task
string
Task ref or ID--yes
bool
Confirm destructive task deletion$ mstodo task delete t1 --dry-run
$ mstodo task delete t1 --yes
mstodo task get
Get a task#cmd-mstodo-task-get
discovery safe
--list
string
Task list ref or ID when task is not a local ref--task
string
Task ref or ID$ mstodo list get l1 --limit 1 --jsonl | mstodo task get --json
$ mstodo task get
$ mstodo task get t1
mstodo task list
List tasks in a task list#cmd-mstodo-task-list
discovery safe
--list
string
Task list ref or ID--query
string
Filter tasks by title/body--status
string
Filter by status: open, completed, notStarted, inProgress, waitingOnOthers, or deferred$ mstodo list search --query operations --jsonl | mstodo task list --query packet
$ mstodo task list --list l1
mstodo task search
Search tasks in a task list#cmd-mstodo-task-search
discovery safe
--list
string
Task list ref or ID--query
string
Filter tasks by title/body--status
string
Filter by status: open, completed, notStarted, inProgress, waitingOnOthers, or deferred$ mstodo list search --query operations --jsonl | mstodo task search --query packet
$ mstodo task search --list l1 --query packet
mstodo task update
Update a task#cmd-mstodo-task-update
mutates state
--body
string
New task body--due
string
New due date/time; empty clears the due date--importance
string
Importance: low, normal, or high--list
string
Task list ref or ID when task is not a local ref--status
string
Graph task status, e.g. notStarted or completed--task
string
Task ref or ID--title
string
New task title$ mstodo task update --help
$ mstodo task update t1 --importance high --due 2026-05-01
$ mstodo task update t1 --title "Send updated packet"
mstodo version
Print version information#cmd-mstodo-version
discovery safe
$ mstodo version --help
play_circle Live Examples
Output captured from a real workspace. Regenerate with
scripts/gen-docs.sh --update.
auth
Check Microsoft auth status
$ mstodo auth status
Not logged in. Next steps: - Login: mstodo auth login
Run diagnostics
$ mstodo doctor
mstodo doctor: FAIL Checks: credential_backend ok, credential_security warn, profiles warn, microsoft_oauth ok, token fail CHECK STATUS DETAIL credential_backend OK using file credential_security WARN credential backend stores local plaintext secrets profiles WARN no provider profiles configured microsoft_oauth OK built-in Microsoft provider client is configured token FAIL no stored Microsoft token Next steps: - Status: prefer an OS keychain backend outside isolated test accounts - Capabilities: mstodo capabilities
schemas
Inspect task schema
$ mstodo schema task.create --in
Schema: mstodo.task.create.input.v1 (mstodo task create input) Required: list, title Optional: body, due, importance
overview
Show capabilities
$ mstodo capabilities
mstodo capabilities Resources: auth, capabilities, config, doctor, list, profile, resolve, schema, task, version Machine output: --json, --jsonl Required scopes: Tasks.ReadWrite, User.Read, offline_access Next steps: - Scopes: mstodo capabilities --section scopes - Schema: mstodo schema - Contract: mstodo capabilities --json - Help: mstodo --help
alt_route Composition Patterns
Bridge your ecosystem with zero middleware.
mstodo auth login
# Create and complete a Microsoft To Do task
mstodo list search --query "Operations"
mstodo list get l1
mstodo task create --title "Send weekly packet" --list l1 --due 2026-05-01
mstodo task complete t1
# Pipe a listed task into a follow-up command
mstodo list get l1 --limit 1 --jsonl | mstodo task get --json
# Fetch every task in a long list
mstodo list get l1 --limit 0 --json