Common questions and solutions for TaskFlow users.
- General Questions
- Data & Storage
- Performance
- Keybindings & Input
- Time Tracking
- Sync & Backup
- Troubleshooting
Configuration files are located at:
- Linux/macOS:
~/.config/taskflow/ - Windows:
%APPDATA%\taskflow\config\
Key files:
config.toml- General settingskeybindings.toml- Custom key mappingsthemes/- Color theme files
Yes! TaskFlow works in any terminal that supports ANSI colors and UTF-8, including:
- SSH sessions
- tmux/screen
- Remote development environments
- Docker containers
Just ensure your terminal is configured for UTF-8.
TaskFlow is designed for single-user use. For multi-user scenarios, each user should have their own data file. The application doesn't include user authentication or access control.
- Due date: When the task should be completed
- Scheduled date: When you plan to work on the task
Example: A report due Friday could be scheduled for Wednesday.
Default data locations:
- Linux:
~/.local/share/taskflow/tasks.json - macOS:
~/Library/Application Support/taskflow/tasks.json - Windows:
%APPDATA%\taskflow\tasks.json
Override with: taskflow --data /path/to/your/data.json
| Backend | Best For |
|---|---|
| JSON (default) | Most users, < 1000 tasks |
| YAML | Manual editing, human-readable |
| SQLite | Large datasets (1000+ tasks), performance |
| Markdown | Git integration, external editing |
- Export current tasks: Press
Ctrl+eto export CSV - Start with new backend:
taskflow --backend sqlite --data ~/tasks.db - Import CSV: Press
Iand select your file
- JSON/YAML: Yes, but close TaskFlow first to avoid conflicts
- SQLite: Use a SQLite browser, but be careful with schema
- Markdown: Yes, each task is a separate
.mdfile
After external edits, restart TaskFlow to reload data.
No, TaskFlow stores data in plain text. For sensitive tasks:
- Store data on an encrypted drive
- Use encrypted cloud storage
- Consider encrypting the data file with external tools
-
Switch to SQLite backend - Best for 1000+ tasks:
taskflow --backend sqlite --data ~/tasks.db -
Hide completed tasks - Press
cto toggle -
Filter by project - View one project at a time
-
Increase/disable auto-save:
# In config.toml auto_save_interval = 600 # 10 minutes, or 0 to disable
-
Use project filters instead of viewing all tasks
Tested performance thresholds:
- JSON: Good up to ~5,000 tasks
- YAML: Good up to ~3,000 tasks
- SQLite: Good up to 100,000+ tasks
- Markdown: Good up to ~500 tasks (file I/O overhead)
TaskFlow keeps all tasks in memory. Approximate usage:
- ~1KB per task (base)
- +100 bytes per tag
- +500 bytes per time entry
- +2KB for tasks with subtasks
For 10,000 tasks: expect ~15-20MB.
Common causes:
- Terminal intercepts the key - Some terminals capture
Ctrl+combinations - SSH/tmux issues - May require configuration
- Conflicting software - Desktop shortcuts may override
Solutions:
- Check terminal settings for key handling
- Use alternative bindings (customize with
Ctrl+k) - In tmux, ensure
set -g mouse offor prefix keys properly
- Press
Ctrl+kto open keybindings editor - Press
R(capital) to reset all bindings - Press
Ctrl+sto save
Or delete ~/.config/taskflow/keybindings.toml and restart.
TaskFlow uses vim-style navigation by default:
j/kfor up/downh/lfor sidebar/listg/Gfor first/last
Customize additional mappings in the keybindings editor.
This is intentional—time tracking persists across restarts. To fix:
- Press
Lto open time log - Select the incorrect entry
- Press
eto edit times - Adjust start/end times
- Select the completed task
- Press
Lfor time log - Press
ato add a manual entry - Enter start time, end time, or duration
Time data is included in:
- CSV exports (
Ctrl+e) - Reports view (Dashboard → Time panel)
- Markdown/HTML reports (
Ctrl+p,Ctrl+h)
TaskFlow doesn't have built-in sync. Options:
-
Cloud storage sync:
taskflow --data ~/Dropbox/taskflow/tasks.jsonWorks with Dropbox, Google Drive, iCloud Drive, OneDrive.
-
Git with Markdown backend:
taskflow --backend markdown --data ~/git/tasks/ cd ~/git/tasks && git add -A && git commit -m "sync"
-
Manual sync: Copy data file between devices.
Warning: Avoid opening TaskFlow on multiple devices simultaneously with shared storage—data conflicts may occur.
Recommended backup strategies:
-
Automated file backup:
cp ~/.local/share/taskflow/tasks.json ~/backups/tasks-$(date +%Y%m%d).json
-
Periodic CSV export: Press
Ctrl+eweekly -
Version control: Use Markdown backend with Git
-
Cloud storage: Store in synced folder
If you have:
- A backup file → Restore it to the data location
- A CSV export → Start fresh and import with
I - Markdown files → Point TaskFlow to the directory
Without backups, data cannot be recovered.
Check Rust version:
rustc --version # Needs 1.87+Check for data corruption:
# Backup and try with fresh data
mv ~/.local/share/taskflow ~/.local/share/taskflow.bak
taskflowCheck terminal compatibility:
- Ensure UTF-8 support
- Try a different terminal emulator
- Resize terminal: Sometimes fixes rendering
- Check font: Use a monospace font with Unicode support
- Check terminal size: Minimum ~80x24 recommended
- Try different terminal: Some have better rendering
- Check write permissions on data file/directory
- Verify disk space is available
- Check for file locks (close other processes)
- Manual save: Press
Ctrl+s
For CSV:
- Ensure header row:
title,status,priority,due_date,tags - Use quotes for fields with commas
- Date format:
YYYY-MM-DD
For ICS:
- Must be valid iCalendar format
- Only VTODO items are imported
Avoid these in tags:
- Commas (used as separator)
- Spaces (use hyphens:
#my-tag) - Quotes
Valid: #work, #high-priority, #2025
Check that:
- Recurrence is set (shows
↻) - Original task has a due date
- You're completing (not deleting) the task
Undo limitations:
- Maximum 50 actions in history
- Some operations are combined (completing parent + children)
- External changes (file edits) aren't tracked
Open an issue at: https://github.com/anthropics/claude-code/issues
Include:
- TaskFlow version
- Operating system
- Steps to reproduce
- Error messages (if any)
Use the same issue tracker with a "feature request" label.
Check the GitHub Discussions tab for community Q&A.
For complete documentation, see USER_MANUAL.md