--- name: vikunja-tasks description: Manage tasks in Connor's Vikunja instance using the vik CLI tool. Use this skill whenever Connor wants to create, view, update, complete, or delete tasks — including phrasing like "add a task," "what's on my plate," "mark that done," "remove that task," "show me what's due," or any request involving task tracking, to-do items, or his personal task list. --- # Vikunja Task Management Connor manages tasks via a self-hosted Vikunja instance at tasks.connorrhodes.com, accessed through the `vik` CLI tool. Always use `vik` for task operations — never navigate to the web UI or use the API directly. ## Quick Reference | Goal | Command | |------|---------| | See today's tasks | `vik task today` | | See upcoming tasks | `vik task upcoming [--days N]` | | See all tasks | `vik task list` | | Find a task | `vik task get ` | | Search tasks | `vik task search ` | | Create a task | `vik task create "Title" [options]` | | Update a task | `vik task update [options]` | | Mark done | `vik task update --done` | | Delete a task | `vik task delete ` | --- ## Creating Tasks ```bash vik task create "Task title" ``` **Options:** - `--project ID` — project to add to (default: 1) - `--label LABEL` — assign a label (creates it if it doesn't exist) - `--desc TEXT` — task description (overrides clipboard) - `--no-clip` — skip auto-populating description from clipboard URL **Date syntax in the title** (parsed automatically, removed from final title): - `s+N` — start date N days from now - `d+N` — due date N days from now Examples: ```bash vik task create "Review draft proposal" vik task create "Follow up with vendor d+3" vik task create "Prep for demo s+1 d+4" --label work vik task create "Read article" --no-clip ``` > Note: if there's a URL in the clipboard, `vik` will automatically embed it as a markdown link in the description unless `--no-clip` is passed. --- ## Reading Tasks ```bash vik task today # tasks with start or due date today vik task today --due-only # only tasks due today (ignores start date) vik task upcoming # next 7 days vik task upcoming --days 14 # next 14 days vik task upcoming --due-only vik task list # all tasks vik task get 42 # fetch task by ID vik task get "vendor" # search by title substring (returns matches) vik task search "follow up" # full-text search across all fields ``` When Connor asks "what do I have today" or "what's coming up," run `vik task today` or `vik task upcoming` and present the output. --- ## Updating Tasks ```bash vik task update --title "New title" vik task update --desc "Updated description" vik task update --done vik task update --undone ``` At least one field is required. `--done` and `--undone` are mutually exclusive. If Connor says something like "mark that done" or "complete task 7," use `vik task update --done`. --- ## Deleting Tasks ```bash vik task delete ``` No confirmation prompt — deletion is immediate. Confirm with Connor before deleting unless he was explicit about it. --- ## Labels ```bash vik label list vik label create "urgent" --color ff0000 ``` Labels are created automatically when referenced in `vik task create --label`, so you rarely need to create them manually. --- ## Workflow Tips - If Connor gives a title but no ID, use `vik task get "title"` to find the task first, then act on the result. - Task IDs are integers shown in list/today/upcoming output. - When creating a task with a URL context (e.g., "add this link as a task"), let clipboard auto-populate work — don't use `--no-clip`. - For tasks with relative deadlines ("due Friday," "starts tomorrow"), convert to `d+N` / `s+N` before passing to the CLI.