: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
Metadata
Release files for xitkit 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xitkit-2.1.0.tar.gz | 55.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xitkit-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.0 kB
Release files / xitkit-2.1.0.tar.gz
| Download URL | xitkit-2.1.0.tar.gz |
|---|---|
| Size | 55.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44102f09a9c816daf6ef532442c8ebc81ae827dec1ada749b0cf9a54c8056520
|
|
BLAKE2b-256 checksum How to use checksums |
74dac9627e6adb26505e2adae46554780d35e3a57a816d9e0d07f8e3ac7def76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.14.0 Linux/6.14.0-34-generic
|
Release files / xitkit-2.1.0-py3-none-any.whl
| Download URL | xitkit-2.1.0-py3-none-any.whl |
|---|---|
| Size | 63.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f2faf04812f7b6a103837380508f217879c63e4dc40fce27f27602e56578628
|
|
BLAKE2b-256 checksum How to use checksums |
84e56ae51db305b3ba69fbdae4e633f9b57ee3d2e1c3a7d6bd712bf2250fa30e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.14.0 Linux/6.14.0-34-generic
|