Skip to content

Releases: BRO3886/gtasks

v0.13.0

10 Mar 19:04
30b6abe

Choose a tag to compare

What's Changed

Features

  • Background update check — gtasks now checks for new releases in the background and prints a notice after your command if a newer version is available (#55)
  • curl-based install script — one-liner installer hosted at https://gtasks.sidv.dev/install; auto-detects OS and architecture (#53)
  • Default task list config — set a default task list via -l flag, GTASKS_DEFAULT_TASKLIST env var, or tasks.default_task_list in config file; skips prompt when only one list exists (#51, #37, #38, #39)
  • System keyring token storage — OAuth2 tokens are now stored in the system keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager) instead of plain text (#50)
  • Layered config via koanf — config now supports TOML/YAML/JSON files, env vars, and build-time defaults; env vars take precedence over config file (#51)
  • XDG Base Directory support — new installs use ~/.config/gtasks/; legacy ~/.gtasks/ is still supported with a migration warning (#51)
  • AI agent skill commands — added skill definitions for AI agent integrations (#49)
  • Custom docs theme — replaced hugo-whisper-theme with a custom gtasks-docs Hugo theme (#57)

Bug Fixes

  • Fixed token validation before refusing re-login
  • Fixed update check to use split cache-hit/cache-miss paths to avoid goroutine outliving the process
  • Fixed build version injection

Documentation

  • Updated installation instructions to reference curl one-liner (#56)
  • Updated docs for keyring, XDG config dir, and config file changes (#52)

Breaking Changes

These changes require action if you are upgrading from v0.12.0 or earlier.

.env file support removed

Runtime .env file loading has been dropped. If you were using a .env file to set GTASKS_CLIENT_ID / GTASKS_CLIENT_SECRET, you must now either:

  • Set those env vars in your shell profile (.zshrc, .bashrc, etc.), or
  • Add them to the config file at ~/.config/gtasks/config.toml

Token storage moved to system keyring

OAuth2 tokens are now stored in the system keyring instead of token.json. On first run after upgrading, your existing token.json will be auto-migrated to the keyring. On headless systems without a keyring, the file fallback still applies.

Config directory changed (XDG)

New installs default to ~/.config/gtasks/. If you have an existing ~/.gtasks/ directory, it will continue to work, but a migration warning will be shown. To migrate manually:

mv ~/.gtasks ~/.config/gtasks

New Contributors

  • @dandrake made their first contributions in #37, #38, #39 — adding GTASKS_DEFAULT_TASKLIST env var support, skipping the task list prompt when only one list exists, and adding config file support

Full Changelog: v0.12.0...v0.13.0

v0.12.0 - Task Update, Undo & Recurring Support

05 Feb 08:18

Choose a tag to compare

What's New

New Commands

  • tasks update - Modify existing tasks (title, notes, due date)
  • tasks undo - Mark completed tasks as incomplete
  • tasks clear - Delete all completed tasks from a list

Recurring Tasks

  • Add recurring task support with --repeat flag
  • Supported intervals: daily, weekly, monthly, yearly
  • Example: gtasks tasks add -t "Weekly review" --repeat weekly

Improvements

  • --max flag - Control pagination in tasks view (e.g., --max 50)
  • Improved table display formatting
  • Better date handling and display

Downloads

Platform Architecture File
Linux amd64 gtasks_linux_amd64_v0.12.0.tar.gz
Linux arm64 gtasks_linux_arm64_v0.12.0.tar.gz
macOS Intel (amd64) gtasks_mac_amd64_v0.12.0.tar.gz
macOS Apple Silicon (arm64) gtasks_mac_arm64_v0.12.0.tar.gz
Windows amd64 gtasks_win_v0.12.0.tar.gz

Installation

# Linux/macOS (example for arm64 Mac)
tar -xzf gtasks_mac_arm64_v0.12.0.tar.gz
sudo mv gtasks /usr/local/bin/

Full Changelog: v0.11.1...v0.12.0

v0.11.1

04 Feb 16:44

Choose a tag to compare

Highlights

  • Add --format flag to gtasks tasks view with table (default), json, and csv output.
  • Standardize status and due-date formatting for JSON/CSV output.
  • Update task command docs with --format usage and examples.

v0.11.0

04 Feb 16:20

Choose a tag to compare

What's New

Features

  • New info command: View detailed task information including status, due date, notes, and links (#25)

Bug Fixes

  • Task pagination: Fixed issue where tasks were limited to 20 items per tasklist (#21)
  • Date parsing: Improved error handling and updated help text with working documentation link (#23)

Documentation

  • Fixed incorrect tasklists subcommand help text (#32)
  • Clarified type of Google Cloud app needed (#31)
  • Aligned tasklist and login documentation

Full Changelog: v0.10.1...v0.11.0

0.10.0

13 Jul 20:39

Choose a tag to compare

Implement a new PKCE + localhost based oauth flow

gtasks 0.9.7

22 Jan 11:43

Choose a tag to compare

Changelog

  • a81dee3 refactor: move auth logic to api package

gtasks 0.9.6

21 Jan 20:17

Choose a tag to compare

Changelog

  • 39ccccf chore: update dependencies
  • 853887c feat(tasks): add multiple sort options
  • bd43788 release: 0.9.5

0.9.5

06 Oct 11:47
1b5b867

Choose a tag to compare

Hacktoberfest release!

  • Tasks are now sorted by date

  • New flag to show only completed task

gtasks tasks view --completed
  • New way of creating tasks without prompt
gtasks tasks add -l "Daily todo" --title <some title> --note <some note> --due <date>

All thanks to @develerik for contributing and adding these!

0.9.4

04 Jul 08:04
60e7f39

Choose a tag to compare

  • Adds support for a more flexible, human friendly date input on tasks creation
  • Check out all supported formats here: https://katb.in/kat2821
  • Also fixed #8. Now you can provide task index in rm and done commands
  • Examples:
gtasks tasks -l "DSC VIT" done 4

gtasks tasks -l "DSC VIT" rm 1
  • If you do not provide a task number it falls back to the prompt, you can select a task from there manually.

0.9.3

23 Jun 11:02
55d6d29

Choose a tag to compare

added a new flag on tasks command

Usage:

  1. With pre-selected tasklist
gtasks tasks -l <tasklist title> subcommand

Example:

gtasks tasks -l "To watch" view
  1. Without pre-selected tasklist
gtasks tasks <subcommand>

Will show a prompt to select tasklist at runtime.

prettier printing in cli

fixes the issue with completed tasks being shown even when the --include-completed flag was missing

Example:

gtasks tasks -l "To watch" view [--include-completed|-i]