Migrate with your agent
Move your tasks and notes from another app with your agent, safely and undoably.
org has no importers to set up. Your agent already knows how to read Todoist, Notion, Things, Trello, Obsidian or a spreadsheet, with its own tools or from an export file. It moves your things into org with the same tools it uses every day, and org makes that safe: a dry run first, re-runs that update instead of duplicating, and one-step undo.
Start the migration
If your client lists MCP prompts, pick Migrate from another tool
(migrate_from) and name the app you're leaving. It asks your agent to do
this:
Help me migrate from {source}. 1. Export or read my {source} data with your own tools. 2. Map it to pages (`write_page`) and tasks (`create_tasks` with `source: "{source}"` and each item's `external_id`, so a second run updates instead of duplicating). 3. Run `create_tasks` with `dry_run: true` first and show me the result. 4. Only then import for real, with an `import_id` so it can be undone with `import action: undo`.
If your client doesn't list prompts, paste this instead, with your app's name in place of Todoist. It's the same prompt that onboarding offers:
Use the aegent org tools to move my tasks and notes from Todoist. First call capabilities. Then read everything from Todoist and call create_tasks with source set to "Todoist" and each item’s own ID as external_id, keeping its dates, notes and completion history. Do a dry run first and show me the summary; when I say go, run it for real. Put notes in pages with write_page.
Dry runs
With dry_run: true, create_tasks does everything except write: it
returns what it would create, update and skip, with any problems, such as a
page that doesn't exist or an owner the agent can't see. Ask your agent to
show you the summary, and say go only when it looks right.
Re-runs don't duplicate
Each task your agent creates carries where it came from, as source:: (the
app, such as Todoist) and external_id:: (the item's ID in that app). A
second run with the same pair updates the task instead of adding another.
So you can migrate in stages, or run it again after you've tidied up the
old app, or move over a second time a week later.
Your agent keeps the original dates, too: created::, closed::,
scheduled dates, deadlines and the history of state changes, as the old app
had them. org flags items that look like duplicates of what's already there,
and your agent can ask you about them.
Undo
A migration runs as an import batch. Your agent starts one with the
import tool (action: start), passes its import_id to every
create_tasks call, and finishes it when it's done.
To undo the whole thing, ask your agent to undo the import (import with
action: undo), or use Admin, Import and export in the app. Undo puts
back the previous version of every task the batch updated, and moves what
it created to the trash, where it stays restorable. Undo is refused if
someone has changed those tasks since, so it never throws away later work.
From Org mode
Org files don't need an agent: org's format is Org's model in Markdown, and the CLI converts losslessly.
ae org convert --from org ~/org --out ~/notes
That converts every .org file under ~/org to aegent Markdown under
~/notes, keeping the folder layout. Anything the converter can't map is
kept in a drawer ORG block and reported, never dropped. Then sync the
folder to a space:
ae org sync ~/notes
The conversion follows the
Org to aegent Markdown mapping.
--from md converts back to Org, if you ever want to leave.