Skip to main content

tali • The CLI magic for task alchemists • Weave productivity spells with symbols that conjures order from chaos.

Project description

tali 🧙‍♂️

The CLI magic 🔮 for task alchemists -- Weave productivity spells with symbols that conjure order 📓 from chaos 🌀.

GitHub License PyPI Python Version

tali is a magical command-line task manager. It manipulates tasks with intuitive symbols for fast yet powerful filtering, grouping, sorting and batch operations.

screenshot

Contents

✨ Features

  • 🚀 Fast Symbolic Syntax -- Intuitive symbols for fast task filtering and editing: @tag, /project, ^1week.
  • 🔎 Powerful Filtering, Grouping and Sorting -- Filter, group and sort items with ease: tali /work ! ^today @ =^.
  • 📒 Batch Operations -- Modify multiple filtered tasks at once: tali /grocery @fruit . ,d marks tasks with tag @fruit in /grocery project as done.
  • 😄 Emoji Support -- Use Emoji markups for visual flair: 💥 = :boom:.
  • Undo/Redo -- Never fear accidental changes with -u/--undo and -r/--redo.
  • ⚙️ Highly Customizable -- Configure symbols, aliases, rendering format/style, editor, pager, database location, and more in ~/.config/tali/config.toml.
  • 📁 Folder-specific Task Management -- Organize tasks in specific directories by creating a .tali folder in any directory.
  • 📇 JSON Storage/Export -- Machine-readable output with -j/--json.
  • 📜 Cheat Sheet Built-in -- Always available with -c/--cheatsheet.
  • 1️⃣ Idempotent Operations -- Use interactive editor or scripts to modify tasks.

📦 Installation

  • Using pip

    pip install tali-cli
    
  • Using uv

    uv tool install tali-cli
    
  • From source

    git clone https://github.com/admk/tali && cd tali && pip install .
    
  • Requires Python 3.10+.

📖 Usage Examples

🪄 Basic Usage

tali . "Buy milk" /grocery ^today  # Create a task with project and deadline
tali . "Meeting notes" /work ^"tue 4pm" ,n  # Create a note
tali . "Fix bug" /tali !high @urgent  # Create high-priority task with tag
tali 42 . ,  # Toggle completion for task 42
tali 42 . ,x  # Delete task
tali ^today . @star  # Toggle star tag for all tasks due today

🔎 Filtering & Querying

tali /work !high ^today  # Show high-priority work tasks due today
tali @ =^  # Group tasks by tag sorted by deadline
tali 42 ?^  # Query deadline of task 42

✏️ Task Modifications

tali 42 . ,done  # Mark task 42 as done ☑️
tali 42 . ,  # Toggle task status
tali 42 . @star  # Toggle star tag ⭐
tali 42 . @fav  # Toggle favorite tag ❤️
tali 42 . !h  # Set high priority ‼️
tali 42 . ,x  # Delete task 🗑️
tali 42 . : "Details..."  # Add description
tali 42 . "New title" /newproject ,n  # Edit multiple properties

⏰ Deadline Management

tali 42 . ^+3d  # Postpone deadline by 3 days
tali 42 . ^2mon  # Set to Monday after next
tali 42 . ^M  # Set to end of month
tali 42 . ^oo  # Remove deadline

📒 Batch Operations

tali 1..5 . ,x  # Delete tasks 1-5
tali @urgent . !high  # Set all @urgent tasks to high priority
tali /home .  # Edit all tasks in /home project in text editor

🧪 Advanced Options

tali (-d|--debug) <...>  # Debug mode
tali (-j|--json) <...>  # Output in JSON format
tali (-H|--history)  # Show commit history
tali (-u|--undo)  # Undo last operation
tali (-r|--redo)  # Redo last undone operation
tali (-R|--re-index)  # Re-index database

📝 Editor Usage

You can invoke an interactive editor by running:

tali (-e|--edit)  # start an empty editor for task editing
tali <selection> .  # or edit tasks filtered by <selection>

In the editor, you can write task editing or adding commands without the tali prefix. When you save and close the editor:

  • Each line will be treated as a separate command
  • Commands will be executed sequentially
  • Supports recursive prefix sharing for faster editing

Example:

. /home/grocery ^today buy
  @fruit
    apples
    oranges
  milk

This would be interpreted as:

. /home/grocery ^today @fruit buy apples
. /home/grocery ^today @fruit buy oranges
. /home/grocery ^today buy milk

⚙️ Configuration

Global configuration is stored in ~/.config/tali/config.yaml (or $XDG_CONFIG_HOME/tali/config.yaml). It also uses .tali/config.yaml in your project directory for project-specific setting overrides if it exists. Edit with:

tali --edit-rc

See config.yaml for all default configurations. See Configuration Guide for details of how to customize tali.

📜 Symbol Cheat Sheet

Token Name Description Example
. separator Separates selection from action 1..3 . ,done
.. id range Range of item IDs 1..5
, status Task status ,pending
/ project Project category /work
@ tag Custom tag @critical
! priority Priority level !high
^ deadline Due date/time ^tomorrow
= sort Sort results =! (priority)
? query Query attributes ?^ (deadline)
: description Long description : details...
- stdin Read from standard input -

🚀 Productivity Tips

📟 Shell Aliases

Use t as an alias for tali. For example:

  1. Add the following line to your ~/.bashrc or ~/.zshrc:
    alias t='tali'
    
  2. source ~/.bashrc or source ~/.zshrc to apply the changes.
  3. Use t <...> instead of tali <...> for extra speed.

🎨 Syntax Highlighting

🧙‍♂️ Contribute

💡 Inspired by

  • taskbook: Tasks, boards & notes for the command-line habitat.
  • taskwarrior: A command line task list management utility.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tali_cli-0.2.4.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tali_cli-0.2.4-py3-none-any.whl (38.8 kB view details)

Uploaded Python 3

File details

Details for the file tali_cli-0.2.4.tar.gz.

File metadata

  • Download URL: tali_cli-0.2.4.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tali_cli-0.2.4.tar.gz
Algorithm Hash digest
SHA256 5688e6da536697aa3bc0ce3e7da89ace734b6081b3faa6e7f16ae74ac4a36170
MD5 257bb4e4467eb8d41c564109f80ceeda
BLAKE2b-256 f59ef076afe612749a1dcc81e8c68780058278da5fd220f581d0b95be0dc60cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tali_cli-0.2.4.tar.gz:

Publisher: publish.yml on admk/tali

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tali_cli-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: tali_cli-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 38.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tali_cli-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2b7fc441acd0accbd006fa89253083eedda032354d54d2fd2c91f26269f32293
MD5 5dcd2e3a03d782577668d4b5dc089523
BLAKE2b-256 3ed31da9e3acbf6b939398b663b1ce33c4ddaf6c5c2a7c6625d94faa1b3f6736

See more details on using hashes here.

Provenance

The following attestation bundles were made for tali_cli-0.2.4-py3-none-any.whl:

Publisher: publish.yml on admk/tali

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page