DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
FREEDOM251

Freedom251 › Blog › CLI

How to Install and Configure Taskwarrior 3 on Linux (2026 Guide)

By Freedom251 Team · · 11 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install Taskwarrior from your Linux distribution when you want the simplest setup, or build the upstream 3.5.0 release when you need that specific version. After installation, verify the executable, let the first-run prompt create the standard files, inspect the resulting configuration, and run a small add–view–complete workflow. A Taskwarrior 2 installation needs a separate migration because version 3 changed its storage format and no longer uses the old taskd synchronization system.

Taskwarrior’s official getting-started documentation describes it plainly: “Taskwarrior manages your task list from your command line.” The commands below take you from an empty shell to a working local task list without setting up synchronization unless you actually need multiple devices.

As an Amazon Associate I earn from qualifying purchases.

Choose an installation route

There are two sensible ways to install Taskwarrior on Linux. A distribution package is quickest and automatically uses your system’s package-management conventions. A source build follows the upstream release directly but requires a compiler, CMake, and the dependencies listed by that release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Route Best for What to expect
Distribution package Most users and single-machine setups One command, integrated updates, and a version selected by your distribution. The package name and version can differ between distributions and releases.
Upstream source build Users who need a particular upstream release or whose repository is older Build Taskwarrior 3.5.0 yourself with CMake, install it, and ensure the resulting executable is on PATH.

The official download page currently lists Taskwarrior 3.5.0, released on 2026-08-16. That is upstream metadata, not a promise that your distribution ships the same build. If the exact version matters, inspect the package metadata offered by your distribution before installing.

Install the distribution package

Use the command for your distribution. Run it in a terminal account that can use sudo; your package manager may ask for your password and confirmation.

Debian or Ubuntu

sudo apt-get install taskwarrior

Debian-family repositories may carry a release older or newer than the upstream listing. If you need a particular version, check the candidate and available versions in your configured repositories before accepting the transaction.

Fedora

sudo dnf install task

Fedora commonly uses the short package name task, even though the command you run afterward is also task.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Arch Linux

sudo pacman -S task

Allow the package manager to resolve its normal dependencies. The repository version follows Arch’s packaging schedule rather than the date of the upstream 3.5.0 release.

openSUSE

sudo zypper install taskwarrior

As with the other distributions, the repository’s package metadata is authoritative for the version that will actually be installed.

Build Taskwarrior 3.5.0 from source

Choose a source build when you deliberately want the upstream release listed as 3.5.0 or when your distribution does not provide a suitable package. Download the task-3.5.0.tar.gz release archive from the project, then run the following commands from the directory containing it:

  1. Extract the archive:

    tar xzvf task-3.5.0.tar.gz
  2. Enter the extracted source directory:

    cd task-3.5.0
  3. Configure a separate release build directory with CMake:

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
  4. Compile the project:

    cmake --build build
  5. Install the compiled program:

    sudo cmake --install build

The release’s INSTALL instructions define the current compiler and library requirements. The getting-started documentation specifically calls out the UUID development library for source builds; depending on the distribution, the package is named libuuid-dev or uuid-dev. Install the name used by your distribution before rerunning CMake if configuration reports that UUID headers or libraries are missing.

After installation, confirm that the directory containing the new executable is on your shell’s PATH. If your shell still finds an older system copy, inspect your path order and start a new shell after changing it. Do not delete the distribution copy until you have confirmed which executable you intend to maintain.

Verify the executable and version

Run:

task --version

A package installation may print a distribution-maintained version, while a source installation should identify the upstream release you built. A mismatch with 3.5.0 is not automatically an error: it usually means your repository has chosen a different package version. Decide whether that version meets your needs before replacing it with a source build.

If the shell reports that task cannot be found, the installation either failed or the executable is not on PATH. Recheck the package transaction or the source-build install step, then open a new shell and run the version command again. Keep one known-good executable on the path while troubleshooting so that configuration files are not tested against an unintended binary.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand the first run

Taskwarrior normally reads user configuration from ~/.taskrc and stores task data under ~/.task. When it cannot find configuration or task data, the first invocation asks whether it may create them. Answering yes lets Taskwarrior create the normal files and directories; declining leaves you to provide them yourself.

The minimal configuration is only:

data.location=~/.task

Other settings have defaults, so avoid copying a large configuration from an unrelated machine during first setup. Start with the generated files, verify that commands work, and add settings one at a time.

Know where configuration and data come from

Taskwarrior can be redirected without editing the default files. These variables and command-line forms are useful when testing, scripting, or keeping separate task collections:

  • TASKRC selects an alternate configuration file.
  • TASKDATA changes the task-data directory.
  • If ~/.taskrc does not exist, Taskwarrior checks $XDG_CONFIG_HOME/task/taskrc.
  • A one-command override uses the form task rc.name=value ...; it affects that invocation rather than permanently changing the file.

Taskwarrior 3.5.0 stores its local database as taskchampion.sqlite3 inside the task-data directory. Treat that database as an application-managed file, not as a text export that can be edited safely by hand.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Understand configuration precedence

When a command appears to use the wrong settings, identify which layer supplied each value. The normal user file is ~/.taskrc. If it is absent, Taskwarrior checks $XDG_CONFIG_HOME/task/taskrc. An explicitly set TASKRC points to a different configuration file, while TASKDATA redirects the data directory. Finally, an rc.name=value argument applies an override only to that command invocation.

This precedence explains why a setting can appear to “revert” when you open a new terminal: a temporary rc. override was never written to disk. It also explains why two shells can show different task lists if their environment variables point to different locations. Use task show in the same shell where a problem occurs, and compare the environment and selected files before changing anything.

Inspect and change settings safely

Use task show to see the effective settings. It also checks for unrecognized settings, so it can expose a misspelled option or an obsolete setting copied from an older configuration.

Persist a setting with:

task config name value

Replace name and value with the setting you intend to store. The command writes an override to the active configuration file. To remove an override and return that setting to its default, omit the value:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
task config name

Removing an override is different from assigning an empty value. An empty value is still an explicit setting and may have a different meaning from the default, so use the form that matches your intent.

Early configuration usually needs only choices you understand, such as a preferred editor, a theme include, or project defaults. The official manual documents include files for themes and other configuration fragments; add those after the basic installation works and check the result with task show.

Run a disposable smoke test

The fastest end-to-end check is to create one temporary task, display it, complete it, and confirm that the list is clean. Run these commands in order:

  1. Create a test item:

    task add Test Taskwarrior installation

    Taskwarrior prints an identifier for the new task. Save that identifier for the next command.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  2. Display pending tasks:

    task next

    The next report shows the item you just created. When you run Taskwarrior without an explicit command, next is the default report.

  3. Complete the test item, replacing <ID> with the identifier printed during creation:

    task <ID> done
  4. Display the remaining task list:

    task

Use a disposable description rather than a real deadline or project. Completing it keeps tutorial data out of your working list; deleting a disposable item is also possible if you prefer not to retain completed history.

What a successful local setup looks like

A clean first installation has four observable properties. First, task --version returns a version and does not resolve to an unintended older executable. Second, the active configuration points to the data location you expect, normally ~/.task. Third, task show reports effective settings without unknown-option warnings. Fourth, the add, next, complete, and default-report commands all operate on the same list.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check these properties before adding themes, custom reports, hooks, or synchronization. Keeping the first state simple makes later problems easier to isolate: if a newly added include or environment variable changes behavior, you know exactly which change introduced it.

Move from Taskwarrior 2 to Taskwarrior 3

Do not treat this as a simple in-place binary replacement. Version 2 and version 3 use different storage and synchronization assumptions:

Area Taskwarrior 2 Taskwarrior 3
Local records Task records in .data files SQLite database named taskchampion.sqlite3 in the task-data directory
Synchronization Could use the older taskd system Does not interface with taskd; use a supported version-3 approach instead
Upgrade action Existing files remain in the version-2 format Import the old data into the version-3 database

Make a separate backup of your Taskwarrior 2 configuration and data before installing or importing anything. Preserve the backup until you have opened the imported list and confirmed that important tasks, projects, tags, dates, and completion states are present.

The official upgrade guidance requires Taskwarrior 3.3.0 or later for the import procedure. With the version-2 data available to the version-3 executable, run:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
task import-v2 rc.hooks=0

The rc.hooks=0 override disables hooks for that invocation, as required by the documented import procedure. Run the command in the environment that points to the data you intend to import; check TASKRC, TASKDATA, and task show first if you maintain more than one configuration.

After importing, run the smoke-test reports and inspect representative tasks before removing the old installation or backup. If you previously synchronized through taskd, plan a new synchronization method separately; installing version 3 does not preserve that server protocol.

Add synchronization only when you need it

A single-device user can remain entirely local. Synchronization becomes relevant when the same task list must be available on multiple replicas. Taskwarrior documents two supported directions: a cloud-storage provider or a TaskChampion sync server.

The documented model requires a sync on both ends for a change to travel. After changing a task on the source device, run task sync; then run task sync on the destination device. The exact server or provider setup is a separate decision from installing the command-line client.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not place the Taskwarrior 3 database directory under ordinary file synchronization. The documentation specifically warns that tools such as Syncthing or rsync can appear to work while causing database corruption, and this arrangement is unsupported. Synchronize through a documented Taskwarrior/TaskChampion method rather than copying taskchampion.sqlite3 between machines.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common setup problems

The installed version is not 3.5.0

Distribution repositories select their own package versions. Compare the output of task --version with the version offered by your package metadata. If you require the upstream 3.5.0 release, use the source-build steps and verify that the newly installed executable precedes the packaged one on PATH.

Taskwarrior keeps using an unexpected data directory

Check whether TASKDATA is set and inspect the active configuration with task show. Also check for an alternate file selected by TASKRC, and remember that the XDG configuration path is considered only when ~/.taskrc is absent. A one-command rc.name=value override can also make a test appear different from your persistent configuration.

A setting has no effect or produces a warning

Run task show. An unrecognized setting often indicates a typo or an option removed since an older release. Remove the stale override with task config name, then add the correctly named setting only after confirming it in the current manual.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The first-run prompt did not appear

The prompt appears only when Taskwarrior cannot find configuration or task data. Existing ~/.taskrc, an XDG taskrc, or an alternate location selected by environment variables can suppress it. Inspect those paths rather than creating a second, competing configuration.

A source build fails during configuration

Read the release’s INSTALL instructions for the required compiler, CMake, and libraries. The UUID development package is a known requirement and may be called libuuid-dev or uuid-dev depending on the distribution. After installing the matching development package, rerun the CMake configure command in the existing build directory or recreate that directory if the failed configuration cached incorrect paths.

Migration or synchronization data looks unsafe

Stop and restore your backup rather than experimenting on the only copy. Keep Taskwarrior 3’s SQLite database out of generic file-sync tools, and review the current upgrade instructions before repeating an import or selecting a replacement for taskd.

A reliable order for ongoing maintenance

  1. Keep the installation route and resulting version documented, especially when a source build and a distribution package coexist.
  2. Use task show after changing configuration so unknown or obsolete options are caught immediately.
  3. Back up configuration and data before a major-version migration.
  4. Use the built-in reports and commands to work with tasks instead of editing the SQLite database directly.
  5. Introduce synchronization only after local tasks and configuration are correct, and use a supported sync service rather than file replication.

Quick post-install checklist

  • Confirm that task --version reports the executable you intended to install.
  • Confirm that ~/.taskrc, or the selected XDG or TASKRC file, is the configuration you are actually using.
  • Confirm that the data directory is the intended location and contains the Taskwarrior 3 database when using version 3.
  • Run task show and resolve every unrecognized-setting warning.
  • Create and complete one disposable task before importing real data or enabling synchronization.
  • For a version-2 upgrade, preserve the backup and use the documented import-v2 rc.hooks=0 procedure with Taskwarrior 3.3.0 or later.
  • For multiple devices, choose cloud storage or a TaskChampion sync server; never replicate the SQLite directory with Syncthing or rsync.

Frequently Asked Questions

What is the latest Taskwarrior version for Linux?

The official download page lists Taskwarrior 3.5.0, released on 2026-08-16. Your distribution may provide a different version, so verify with task --version and your package metadata.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Should I install the package or compile Taskwarrior?

Use the distribution package for the simplest setup and integrated updates. Build from source when you specifically need the upstream 3.5.0 release or your repository does not provide a suitable version.

Where does Taskwarrior keep its configuration and data?

The normal configuration file is ~/.taskrc, with task data under ~/.task. TASKRC, TASKDATA, and the XDG path $XDG_CONFIG_HOME/task/taskrc can redirect those locations.

How do I change or reset a Taskwarrior setting?

Run task config name value to persist an override. Run task config name with no value to remove the override and restore the default. An explicitly empty value is different from removing the setting.

Can I synchronize the Taskwarrior database with Syncthing or rsync?

No. Taskwarrior 3 uses an application-managed SQLite database, and generic file synchronization can corrupt it. Use a documented cloud-storage provider or TaskChampion sync server and run task sync on both replicas.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do I migrate Taskwarrior 2 data?

Back up the old configuration and data, install Taskwarrior 3.3.0 or later, then run task import-v2 rc.hooks=0 in the environment pointing to the old data. Taskwarrior 3 does not use the old taskd protocol, so plan synchronization separately.

Why did the first-run setup prompt not appear?

The prompt is shown only when Taskwarrior cannot find configuration or data. An existing ~/.taskrc, XDG taskrc, TASKRC, or TASKDATA setting can select an already initialized environment.

The Bottom Line

Install the distribution package unless you need a specific upstream release, then verify task --version, keep the initial ~/.taskrc configuration minimal, and complete the disposable smoke test. Treat Taskwarrior 2 migration as a data conversion, and use TaskChampion-supported synchronization rather than copying the Taskwarrior 3 SQLite database with ordinary file-sync tools.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CLILinuxproductivitysystem administrationTaskwarrior

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.