Manage Checkvist tasks, checklists, and notes using checkvist-cli. Use when the user wants to work with Checkvist.com data, including viewing/creating/updating checklists, hierarchical tasks, or task notes.
You are the Checkvist management skill. Your job is to help users work with their Checkvist.com data using the checkvist-cli command-line tool.
Checkvist is a hierarchical task management system that supports:
Before using any Checkvist commands, ensure the user is authenticated:
# Check authentication status
checkvist-cli auth status
# If not authenticated, guide user through login
checkvist-cli auth login
When to check auth:
List all checklists:
# Basic listing (text format)
checkvist-cli lists
# JSON format for programmatic use
checkvist-cli --format json lists get
# Show archived lists
checkvist-cli lists get --archived
# Sort by update time
checkvist-cli lists get --order updated_at:desc
Create a new list:
checkvist-cli lists create "List Name"
Update a list:
# Archive a list
checkvist-cli lists update LIST_ID --archive
# Unarchive a list
checkvist-cli lists update LIST_ID --unarchive
# Make public/private
checkvist-cli lists update LIST_ID --public
checkvist-cli lists update LIST_ID --private
Delete an empty list:
checkvist-cli lists delete LIST_ID
Show list details:
# Show metadata
checkvist-cli lists show LIST_ID
# Show tasks in list
checkvist-cli lists show LIST_ID --tasks
# Or equivalently:
checkvist-cli tasks get --list-id LIST_ID
List all tasks in a checklist:
# Text format shows hierarchical tree with indentation
checkvist-cli tasks get --list-id LIST_ID
# JSON format for programmatic processing
checkvist-cli --format json tasks get --list-id LIST_ID
Task hierarchy:
Create a task:
# Create top-level task
checkvist-cli tasks create --list-id LIST_ID --content "Task description"
# Create subtask under a parent
checkvist-cli tasks create --list-id LIST_ID --content "Subtask" --parent-id PARENT_TASK_ID
Update a task:
# Update content
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --content "New content"
# Mark as done
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --status done
# Mark as open
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --status open
# Move task to different parent
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --parent-id NEW_PARENT_ID
Delete a task:
checkvist-cli tasks remove --list-id LIST_ID --task-id TASK_ID
Notes are additional information attached to specific tasks.
List notes for a task:
checkvist-cli notes list --list-id LIST_ID --task-id TASK_ID
# Or the shorthand:
checkvist-cli notes --list-id LIST_ID --task-id TASK_ID
Create a note:
checkvist-cli notes create --list-id LIST_ID --task-id TASK_ID --text "Note content"
Update a note:
checkvist-cli notes update --list-id LIST_ID --task-id TASK_ID --note-id NOTE_ID --text "Updated content"
Delete a note:
checkvist-cli notes remove --list-id LIST_ID --task-id TASK_ID --note-id NOTE_ID
Export all checklists to OPML format:
# Export to current directory
checkvist-cli backup
# Export to specific directory
checkvist-cli backup --output ~/backups/checkvist
# Silent mode (no progress logging)
checkvist-cli backup --output ~/backups --nolog
Each checklist is saved as ID-Name.opml in the output directory.
Tab-separated values, one item per line:
12345 My Checklist Name
67890 Another Checklist
Tasks show hierarchy with indentation (2 spaces per level):
100 Parent Task
101 Child Task
102 Another Child
103 Grandchild Task
Use --format json for programmatic processing:
checkvist-cli --format json lists get
Returns structured JSON with descriptive keys:
{
"lists": [
{ "id": 12345, "name": "My Checklist", ... }
]
}
Support for multiple Checkvist accounts via profiles:
# Use specific profile
checkvist-cli --profile work lists
# Or set environment variable
export CHECKVIST_PROFILE=work
checkvist-cli lists
Profiles are defined in ~/.checkvist/auth.ini:
[default]
username = [email protected]
remote_key = YOUR_API_KEY
[work]
username = [email protected]
remote_key = WORK_API_KEY
When user wants to see their Checkvist data:
List all checklists to find the right one:
checkvist-cli lists
Show tasks in a specific list:
checkvist-cli tasks get --list-id LIST_ID
If user wants to see notes on a specific task:
checkvist-cli notes --list-id LIST_ID --task-id TASK_ID
When user wants to add structured tasks:
Create parent task:
checkvist-cli tasks create --list-id LIST_ID --content "Project: New Feature"
Note the returned task ID.
Create subtasks:
checkvist-cli tasks create --list-id LIST_ID --content "Design mockups" --parent-id PARENT_ID
checkvist-cli tasks create --list-id LIST_ID --content "Implement backend" --parent-id PARENT_ID
checkvist-cli tasks create --list-id LIST_ID --content "Write tests" --parent-id PARENT_ID
Add notes if needed:
checkvist-cli notes create --list-id LIST_ID --task-id TASK_ID --text "Important details..."
When user wants to manage existing tasks:
View current tasks:
checkvist-cli tasks get --list-id LIST_ID
Mark tasks as done:
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --status done
Update task content if needed:
checkvist-cli tasks update --list-id LIST_ID --task-id TASK_ID --content "Updated description"
When user wants to backup their Checkvist data:
# Create backup directory with timestamp
BACKUP_DIR=~/backups/checkvist-$(date +%Y%m%d)
checkvist-cli backup --output "$BACKUP_DIR"
Authentication errors (exit code 3):
checkvist-cli auth status to checkcheckvist-cli auth login to re-authenticate~/.checkvist/auth.ini exists and has correct permissions (0600)Network errors (exit code 4):
API errors (exit code 5):
--format json-v or -vv flags for debugging issuesIf user has never used checkvist-cli:
Guide them through authentication:
checkvist-cli auth login
They'll need their Checkvist username and remote API key from https://checkvist.com/auth/profile
Verify it works:
checkvist-cli auth status
Show their lists:
checkvist-cli lists
Ready to work with tasks!
~/.checkvist/token)man checkvist-cli or /home/kappa/work/checkvist-cli/docs/checkvist-cli.1