117 lines
3.7 KiB
Markdown
117 lines
3.7 KiB
Markdown
---
|
|
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 <ID or partial title>` |
|
|
| Search tasks | `vik task search <query>` |
|
|
| Create a task | `vik task create "Title" [options]` |
|
|
| Update a task | `vik task update <ID> [options]` |
|
|
| Mark done | `vik task update <ID> --done` |
|
|
| Delete a task | `vik task delete <ID>` |
|
|
|
|
---
|
|
|
|
## 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 <ID> --title "New title"
|
|
vik task update <ID> --desc "Updated description"
|
|
vik task update <ID> --done
|
|
vik task update <ID> --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 <ID> --done`.
|
|
|
|
---
|
|
|
|
## Deleting Tasks
|
|
|
|
```bash
|
|
vik task delete <ID>
|
|
```
|
|
|
|
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.
|