xitkit


Namexitkit JSON
Version 2.1.0 PyPI version JSON
download
home_pagehttps://github.com/hoechstleistungshaartrockner/xitkit
SummaryA powerful command-line task management tool that parses and manages tasks from .xit and .md files using the x-it! format
upload_time2025-11-05 21:12:42
maintainerNone
docs_urlNone
authorChristian
requires_python<4.0.0,>=3.14
licenseNone
keywords task management cli todo xit productivity
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # :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

1. Clone the repository:
   ```bash
   git clone https://github.com/hoechstleistungshaartrockner/xitkit.git
   cd xitkit
   ```

2. Create the environment:
   ```bash
   micromamba create -f micromamba.yaml
   micromamba activate xitkit
   ```
   or create your own environment with Python 3.14+ and install Poetry:
   ```bash
   python -m pip install --user poetry
   ```

3. Install dependencies:
   ```bash
   poetry install
   poetry install --extras dev
   ```

## :computer: Usage
Two command-line entry points are provided: `xitkit` and `xit`. Both commands function identically.

```bash
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

```bash
# 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

```bash
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](https://github.com/Jotaen/xit)
- Built with [Rich](https://github.com/Textualize/rich) for beautiful terminal output
- Uses [Click](https://click.palletsprojects.com/) for the command-line interface
- Uses [Questionary](https://github.com/tmbo/questionary) for interactive prompts


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hoechstleistungshaartrockner/xitkit",
    "name": "xitkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.14",
    "maintainer_email": null,
    "keywords": "task, management, cli, todo, xit, productivity",
    "author": "Christian",
    "author_email": "202550520+hoechstleistungshaartrockner@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/74/da/c9627e6adb26505e2adae46554780d35e3a57a816d9e0d07f8e3ac7def76/xitkit-2.1.0.tar.gz",
    "platform": null,
    "description": "# :clipboard: XitKit\n\nA 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/)\n\n## :sparkles: Features\n\n- **:arrows_counterclockwise: Multiple Task States**: Open, checked, ongoing, obsolete, and in-question tasks\n- **:zap: Priority Levels**: Support for multiple priority indicators (`!`, `!!`, `!!!`)\n- **:calendar: Due Dates**: Flexible date parsing with various formats\n- **:label: Tags**: Organize tasks with hashtags and optional values\n- **:memo: Multi-line Descriptions**: Support for continued task descriptions\n- **:file_folder: Groups & Headers**: Organize related tasks under headers\n- **:art: Rich Output**: Beautiful terminal output with colors and formatting\n- **:mag: Flexible Filtering**: Filter tasks by status, priority, tags, and more\n- **:bar_chart: Statistics**: Get insights about your task distribution\n- **:rocket: Batch Processing**: Mark, reschedule, remove, or move multiple tasks at once\n- **:repeat: Recurring Tasks**: Create recurring instances with flexible intervals (daily, weekly, monthly, yearly)\n- **:shell: Shell Integration**: Support for shell expansion (`{3..21}`) and sequences\n- **:tomato: Pomodoro timer**: simple, textual-based pomodoro timer\n- **:wrench: Interactive Mode**: Edit tasks interactively\n\n## :package: Installation\n\n### :warning: Prerequisites\n\n- Python 3.14+\n- Micromamba or Conda (recommended but not necessary)\n\n### :gear: Setup\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/hoechstleistungshaartrockner/xitkit.git\n   cd xitkit\n   ```\n\n2. Create the environment:\n   ```bash\n   micromamba create -f micromamba.yaml\n   micromamba activate xitkit\n   ```\n   or create your own environment with Python 3.14+ and install Poetry:\n   ```bash\n   python -m pip install --user poetry\n   ```\n\n3. Install dependencies:\n   ```bash\n   poetry install\n   poetry install --extras dev\n   ```\n\n## :computer: Usage\nTwo command-line entry points are provided: `xitkit` and `xit`. Both commands function identically.\n\n```bash\nxit --help\nxitkit --help\n```\n\n### :toolbox: Available Subcommands\n\n| Command    | Description                                               |\n|------------|-----------------------------------------------------------|\n| add        | Add a new task.                                           |\n| mark       | Mark one or more tasks with a specific status.            |\n| move       | Move one or more tasks to another file.                   |\n| pomodoro   | A simple Pomodoro Timer App to run in the terminal.       |\n| prio       | Set the priority of a task.                               |\n| recur      | Create recurring instances of a task.                     |\n| reschedule | Reschedule one or more tasks to a new due date.           |\n| rm         | Remove one or more tasks by their IDs with confirmation.  |\n| show       | Show tasks from .md and .xit files.                       |\n| stats      | Show statistics about tasks.                              |\n| tag        | Add a tag to a task.                                      |\n| untag      | Remove a tag from a task.                                 |\n\n\n### :bulb: Command Examples\n\n```bash\n# Show all tasks in current directory\nxit show\n\n# Show tasks from specific files\nxit -f tasks.xit show\n\n# Show only open tasks\nxit show --status open\n\n# Show tasks with IDs for reference\nxit show --show-id\n\n# Show task statistics\nxit stats\n\n# Show help\nxit --help\n\n# Interactive mode\nxit show --interactive # will prompt you to select which tasks to show (applies for other commands as well)\n\n# Add a new task\nxit add \"Buy groceries\"\nxit add \"Important meeting -> 2025-12-15 #work\" -f work.xit -p 2\n\n# Mark tasks with new status flags (supports batch processing)\nxit mark 5 --done                     # Mark task #5 as done\nxit mark 2 3 4 5 6 --done             # Mark multiple tasks as done\nxit mark {3..21} --ongoing            # Mark task range as ongoing (bash expansion)\nxit mark 1 --open                     # Reopen a task\nxit mark 7 8 --obsolete               # Mark tasks as obsolete\nxit mark 9 --inquestion               # Mark task as in question\n\n# Reschedule tasks (supports batch processing)\nxit reschedule 5 -n 2025-12-31            # Set specific date for single task\nxit reschedule 2 3 4 -n today             # Set multiple tasks to today\nxit reschedule {3..21} -n tomorrow        # Set task range to tomorrow (bash expansion)\n\n# Remove tasks (supports batch processing with confirmation)\nxit rm 5                               # Remove single task (with confirmation)\nxit rm 2 3 4 5                        # Remove multiple tasks (confirmation for each)\nxit rm {3..21}                         # Remove task range (bash expansion)\n\n# Move tasks between files (supports batch processing)\nxit move 5 --target-file other.xit          # Move single task to another file\nxit move 2 3 4 --target-file done.xit      # Move multiple tasks to done.xit\nxit move {3..21} --target-file archive.xit  # Move task range to archive.xit\n\n# Create recurring instances of tasks\nxit recur 5 --interval 1w --count 4    # Create 4 weekly instances of task #5\nxit recur 3 --interval 2w --count 5     # Create 5 bi-weekly instances of task #3\nxit recur 7 --interval 1m --end 2026-12-31       # Monthly recurrence until end of 2026\nxit recur 2 --interval 1d --count 30 --task-file work.xit  # 30 daily instances in work.xit file\n\n# Edit task properties\nxit edit 5 \"Updated task description\"   # Change the description of task #5\nxit prio 3 -p 2                          # Set priority level 2 (!!) for task #3\nxit prio 7 -p 0                          # Remove priority from task #7\nxit tag 5 -t urgent                      # Add #urgent tag to task #5\nxit tag 3 -t \"work\"                      # Add #work tag to task #3\nxit untag 5 -t urgent                    # Remove #urgent tag from task #5\n```\n\n\n## :wrench: Development\n\n### :test_tube: Running Tests\n\n```bash\npython -m pytest\n```\n\n## :page_facing_up: License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## :pray: Acknowledgments\n\n- Developer of the [x]it! format: [Jotaen](https://github.com/Jotaen/xit)\n- Built with [Rich](https://github.com/Textualize/rich) for beautiful terminal output\n- Uses [Click](https://click.palletsprojects.com/) for the command-line interface\n- Uses [Questionary](https://github.com/tmbo/questionary) for interactive prompts\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A powerful command-line task management tool that parses and manages tasks from .xit and .md files using the x-it! format",
    "version": "2.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/hoechstleistungshaartrockner/xitkit/issues",
        "Homepage": "https://github.com/hoechstleistungshaartrockner/xitkit",
        "Repository": "https://github.com/hoechstleistungshaartrockner/xitkit.git"
    },
    "split_keywords": [
        "task",
        " management",
        " cli",
        " todo",
        " xit",
        " productivity"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "84e56ae51db305b3ba69fbdae4e633f9b57ee3d2e1c3a7d6bd712bf2250fa30e",
                "md5": "8fb1a9500346e835881ae641f971a042",
                "sha256": "3f2faf04812f7b6a103837380508f217879c63e4dc40fce27f27602e56578628"
            },
            "downloads": -1,
            "filename": "xitkit-2.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8fb1a9500346e835881ae641f971a042",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.14",
            "size": 63163,
            "upload_time": "2025-11-05T21:12:40",
            "upload_time_iso_8601": "2025-11-05T21:12:40.353766Z",
            "url": "https://files.pythonhosted.org/packages/84/e5/6ae51db305b3ba69fbdae4e633f9b57ee3d2e1c3a7d6bd712bf2250fa30e/xitkit-2.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "74dac9627e6adb26505e2adae46554780d35e3a57a816d9e0d07f8e3ac7def76",
                "md5": "acfb404d2c1316af533766a4030d32f3",
                "sha256": "44102f09a9c816daf6ef532442c8ebc81ae827dec1ada749b0cf9a54c8056520"
            },
            "downloads": -1,
            "filename": "xitkit-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "acfb404d2c1316af533766a4030d32f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.14",
            "size": 55873,
            "upload_time": "2025-11-05T21:12:42",
            "upload_time_iso_8601": "2025-11-05T21:12:42.000534Z",
            "url": "https://files.pythonhosted.org/packages/74/da/c9627e6adb26505e2adae46554780d35e3a57a816d9e0d07f8e3ac7def76/xitkit-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-05 21:12:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hoechstleistungshaartrockner",
    "github_project": "xitkit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "xitkit"
}
        
Elapsed time: 1.10585s