taskgraph init --from-taskmaster sets up TaskGraph in a Task Master project and brings its work over.
Import
From the project root, the folder that holds.taskmaster/:
--yes skips init’s questions. Leave it out to answer them (Git, Claude Code integration, response language); the import runs the same way. Add --dry-run to see what init would do without changing anything.
It prints what moved and the next step:
What moves
A file that is already in
.taskgraph/ is kept. The PRD templates init writes are an example: if you changed Task Master’s templates/example_prd.txt, copy it over by hand.
The task files in .taskmaster/tasks/ (task_001.txt and so on) are not copied. Run taskgraph generate to write them again.
Settings
TaskGraph runs every AI call through Claude Code, so only part of a Task Master config applies.- Model roles that map to Claude Code are kept. A
main,researchorfallbackmodel whose ID names a Claude model (for exampleclaude-code/opus, oranthropic/claude-sonnet-4-20250514) becomesopus,sonnetorhaiku. Any other model (Perplexity, OpenAI, Gemini, Ollama and so on) is skipped, and that role keeps TaskGraph’s default,sonnet. Change it withtaskgraph models --setup. - General settings are kept: project name, default priority, default subtask and task counts, response language, default tag, log level, codebase analysis, and from the
claudeCodesection the turn limit, system prompts and allowed or disallowed tools. - A saved task count of 10 is dropped. Task Master saves its defaults into
config.json, so"defaultNumTasks": 10is usually its default rather than your choice. Without it,parse-prdsizes the task list to the PRD. Any other count is kept. To keep asking for about 10 tasks, setglobal.defaultNumTasksto10again or pass--num-tasks 10. - Provider and API-key settings are dropped: base URLs (Ollama, Bedrock, Azure), the Vertex project, the user ID, any API key, and settings for providers TaskGraph removed.
- Risky
claudeCodesettings are dropped:mcpServers(itsenvandheaderscan hold secrets),pathToClaudeCodeExecutable,permissionModeandcommandSpecific. Set them again in.taskgraph/config.jsonif you need them.
.taskmaster/ file or folder that is a link to somewhere outside it, and a .taskgraph/ path that is a link to somewhere outside the project, so a checked-out project can’t make it read or write elsewhere.
API keys in .env or .mcp.json are not read or copied. TaskGraph needs none; see Authentication.
If .taskgraph/ already has tasks
The import won’t replace tasks that are already there:
taskgraph init creates, is fine to import over.
After the import
.taskmaster/ is left exactly as it was, so you can compare the two. When you’re happy with the result:
- Check the tasks:
taskgraph tags, thentaskgraph list. - Remove
.taskmaster/(git rm -r .taskmasterorrm -r .taskmaster). - Update anything else that names Task Master:
.taskmaster/paths inCLAUDE.md,.gitignore, scripts or CI,TASK_MASTER_*environment variables, and thetask-master-aiserver in.mcp.json. The upgrade guide lists each rename.

