append_markdown
ChatGPTAppend a markdown block to a list as things, in one call — handy when you already have the content as markdown. Checkboxes (- [ ]/- [x]) become todos, 1. numbered items, -/* bullets, > notes; leading indentation nests items (tabs). Target the list with list_id or list (name / "today"). Set skip_duplicates: true to make a re-run safe. Returns created/skipped counts.
count_things
ChatGPTCount how many things match a filter — use this for "how many…" questions instead of listing and tallying. Filter by type, completed, tag, favorited (starred), and a creation-date range via created_after / created_before (ISO 8601). Returns just { count }. Compute the date range yourself from today's date (e.g. for "last month", created_after = first day of last month, created_before = first day of this month).
create_list
ChatGPTCreate a new list. Returns the created list, including its id.
create_thing
ChatGPTAdd a thing to a list. A thing is a todo (checkbox) or a note — omit type to use the user’s default. Add url for a hyperlink and tags (names, with or without #) to categorize. list_id is required; get it from list_lists or search.
create_things
ChatGPTCreate many things at once in a single call — use this instead of looping create_thing for imports, migrations, or building a list from a set of items. Pass items (an array); each item takes the same fields as create_thing (text, optional type, url, list_ref, tags, photos, completed, tabs, created). Target the list with a top-level list_id (or list name / "today"), or give each item its own list_id/list to write across lists in one call. Use created per item to preserve original capture-date order. Set skip_duplicates: true to make a re-run safe (skips items already present by url, else text). Returns per-list counts (created/skipped), not the items. Max 500 per call — split larger imports into batches.
delete_list
ChatGPTPermanently delete a list AND every thing inside it. This cannot be undone.
delete_thing
ChatGPTPermanently delete a thing. This cannot be undone.
delete_things
ChatGPTPermanently delete MANY things at once by id. This cannot be undone. Max 500 ids per call. Returns how many were deleted (unknown ids are ignored).
fetch
ChatGPTFetch one resource (a list or a thing) by id and return it as a single document — { id, title, text, url, metadata }. For a list, text is its things rendered as plain text. Pair with search: search returns ids, fetch retrieves full content.
get_list
ChatGPTGet one list, its things, and any reminders on those things. Get the id from list_lists or search.
get_thing
ChatGPTGet a single thing by id, plus its reminder (or null).
get_today
ChatGPTGet the user’s day list for a date — the core daily-list loop — without hunting for an id. date accepts "today" (default), "yesterday", "tomorrow", or an ISO 8601 date (e.g. 2026-04-01); it’s resolved in the user’s timezone. Creates the day list if it doesn’t exist yet (just like opening that day in the app). Returns the same shape as get_list. Use this for "add this to today", "what’s on yesterday’s list", "move this to Monday", etc.
import_markdown
ChatGPTCreate a NEW list from a markdown document in one call. The title comes from title, or the document’s first heading (# …) when omitted; the rest becomes the list’s things (checkboxes → todos, 1. → numbered, -/* → bullets, indentation → nesting). Returns the new list and how many things were created.
list_lists
ChatGPTList your NewTwos lists, most recently updated first (50 per page; pass page for more). Use a list’s id with get_list, create_thing, update_list, etc.
list_places
ChatGPTList the user’s saved places (named addresses like Home and Work). set_reminder already accepts a saved place’s name as place, so you only need this to answer "what places do I have saved".
list_reminders
ChatGPTList your upcoming reminders (soonest first).
list_tags
ChatGPTList the tags you use across your things, with usage counts.
list_things
ChatGPTList your things newest-first across all lists (or one list). Filter by list_id, completed, type, or tag. since + sort give an incremental cursor (e.g. poll for things created after a timestamp). Each thing has a stable id.
remove_reminder
ChatGPTRemove the reminder from a thing.
save_place
ChatGPTSave a named place from an address, or update the address of one with the same name, e.g. label "Work" and address "500 Market St, San Francisco". After this, set_reminder can use the name as place.
search
ChatGPTFull-text search across your list titles and thing text (case-insensitive, up to 50 of each). Returns matching lists and things, plus a flat results array of {id, title, url} you can pass to fetch. Useful for finding ids before updating.
set_reminder
ChatGPTSet or replace the reminder on a thing. A thing has at most one reminder. at is an ISO 8601 datetime.
update_list
ChatGPTUpdate a list (rename, change emoji, star, archive). Only the fields you send change.
update_thing
ChatGPTUpdate a thing. Set completed: true to check off a todo, canceled: true to cancel it, list_id to move it to another list, or change text/type/url/tags. Only the fields you send change.
update_things
ChatGPTApply one change to MANY things at once — "check all these off", "move these to Kitchen", "star these". Pass ids (the thing ids, from search/list_things) and set (the fields to change, same shape as update_thing: completed, canceled, favorited, type, tags, tabs, url, list_ref, and a move via list_id or list name). The same set is applied to every id. Things you no longer own are skipped, not errors. Max 500 ids per call.