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 🌀.
tali is a magical command-line task manager.
It manipulates tasks with intuitive symbols
for fast yet powerful filtering, grouping, sorting and batch operations.
Contents
- 🔝 Top
- ✨ Features
- 📦 Installation
- 📖 Usage Examples
- ⚙️ Configuration
- 📜 Symbol Cheat Sheet
- 🚀 Productivity Tips
- 🧙♂️ Contribute
- 💡 Inspired by
✨ 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 . ,dmarks tasks with tag@fruitin/groceryproject as done. - 😄 Emoji Support --
Use Emoji markups for visual flair:
💥 =
:boom:. - ⏪ Undo/Redo --
Never fear accidental changes
with
-u/--undoand-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
.talifolder 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:
- Add the following line to your
~/.bashrcor~/.zshrc:alias t='tali'
source ~/.bashrcorsource ~/.zshrcto apply the changes.- Use
t <...>instead oftali <...>for extra speed.
🎨 Syntax Highlighting
- Use
tali.vimfor Neovim/Vim syntax highlighting. Install with lazy.nvim:{ "admk/tali.nvim", ft = "tali", }
- Color theme: Catppuccin Mocha
Screenshot
🧙♂️ Contribute
- ❓ Need Help? FAQs
- 🔮 Report bugs: Issue Tracker
- 📥 Submit PRs: Pull Requests
- 💬 Discuss: Discussions
💡 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5688e6da536697aa3bc0ce3e7da89ace734b6081b3faa6e7f16ae74ac4a36170
|
|
| MD5 |
257bb4e4467eb8d41c564109f80ceeda
|
|
| BLAKE2b-256 |
f59ef076afe612749a1dcc81e8c68780058278da5fd220f581d0b95be0dc60cd
|
Provenance
The following attestation bundles were made for tali_cli-0.2.4.tar.gz:
Publisher:
publish.yml on admk/tali
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tali_cli-0.2.4.tar.gz -
Subject digest:
5688e6da536697aa3bc0ce3e7da89ace734b6081b3faa6e7f16ae74ac4a36170 - Sigstore transparency entry: 257341626
- Sigstore integration time:
-
Permalink:
admk/tali@d79d0222587705fc884ef7dcef87926541993f6d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/admk
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d79d0222587705fc884ef7dcef87926541993f6d -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b7fc441acd0accbd006fa89253083eedda032354d54d2fd2c91f26269f32293
|
|
| MD5 |
5dcd2e3a03d782577668d4b5dc089523
|
|
| BLAKE2b-256 |
3ed31da9e3acbf6b939398b663b1ce33c4ddaf6c5c2a7c6625d94faa1b3f6736
|
Provenance
The following attestation bundles were made for tali_cli-0.2.4-py3-none-any.whl:
Publisher:
publish.yml on admk/tali
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tali_cli-0.2.4-py3-none-any.whl -
Subject digest:
2b7fc441acd0accbd006fa89253083eedda032354d54d2fd2c91f26269f32293 - Sigstore transparency entry: 257341629
- Sigstore integration time:
-
Permalink:
admk/tali@d79d0222587705fc884ef7dcef87926541993f6d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/admk
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d79d0222587705fc884ef7dcef87926541993f6d -
Trigger Event:
push
-
Statement type: