Taskwarrior — консольный менеджер задач, который хранит данные локально и не требует браузера, аккаунта или облачного сервиса. Он не пытается выглядеть как настольное приложение: это набор команд, фильтров и отчётов, из которых можно собрать управляемый рабочий процесс. Разберём установку, базовые операции, фильтры, повторяющиеся задачи, контексты и резервное копирование.
Установка и первый запуск
В Debian, Ubuntu и Linux Mint пакет доступен в штатных репозиториях. В Fedora и Arch Linux пакет называется task.
sudo apt update
sudo apt install taskwarrior
task --version
task add "Проверить работу Taskwarrior" +test
При первом запуске утилита создаёт файл ~/.taskrc и каталог ~/.task. В Taskwarrior 3.x задачи хранятся в SQLite-базе taskchampion.sqlite3, а не в отдельных файлах, поэтому вручную редактировать содержимое каталога не нужно. Проверить состояние можно командой task diag: она показывает версию, пути и параметры окружения.
Задачи, проекты и теги
Задача описывается одной строкой, а метаданные добавляются прямо в команде. Проект задаётся через project:, теги — через +, срок — через due:, приоритет — через priority:.
task add "Подготовить квартальный отчёт" project:work.reports +отчёт due:2026-11-12 priority:H
task list
task 1 start
task 1 annotate "Согласовать структуру с коллегами"
task 1 done
Проекты бывают вложенными: work.reports входит в work, и фильтр по родительскому проекту охватывает дочерние. Теги удобны для сквозных признаков вроде +срочно или +ждёт-ответа. Комбинация фильтров означает логическое «и»: task project:work +срочно list покажет только задачи, подходящие под оба условия.
Числовые идентификаторы удобны при ручной работе, но в скриптах на них лучше не полагаться: после удаления или очистки задачи нумерация может измениться. Надёжнее получить UUID (потребуется jq):
task 1 export | jq -r '.[0].uuid'
task 1 info
task 1 modify due:2026-11-20 priority:M +срочно
task 1 delete
info показывает все атрибуты, включая историю изменений и аннотации. delete запрашивает подтверждение; в автоматизированных сценариях его отключают параметром rc.confirmation=no.
Фильтры и поиск
task next
task due.before:today+7 list
task project:work +срочно list
task /отчёт/ list
task status:completed limit:10 list
Отчёт next сортирует задачи по urgency — внутренней оценке срочности, которая учитывает приоритет, срок, проект и теги. Фильтры понимают относительные даты: due:today, due:tomorrow, due.before:today+7. Регулярное выражение в косых скобках ищет по описанию. Параметр limit: ограничивает вывод, что полезно для длинных списков и медленных терминалов. Учтите, что due:today сравнивает точное время: чтобы увидеть все задачи на сегодня, надёжнее использовать диапазон due.after:yesterday and due.before:tomorrow.
Повторяющиеся задачи
Регулярные дела не нужно создавать заново: Taskwarrior сам порождает следующее вхождение после завершения текущего.
task add "Оплатить хостинг" project:infra due:2026-12-01 recur:monthly until:2027-11-30
task add "Проверить бэкапы" project:infra due:2026-11-08 recur:weekly
task add "Сдать отчёт" project:work due:2026-11-30 recur:monthly
task next
recur: принимает daily, weekly, monthly, yearly, а также интервалы вида 2w и weekdays. until: задаёт последнюю дату, после которой новые копии не создаются. Если изменить срок у текущего вхождения, следующее может унаследовать новую дату — проверяйте это на тестовой задаче.
Контексты
Контекст — это именованный фильтр, который автоматически применяется ко всем отчётам. Он помогает не смешивать рабочие и домашние дела.
task context define work project:work
task context define home +дом
task context work
task context show
task context none
После активации контекста task list показывает только рабочие задачи, а task add всё равно требует явного указания проекта: контекст фильтрует вывод, но не подставляет атрибуты. Команда task context none снимает ограничение. Список сохранённых контекстов хранится в .taskrc.
Контексты удобно комбинировать с отчётами: например, держать активным work в рабочее время и переключаться на home вечером. При этом задачи, не попавшие в фильтр, останутся видны только вне контекста, поэтому для дел вроде «продлить домен» лучше завести отдельный проект infra, а не оставлять их без категории.
Свои отчёты в .taskrc
Стандартных отчётов обычно не хватает. Собственный отчёт описывается четырьмя строками в ~/.taskrc, после чего вызывается как обычная команда.
report.work.columns=id,priority,project,due.relative,description
report.work.labels=ID,Приоритет,Проект,Срок,Описание
report.work.filter=project:work and status:pending
report.work.sort=due+
default.command=next
weekstart=monday
Теперь task work показывает только незавершённые рабочие задачи, отсортированные по сроку. Проверить действующие значения можно через task show report.work.columns. Файл .taskrc читается при каждом запуске, поэтому перезапуск не нужен. Полезно сразу включить weekstart=monday и default.command=next, чтобы команда без аргументов показывала осмысленный список.
Данные и резервные копии
mkdir -p ~/backup
task export > ~/backup/tasks-$(date +%F).json
task export project:work | jq 'length'
task import ~/backup/tasks-2026-11-05.json
task diag
task export выдаёт массив JSON, который удобно хранить в Git или отправлять в архив. task import принимает такой же массив и добавляет задачи, не удаляя существующие. Копировать сам SQLite-файл на работающей системе рискованно: без корректного снимка можно получить несогласованную базу. Если нужен именно файловый бэкап, сначала остановите все процессы, которые пишут в базу, и копируйте каталог целиком.
В Taskwarrior 3.x синхронизация устроена через TaskChampion, поэтому старые руководства с отдельным taskserver стоит перепроверять под свою версию. Для одного компьютера достаточно локальной базы и регулярного экспорта.
Чек-лист внедрения
- Установите пакет и выполните
task diag, чтобы убедиться в корректности путей. - Заведите два-три проекта и договоритесь о смысле тегов.
- Настройте отчёт
nextи собственный отчёт для своей роли. - Добавьте повторяющиеся задачи для платежей и проверок.
- Настройте ежедневный экспорт в каталог, который попадает в резервную копию.
- Раз в месяц просматривайте завершённые задачи и удаляйте мусор.
Итог
Taskwarrior даёт предсказуемый текстовый интерфейс и полный контроль над данными. Начните с пяти команд — add, list, modify, done и export, — а фильтры и контексты подключайте по мере роста списка. Главное преимущество здесь не в количестве функций, а в том, что система остаётся быстрой, переносимой и понятной без графической оболочки.