task
The task command provides comprehensive task management functionality in kasl, including creating, displaying, updating, and organizing tasks. It supports various operations through subcommands and interactive interfaces, providing flexibility in how tasks are handled within the application.
kasl task [COMMAND]Running kasl task without a subcommand creates a task interactively.
Commands
Section titled “Commands”add - Add a task
Section titled “add - Add a task”kasl task add [OPTIONS]Options:
-n, --name <NAME>: Specifies the name of the task- Required for non-interactive creation
--comment <COMMENT>: Adds a comment to the task- Optional additional information about the task
-c, --completeness <COMPLETENESS>: Indicates the completeness of the task as a percentage (0-100)- 0% = not started, 100% = completed
--tags <TAGS>: Assign tags to the task- Comma-separated list of tags for categorization
- Tags are automatically created if they don’t exist
-t, --template <TEMPLATE>: Create from a named template-l, --from-template: Pick a template interactively
Without --name (or a full set of non-interactive options), kasl task add prompts interactively. Outside an interactive terminal it errors instead of hanging: “task name is required; pass –name outside an interactive terminal” - so it’s safe to call from scripts as long as --name is provided.
list - List tasks
Section titled “list - List tasks”kasl task list [OPTIONS]Options:
-a, --all: List tasks from every date, not just today--tag <TAG>: Only tasks carrying this tag
show - Show tasks by id
Section titled “show - Show tasks by id”kasl task show <ID>...Arguments:
<ID>...: One or more task ids to show
edit - Edit a task by id, or several interactively
Section titled “edit - Edit a task by id, or several interactively”kasl task edit [ID]Arguments:
[ID]: Task id to edit; omit to pick several interactively
remove - Remove tasks by id, or all of today’s
Section titled “remove - Remove tasks by id, or all of today’s”kasl task remove [OPTIONS] [ID]...Arguments:
[ID]...: Task ids to remove
Options:
--today: Remove every task recorded for today-y, --yes: Remove without asking for confirmation
find - Find incomplete tasks and import from GitLab/Jira
Section titled “find - Find incomplete tasks and import from GitLab/Jira”kasl task find- Shows a spinner while searching incomplete local tasks, today’s Jira issues, and GitLab commits
- Presents a single consolidated MultiSelect (incomplete tasks first, then a separator, then Jira/GitLab)
- Filters out tasks already logged today, near-duplicate names, and names from
task_discovery.ignore_names - After import selection, optionally add items to the persistent ignore list
- Selected incomplete tasks prompt for an updated completeness percentage before insert
Examples
Section titled “Examples”Basic Task Operations
Section titled “Basic Task Operations”# Create a new taskkasl task add --name "New Task" --comment "This is a test task" --completeness 50
# Create task with tagskasl task add --name "Fix bug" --tags "urgent,backend" --completeness 0
# Display today's taskskasl task list
# Display all taskskasl task list --all
# Display tasks with specific tagkasl task list --tag "urgent"Interactive Operations
Section titled “Interactive Operations”# Find and update incomplete taskskasl task find
# Show specific taskskasl task show 1
# Edit specific taskkasl task edit 1
# Edit several tasks interactivelykasl task edit
# Create task from templatekasl task add --from-template
# Use specific templatekasl task add --template "daily-standup"Task Management
Section titled “Task Management”# Remove specific taskskasl task remove 1 2 3
# Remove specific tasks without confirmationkasl task remove 1 2 3 -y
# Remove all today's taskskasl task remove --today
# Remove all today's tasks without confirmationkasl task remove --today -yUse Cases
Section titled “Use Cases”Daily Task Management
Section titled “Daily Task Management”# Create today's taskskasl task add --name "Daily standup" --template "daily-standup"kasl task add --name "Code review" --tags "urgent,backend"kasl task add --name "Team meeting" --tags "meeting"
# Review and update progresskasl task listkasl task find
# Complete finished taskskasl task edit 1Project Organization
Section titled “Project Organization”# Create project-specific taskskasl task add --name "Frontend bug fix" --tags "frontend,bug,urgent"kasl task add --name "API documentation" --tags "backend,documentation"
# Filter by projectkasl task list --tag "frontend"kasl task list --tag "backend"Template Usage
Section titled “Template Usage”# Create templates for common taskskasl template add --name "bug-fix"kasl template add --name "meeting"
# Use templates to create taskskasl task add --template "bug-fix" --name "Fix login issue"kasl task add --template "meeting" --name "Client call"Scripting
Section titled “Scripting”Because add, remove, and their siblings are dedicated subcommands with their own flags, they can be called from scripts without triggering an interactive prompt as long as the required arguments are supplied:
# Non-interactive creationkasl task add --name "Nightly build check" --completeness 0
# Non-interactive cleanupkasl task remove --today -ySample Output
Section titled “Sample Output”Task List
Section titled “Task List”+---+----+----------+------------------+------------------+-------------+------------------+| # | ID | TASK ID | NAME | COMMENT | COMPLETENESS| TAGS |+---+----+----------+------------------+------------------+-------------+------------------+| 1 | 1 | 0 | Daily standup | Team sync | 100% | meeting || 2 | 2 | 0 | Code review | Review PR #123 | 75% | urgent || 3 | 3 | 0 | Bug fix | Fix login issue | 0% | bug, urgent || 4 | 4 | 0 | Documentation | Update API docs | 25% | docs |+---+----+----------+------------------+------------------+-------------+------------------+Interactive Task Selection
Section titled “Interactive Task Selection”Select task to edit:1. Daily standup (100%)2. Code review (75%)3. Bug fix (0%)4. Documentation (25%)
Enter task number: 2
Editing task: Code reviewCurrent completeness: 75%
New completeness (0-100): 100New comment (press Enter to keep current): Review completed
✅ Task updated successfully!Integration with Other Commands
Section titled “Integration with Other Commands”The task command works with other kasl commands:
tag: Create and manage tags for task categorizationtemplate: Use templates for quick task creationreport: View tasks in daily and monthly reportsexport: Export task data for external analysis
Best Practices
Section titled “Best Practices”Task Organization
Section titled “Task Organization”- Use descriptive names: Clear, specific task names
- Add helpful comments: Detailed descriptions for complex tasks
- Use tags consistently: Establish tag conventions for your projects
- Update progress regularly: Keep task completeness current
Workflow Integration
Section titled “Workflow Integration”- Create tasks at the start: Plan your day with task creation
- Use templates: Save time with reusable task templates
- Review regularly: Check task status throughout the day
- Complete tasks promptly: Mark tasks as done when finished
Data Management
Section titled “Data Management”- Regular cleanup: Remove completed tasks periodically
- Use filters: Leverage tag and date filters for organization
- Backup data: Export tasks before major cleanup operations
- Monitor patterns: Review task completion patterns for insights