A powerful command-line task management tool that parses and manages tasks from .xit and .md files using the x-it! format
Project description
:clipboard: XitKit
A powerful command-line task management tool that parses and manages tasks from .xit and .md files using the [x]it! format (https://xit.jotaen.net/)
:sparkles: Features
- :arrows_counterclockwise: Multiple Task States: Open, checked, ongoing, obsolete, and in-question tasks
- :zap: Priority Levels: Support for multiple priority indicators (
!,!!,!!!) - :calendar: Due Dates: Flexible date parsing with various formats
- :label: Tags: Organize tasks with hashtags and optional values
- :memo: Multi-line Descriptions: Support for continued task descriptions
- :file_folder: Groups & Headers: Organize related tasks under headers
- :art: Rich Output: Beautiful terminal output with colors and formatting
- :mag: Flexible Filtering: Filter tasks by status, priority, tags, and more
- :bar_chart: Statistics: Get insights about your task distribution
- :rocket: Batch Processing: Mark, reschedule, remove, or move multiple tasks at once
- :repeat: Recurring Tasks: Create recurring instances with flexible intervals (daily, weekly, monthly, yearly)
- :shell: Shell Integration: Support for shell expansion (
{3..21}) and sequences - :tomato: Pomodoro timer: simple, textual-based pomodoro timer
- :wrench: Interactive Mode: Edit tasks interactively
:package: Installation
:warning: Prerequisites
- Python 3.14+
- Micromamba or Conda (recommended but not necessary)
:gear: Setup
-
Clone the repository:
git clone https://github.com/hoechstleistungshaartrockner/xitkit.git cd xitkit
-
Create the environment:
micromamba create -f micromamba.yaml micromamba activate xitkit
or create your own environment with Python 3.14+ and install Poetry:
python -m pip install --user poetry
-
Install dependencies:
poetry install poetry install --extras dev
:computer: Usage
Two command-line entry points are provided: xitkit and xit. Both commands function identically.
xit --help
xitkit --help
:toolbox: Available Subcommands
| Command | Description |
|---|---|
| add | Add a new task. |
| mark | Mark one or more tasks with a specific status. |
| move | Move one or more tasks to another file. |
| pomodoro | A simple Pomodoro Timer App to run in the terminal. |
| prio | Set the priority of a task. |
| recur | Create recurring instances of a task. |
| reschedule | Reschedule one or more tasks to a new due date. |
| rm | Remove one or more tasks by their IDs with confirmation. |
| show | Show tasks from .md and .xit files. |
| stats | Show statistics about tasks. |
| tag | Add a tag to a task. |
| untag | Remove a tag from a task. |
:bulb: Command Examples
# Show all tasks in current directory
xit show
# Show tasks from specific files
xit -f tasks.xit show
# Show only open tasks
xit show --status open
# Show tasks with IDs for reference
xit show --show-id
# Show task statistics
xit stats
# Show help
xit --help
# Interactive mode
xit show --interactive # will prompt you to select which tasks to show (applies for other commands as well)
# Add a new task
xit add "Buy groceries"
xit add "Important meeting -> 2025-12-15 #work" -f work.xit -p 2
# Mark tasks with new status flags (supports batch processing)
xit mark 5 --done # Mark task #5 as done
xit mark 2 3 4 5 6 --done # Mark multiple tasks as done
xit mark {3..21} --ongoing # Mark task range as ongoing (bash expansion)
xit mark 1 --open # Reopen a task
xit mark 7 8 --obsolete # Mark tasks as obsolete
xit mark 9 --inquestion # Mark task as in question
# Reschedule tasks (supports batch processing)
xit reschedule 5 -n 2025-12-31 # Set specific date for single task
xit reschedule 2 3 4 -n today # Set multiple tasks to today
xit reschedule {3..21} -n tomorrow # Set task range to tomorrow (bash expansion)
# Remove tasks (supports batch processing with confirmation)
xit rm 5 # Remove single task (with confirmation)
xit rm 2 3 4 5 # Remove multiple tasks (confirmation for each)
xit rm {3..21} # Remove task range (bash expansion)
# Move tasks between files (supports batch processing)
xit move 5 --target-file other.xit # Move single task to another file
xit move 2 3 4 --target-file done.xit # Move multiple tasks to done.xit
xit move {3..21} --target-file archive.xit # Move task range to archive.xit
# Create recurring instances of tasks
xit recur 5 --interval 1w --count 4 # Create 4 weekly instances of task #5
xit recur 3 --interval 2w --count 5 # Create 5 bi-weekly instances of task #3
xit recur 7 --interval 1m --end 2026-12-31 # Monthly recurrence until end of 2026
xit recur 2 --interval 1d --count 30 --task-file work.xit # 30 daily instances in work.xit file
# Edit task properties
xit edit 5 "Updated task description" # Change the description of task #5
xit prio 3 -p 2 # Set priority level 2 (!!) for task #3
xit prio 7 -p 0 # Remove priority from task #7
xit tag 5 -t urgent # Add #urgent tag to task #5
xit tag 3 -t "work" # Add #work tag to task #3
xit untag 5 -t urgent # Remove #urgent tag from task #5
:wrench: Development
:test_tube: Running Tests
python -m pytest
:page_facing_up: License
This project is licensed under the MIT License - see the LICENSE file for details.
:pray: Acknowledgments
- Developer of the [x]it! format: Jotaen
- Built with Rich for beautiful terminal output
- Uses Click for the command-line interface
- Uses Questionary for interactive prompts
Project details
Release history Release notifications | RSS feed
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 xitkit-2.1.0.tar.gz.
File metadata
- Download URL: xitkit-2.1.0.tar.gz
- Upload date:
- Size: 55.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.0 Linux/6.14.0-34-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44102f09a9c816daf6ef532442c8ebc81ae827dec1ada749b0cf9a54c8056520
|
|
| MD5 |
acfb404d2c1316af533766a4030d32f3
|
|
| BLAKE2b-256 |
74dac9627e6adb26505e2adae46554780d35e3a57a816d9e0d07f8e3ac7def76
|
File details
Details for the file xitkit-2.1.0-py3-none-any.whl.
File metadata
- Download URL: xitkit-2.1.0-py3-none-any.whl
- Upload date:
- Size: 63.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.14.0 Linux/6.14.0-34-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f2faf04812f7b6a103837380508f217879c63e4dc40fce27f27602e56578628
|
|
| MD5 |
8fb1a9500346e835881ae641f971a042
|
|
| BLAKE2b-256 |
84e56ae51db305b3ba69fbdae4e633f9b57ee3d2e1c3a7d6bd712bf2250fa30e
|