Skip to content

Configuration Examples

Configuration setups for different use cases and preferences.

Personal Task Management

Minimal Setup

Simple configuration for individual use:

# ~/.TaskRepo/config

parent_dir: ~/tasks
default_priority: M
default_status: pending
default_assignee: '@alice'  # Auto-assign to yourself
sort_by:
  - due
  - priority

Use case: Single-user, straightforward task tracking

GTD (Getting Things Done)

Configuration optimized for GTD methodology:

parent_dir: ~/gtd
default_priority: M
default_status: pending
default_assignee: '@alice'
sort_by:
  - priority
  - due
  - created
cluster_due_dates: true  # Group by time buckets

Repositories: - tasks-inbox - Capture all new tasks here - tasks-work - Work-related tasks - tasks-personal - Personal tasks - tasks-someday - Future possibilities

Workflow:

# Capture
tsk add --repo inbox --title "Task idea"

# Clarify weekly
tsk list --repo inbox
tsk move 1 work
tsk move 2 personal
tsk move 3 someday

Priority-Focused

Emphasize priority over all else:

parent_dir: ~/tasks
default_priority: L  # Default to low, explicitly set higher
default_status: pending
sort_by:
  - priority
  - -modified  # Recently modified first within priority

Workflow:

# High-priority tasks always at top
tsk list

# Work on highest priority
tsk in-progress 1

Team Collaboration

Small Team (2-5 people)

Configuration for small collaborative team:

parent_dir: ~/team-tasks
default_priority: M
default_status: pending
default_github_org: 'YourTeam'
sort_by:
  - assignee:@alice  # Your tasks first
  - priority
  - due
cluster_due_dates: true

Repositories: - tasks-shared - Team-wide tasks - tasks-sprint - Current sprint work

Sync frequently:

# Morning sync
tsk sync --push

# Before standup
tsk sync

# End of day
tsk sync --push

Large Team (6+ people)

Configuration with team-specific repositories:

parent_dir: ~/work/tasks
default_priority: M
default_status: pending
default_github_org: 'YourOrg'
sort_by:
  - assignee:@alice
  - status
  - priority
  - due

Repositories: - tasks-team-frontend - Frontend team - tasks-team-backend - Backend team - tasks-team-devops - DevOps team - tasks-project-alpha - Cross-team project

Per-team workflows:

# Frontend team member
tsk list --repo team-frontend --assignee @alice

# Cross-team collaboration
tsk list --repo project-alpha --assignee @alice

Remote Team

Optimized for distributed team across timezones:

parent_dir: ~/remote-work/tasks
default_priority: M
default_status: pending
default_github_org: 'RemoteOrg'
sort_by:
  - status         # In-progress tasks first
  - assignee:@alice
  - priority
  - due
cluster_due_dates: true

Best practices: - Sync multiple times daily - Use detailed task descriptions - Link to relevant documentation - Set realistic due dates accounting for timezone differences

# Start of work day (any timezone)
tsk sync

# Regular syncs
tsk sync --push  # Every few hours

# Clear handoff notes in descriptions
tsk edit 5
# Add: "Completed X, next step is Y, blocker is Z"

Project Management

Single Project

Configuration for dedicated project:

parent_dir: ~/projects/project-alpha/tasks
default_priority: M
default_status: pending
default_github_org: 'ProjectAlpha'
sort_by:
  - project        # Group by subproject/phase
  - priority
  - due

Repositories: - tasks-project-alpha - Main repository

Project structure (using project field): - planning - Planning phase tasks - design - Design tasks - development - Implementation - testing - QA tasks - deployment - Release tasks

# View all planning tasks
tsk list --project planning

# Track development progress
tsk list --project development --status completed

Multiple Projects

Configuration managing several projects:

parent_dir: ~/all-projects/tasks
default_priority: M
default_status: pending
sort_by:
  - due
  - priority
cluster_due_dates: true

Repositories: - tasks-project-alpha - tasks-project-beta - tasks-project-gamma - tasks-consulting-client-x

Workflow:

# See all projects
tsk repos

# Focus on specific project
tsk list --repo project-alpha

# Cross-project view (all urgent tasks)
tsk list --priority H --sort due

Agile/Scrum

Configuration for Scrum methodology:

parent_dir: ~/scrum/tasks
default_priority: M
default_status: pending
default_github_org: 'ScrumTeam'
sort_by:
  - project        # Sprint/epic grouping
  - assignee
  - priority

Repositories: - tasks-backlog - Product backlog - tasks-sprint-current - Current sprint - tasks-technical-debt - Tech debt items

Project field usage: - sprint-12 - Sprint number - epic-auth - Epic/feature name

Sprint workflow:

# Sprint planning: move tasks from backlog
tsk list --repo backlog --priority H
tsk move 5,6,7,8 sprint-current
tsk edit 5,6,7,8 --project sprint-12

# Daily: view sprint tasks
tsk list --repo sprint-current --project sprint-12

# Sprint end: archive completed
tsk archive --repo sprint-current --project sprint-12

Academic Research

PhD Research

Configuration for doctoral research:

parent_dir: ~/research/phd/tasks
default_priority: M
default_status: pending
default_assignee: '@researcher'
sort_by:
  - due
  - priority
  - project

Repositories: - tasks-experiments - Lab work and experiments - tasks-writing - Papers and thesis - tasks-courses - Teaching duties - tasks-reading - Literature review

Tags: experiment, writing, review, teaching, admin

Workflow:

# Track experiments
tsk add --repo experiments \
  --title "Run protein analysis batch 5" \
  --tags experiment \
  --due tomorrow

# Writing tasks
tsk add --repo writing \
  --title "Revise introduction section" \
  --project paper-nature \
  --tags writing \
  --links https://docs.google.com/document/d/...

Lab Management

Configuration for research lab manager:

parent_dir: ~/lab/tasks
default_priority: M
default_status: pending
default_github_org: 'LabName'
sort_by:
  - assignee       # Group by researcher
  - project        # Then by project
  - due

Repositories: - tasks-lab-shared - Lab-wide tasks - tasks-project-x - Research project X - tasks-equipment - Equipment maintenance - tasks-admin - Administrative tasks

Track student/postdoc work:

# Assign tasks to researchers
tsk add --repo project-x \
  --title "Analyze dataset" \
  --assignees @student1 \
  --project experiment-5

# Review student progress
tsk list --assignee @student1 --status in-progress

Freelancing

Multiple Clients

Configuration for freelance work:

parent_dir: ~/freelance/tasks
default_priority: M
default_status: pending
sort_by:
  - due            # Deadline-driven
  - priority
  - project
cluster_due_dates: true

Repositories: - tasks-client-a - tasks-client-b - tasks-client-c - tasks-business - Business development, admin

Track billable work:

# Client work
tsk add --repo client-a \
  --title "Implement feature X" \
  --project website-redesign \
  --due "2025-11-15" \
  --links https://github.com/client-a/repo/issues/123

# Business tasks
tsk add --repo business \
  --title "Invoice client A" \
  --due "month end" \
  --tags billing

Consulting

Configuration for consulting practice:

parent_dir: ~/consulting/tasks
default_priority: M
default_status: pending
sort_by:
  - priority
  - due
  - project

Repositories: - tasks-proposals - RFP responses, proposals - tasks-active-projects - Current engagements - tasks-follow-ups - Client follow-ups

Project field: Client name and engagement type

# Proposal tracking
tsk add --repo proposals \
  --title "Prepare proposal for Corp X" \
  --project corp-x-rfp \
  --due "2025-11-05"

# Active project
tsk add --repo active-projects \
  --title "Deliver monthly report" \
  --project corp-y-monthly \
  --tags deliverable \
  --due "2025-11-30"

Software Development

Solo Developer

Configuration for individual developer:

parent_dir: ~/dev/tasks
default_priority: M
default_status: pending
default_assignee: '@dev'
default_github_org: 'DevUsername'
sort_by:
  - priority
  - due
  - project

Repositories: - tasks-app-a - Application A - tasks-app-b - Application B - tasks-learning - Learning and experimentation

Link to GitHub issues:

tsk add --repo app-a \
  --title "Fix issue #123" \
  --links https://github.com/user/app-a/issues/123 \
  --priority H \
  --tags bug

Open Source Maintainer

Configuration for open source project maintenance:

parent_dir: ~/opensource/tasks
default_priority: M
default_status: pending
default_github_org: 'ProjectName'
sort_by:
  - priority
  - due
  - assignee

Repositories: - tasks-project - Main project tasks - tasks-community - Community management - tasks-releases - Release planning

Tags: bug, feature, documentation, community, release

Triage workflow:

# Import GitHub issues as tasks
# (manual or scripted)
tsk add --repo project \
  --title "Issue #456: Feature request" \
  --links https://github.com/org/project/issues/456 \
  --tags feature

# Prioritize
tsk edit 10 --priority H

# Assign to contributors
tsk edit 11 --assignees @contributor1

Advanced Configurations

Time-Boxed Work

Emphasize due dates with clustering:

parent_dir: ~/tasks
default_priority: M
default_status: pending
sort_by:
  - due
  - priority
cluster_due_dates: true  # Group into time buckets

Result: Tasks grouped as "today", "tomorrow", "this week", etc., with priorities within each bucket.

Context-Based Work

Sort by project/context first:

parent_dir: ~/tasks
default_priority: M
default_status: pending
sort_by:
  - project        # Group by context
  - priority
  - due

Use case: Work on all tasks for a specific project/context at once.

Assignee-Focused

Your tasks always first:

parent_dir: ~/tasks
default_priority: M
default_status: pending
sort_by:
  - assignee:@alice   # Your tasks first
  - status            # In-progress before pending
  - priority
  - due

Use case: Shared repositories where you want to focus on your work.

Custom Editor

Use specific editor for descriptions:

parent_dir: ~/tasks
default_priority: M
default_status: pending
default_editor: 'code --wait'  # VS Code
# OR
default_editor: 'vim'           # Vim
# OR
default_editor: 'subl -w'       # Sublime Text

Usage:

tsk add  # Opens VS Code for description

Migration Scenarios

From TaskWarrior

Equivalent TaskRepo configuration:

parent_dir: ~/tasks
default_priority: M
default_status: pending
sort_by:
  - priority
  - due
  - created

Mapping: - TaskWarrior contexts → TaskRepo repositories - TaskWarrior projects → TaskRepo project field - TaskWarrior tags → TaskRepo tags - TaskWarrior urgency → TaskRepo priority

From Todoist

Todoist-like experience:

parent_dir: ~/tasks
default_priority: M
default_status: pending
sort_by:
  - due
  - priority
cluster_due_dates: true

Mapping: - Todoist projects → TaskRepo repositories - Todoist sections → TaskRepo project field - Todoist labels → TaskRepo tags - Todoist priority → TaskRepo priority (inverted: P1=H, P2=M, P3/P4=L)

From GitHub Issues

GitHub-centric configuration:

parent_dir: ~/github-tasks
default_priority: M
default_status: pending
default_github_org: 'YourOrg'
sort_by:
  - priority
  - due
  - project

Workflow: Keep TaskRepo tasks in sync with GitHub issues using links.

Next Steps