import-tasks
This skill should be used when you need to import tasks from another Claude Code session's TaskList into your current session, enabling coordination across sessions without restarting.
SKILL.md
| Name | import-tasks |
| Description | This skill should be used when you need to import tasks from another Claude Code session's TaskList into your current session, enabling coordination across sessions without restarting. |
name: import-tasks description: This skill should be used when you need to import tasks from another Claude Code session's TaskList into your current session, enabling coordination across sessions without restarting. argument-hint: "[TaskList ID (UUID)]"
Import Tasks from Another Session
Import tasks from another Claude Code session's TaskList into your current session.
When to Use
- When picking up work from a
/workflows:planthat created tasks - When coordinating with another Claude session
- When you want to continue work started in a different session
- When a subagent needs to work on tasks from the main session
How It Works
Each Claude Code session has its own TaskList stored at:
~/.claude/tasks/[session-uuid]/
├── 1.json
├── 2.json
└── ...
This skill reads tasks from another session and recreates them in your current session using TaskCreate, preserving descriptions, status, and dependencies.
Usage
Input: TaskList ID (the UUID from the plan's task_list_id frontmatter or from another session)
skill: import-tasks a69ce44f-1559-4052-89e2-66605323adca
Execution Steps
1. Validate the TaskList exists
task_list_id="$ARGUMENTS"
if [ -z "$task_list_id" ]; then
echo "Error: No TaskList ID provided"
echo "Usage: skill import-tasks [TaskList ID]"
exit 1
fi
if [ ! -d ~/.claude/tasks/$task_list_id ]; then
echo "Error: TaskList not found at ~/.claude/tasks/$task_list_id"
echo ""
echo "Available TaskLists:"
ls -la ~/.claude/tasks/
exit 1
fi
2. Read and display tasks from source
echo "Tasks in source TaskList $task_list_id:"
echo ""
for f in ~/.claude/tasks/$task_list_id/*.json; do
cat "$f" | jq -r '"#\(.id) [\(.status)] \(.subject)"'
done
3. Import tasks into current session
For each task in the source TaskList:
-
Read the task JSON:
cat ~/.claude/tasks/$task_list_id/1.json | jq . -
Create in current session:
TaskCreate: subject: [from source task] description: [from source task] activeForm: [from source task] -
Note the ID mapping (source ID → new ID) for dependency resolution
-
After all tasks created, set up dependencies:
TaskUpdate: task #[new_id] addBlockedBy [mapped_dependency_ids]
4. Verify import
TaskList # Should show all imported tasks
5. Report completion
Imported X tasks from TaskList [source_id]
ID Mapping:
- Source #1 → Current #1: [subject]
- Source #2 → Current #2: [subject]
...
Ready to execute. Use TaskList to see available work.
Example
From a plan file with:
---
title: Add user authentication
task_list_id: a69ce44f-1559-4052-89e2-66605323adca
---
Import the tasks:
skill: import-tasks a69ce44f-1559-4052-89e2-66605323adca
Result:
Imported 5 tasks from TaskList a69ce44f-1559-4052-89e2-66605323adca
ID Mapping:
- Source #1 → Current #1: Implement User model
- Source #2 → Current #2: Add authentication service
- Source #3 → Current #3: Create login endpoint
- Source #4 → Current #4: Add session middleware
- Source #5 → Current #5: Write integration tests
Dependencies preserved:
- #5 blocked by #1, #2, #3, #4
Ready to execute. Use TaskList to see available work.
Notes
- Tasks are copied, not moved - source TaskList remains unchanged
- Task IDs in the new session may differ from source (use the mapping)
- Dependencies are automatically remapped to new IDs
- Status is preserved (pending/in_progress/completed)
- If current session already has tasks, imported tasks get new IDs (no conflicts)