The async task feature allows you to run time-consuming AI tasks in the background while continuing to use your terminal for other work. Tasks run in independent processes and won't block your operations.
Async tasks are suitable for the following scenarios:
- Long-running code analysis and refactoring
- Batch file processing and conversion
- Generating detailed project documentation
- Executing complex multi-step operations
You can create tasks to run in the background, check results later, or approve sensitive operations when needed.
Use the --task parameter in the terminal to create a background task:
snow --task "Analyze project code and generate architecture documentation"After execution, task information will be displayed and control returns immediately:
Task created: abc-123-def-456
Title: Analyze project code and generate architecture documentation
Use "snow --task-list" to view task status
The task will run in an independent background process, allowing you to continue using the terminal for other work.
There are two ways to open the task manager to view and manage background tasks:
snow --task-listAfter launching Snow CLI, select the "Task Manager" option from the main menu.
After entering the task manager, you'll see a list of all tasks. Each task displays:
- Status icon and color
- Task title (first 50 characters of the prompt)
- Last update time
- Message count
○Yellow - Pending: Task created but not yet started◐Cyan - Running: Task is executing in the background⏸Magenta - Paused: Sensitive command detected, waiting for your approval●Green - Completed: Task executed successfully✗Red - Failed: Task execution error
↑↓- Navigate up/downSpace- Mark/unmark task (for batch deletion)Enter- View task detailsD- Delete task- Single delete: Select and press
D, pressDagain to confirm - Batch delete: Mark multiple tasks with
Space, pressD, pressDagain to confirm
- Single delete: Select and press
R- Refresh task listEsc- Exit task manager
C- Convert task to session for continued conversation- Press
Conce to show prompt - Press
Cagain to confirm conversion
- Press
A- Approve sensitive command execution (only available when paused)R- Reject sensitive command (only available when paused)Esc- Return to task list
When a background task needs to execute dangerous operations (like deleting files, resetting code, etc.), it will automatically pause and wait for your approval.
- See the pause icon
⏸and magenta status in the task list - Press
Enterto view task details - Check the specific command shown in the yellow warning box
- Choose based on the situation:
- Press
A- Approve execution, task continues running - Press
R- Reject execution
- Press
- Press
Ron the paused task details page - Enter input mode, cursor displays as █
- Enter rejection reason, e.g., "Insufficient permissions, please execute manually"
- Press
Enterto submit - Press
Escto cancel input
After rejection, the AI will receive your reason and adjust subsequent operations accordingly.
You can customize which commands require approval. See Sensitive Commands Configuration.
Completed tasks can be converted to regular sessions, allowing you to continue conversing with the AI, ask for more details, or request modifications.
- Select a task in the task list
- Press
Enterto view details - Press
Ckey (confirmation prompt appears) - Press
Cagain to confirm - Automatically jump to chat interface
- Original task will be deleted after conversion
- All message history will be preserved in the new session
- Incomplete tasks can also be converted, but with a warning prompt
- Conversion operation cannot be undone
Each task has an independent log file that records detailed execution process.
Task creation displays the log path:
Task abc-123-def-456 started in background (PID: 12345)
Logs: /Users/username/.snow/task-logs/abc-123-def-456.log
Use any text editor or command-line tool:
# View logs in real-time
tail -f ~/.snow/task-logs/abc-123-def-456.log
# View complete log
cat ~/.snow/task-logs/abc-123-def-456.logLogs contain:
- Task start and end times
- All output information
- Error information and stack traces
- Execution process tracking
# Create background task
snow --task "Comprehensively analyze project code, generate architecture documentation and optimization suggestions"
# Continue other work
cd other-project
git pull
# Check results later
snow --task-list# Execute refactoring in background
snow --task "Refactor all components in src/components, use TS strict mode uniformly"
# Task will pause when detecting file deletion operations
# Open task manager to approve# Create analysis task
snow --task "Analyze Git commits from the last week, generate code quality report"
# After task completes
snow --task-list
# Select task → Enter → C → C to convert to session
# Then continue asking: "Which parts should be prioritized for optimization?"A: The task might be executing time-consuming operations. You can:
- Check logs to understand current progress
- Wait longer
- If confirmed stuck, delete the task and recreate it
A:
- Check logs to find the error cause
- Verify if the prompt is reasonable
- Confirm if system resources are sufficient
- Modify and recreate the task
A:
- Use
Spacekey to mark tasks to delete (shows marked count) - Press
Dkey - Press
Dagain to confirm batch deletion
A: Check if the command pattern has been added in Sensitive Commands Configuration.
A: There's no theoretical limit, but each task consumes system resources. It's recommended to control the number based on machine performance.
- Clear Task Goals - Provide clear and specific prompts when creating tasks, let the AI know what to do
- Regular Cleanup - Delete unneeded completed tasks to keep the list clean
- Use Marking - Batch mark unwanted tasks for one-time deletion
- Check Logs - For long-running tasks, check logs to understand progress
- Convert to Session - After important tasks complete, convert to session for easy follow-up queries and modifications
- Sensitive Commands Configuration - Configure commands requiring approval
- Headless Mode - Another non-interactive execution mode
- Command Panel Guide - Learn more management commands