Metadata-Version: 2.5
Name: pls-cli
Version: 0.5.0
Summary: Minimalist and full configurable greetings and TODO list
Project-URL: Homepage, https://guedesfelipe.github.io/pls-cli/
Project-URL: Documentation, https://guedesfelipe.github.io/pls-cli/
Project-URL: Repository, https://github.com/guedesfelipe/pls-cli
Author-email: Felipe Guedes <contatofelipeguedes@gmail.com>
License-File: LICENSE
Keywords: cli,please,pls,todo
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.9
Requires-Dist: rich>=13.7.0
Requires-Dist: typer>=0.9.0
Description-Content-Type: text/markdown

<h1 align="center">
  💻 PLS-CLI
</h1>
<p align="center">
    <a href="https://github.com/guedesfelipe/pls-cli/actions/workflows/ci.yml" target="_blank">
        <img src="https://github.com/guedesfelipe/pls-cli/actions/workflows/ci.yml/badge.svg?branch=main" />
    </a>
    <a href="https://github.com/guedesfelipe/pls-cli/actions/workflows/security.yml" target="_blank">
        <img src="https://github.com/guedesfelipe/pls-cli/actions/workflows/security.yml/badge.svg?branch=main" />
    </a>
    <a href="https://codecov.io/gh/guedesfelipe/pls-cli" > 
      <img src="https://codecov.io/gh/guedesfelipe/pls-cli/branch/main/graph/badge.svg"/> 
    </a>
    <a href="https://pypi.org/project/pls-cli/" target="_blank">
      <img src="https://img.shields.io/pypi/v/pls-cli?label=pypi%20package" />
    </a>
    <a href="" target="_blank">
      <img src="https://img.shields.io/pypi/pyversions/pls-cli.svg?color=green&logo=python&logoColor=yellow" />
    </a>
    <img src="https://img.shields.io/badge/platforms-windows%7C%20linux%7C%20macos-lightgrey" />
</p>

<p align="center">
  <em>If you are like me, and your terminal is your home, this CLI will make your life better, I hope 😄</em>
  <br>
  <br>
  <img src="https://user-images.githubusercontent.com/25853920/180621358-bf89cd86-2109-41e7-9fea-bbd1a6a56ff4.gif" />
</p>

# 🛠 Installation

## Recommended: Using pipx (isolated environment)

[pipx](https://pipx.pypa.io/) installs the CLI in an isolated environment, avoiding conflicts with other packages:

```sh
# Install pipx if you haven't already
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Install pls-cli
pipx install pls-cli
```

## Alternative: Using pip

```sh
pip install pls-cli
```

> **Note**: Installing with pip may cause dependency conflicts with other packages. We recommend using pipx for CLI tools.

## 🧑‍💻 Run from source

To run or develop the version of PLS-CLI in a cloned repository, install
Python 3.9+ and [uv](https://docs.astral.sh/uv/), then run:

```sh
git clone <your-repository-url>
cd pls-cli
uv sync --only-group test
uv run pls --help
```

`uv sync` creates a project-local `.venv` environment from
`pyproject.toml` and `uv.lock`. The `.venv` directory should not be
committed; it can be recreated from those files.

### Verify changes

Run the automated tests before sharing a change:

```sh
uv run pytest -q
```

# ⬆️ Upgrade version

## With pipx (recommended)

```sh
pipx upgrade pls-cli
```

## With pip

```sh
pip install pls-cli --upgrade
```

# ⚙️ Configuration

To run **`pls-cli`** everytime you open your shell's:

<details><p><summary>Bash</p></summary>

```sh
echo 'pls' >> ~/.bashrc
```

</details>

<details><p><summary>Zsh</p></summary>

```sh
echo 'pls' >> ~/.zshrc
```

</details>

<details><p><summary>Fish</p></summary>

```sh
echo 'pls' >> ~/.config/fish/config.fish
```

</details>

<details><p><summary>Ion</p></summary>
  
```sh
echo 'pls' >> ~/.config/ion/initrc
```

</details>

<details><p><summary>Tcsh</p></summary>
  
```sh
echo 'pls' >> ~/.tcshrc
```

</details>

<details><p><summary>Xonsh</p></summary>

```sh
echo 'pls' >> ~/.xonshrc
```
</details>

<details><p><summary>Powershell</p></summary>
    
Add the following to the end of `Microsoft.PowerShell_profile.ps1`. You can check the location of this file by querying the `$PROFILE` variable in PowerShell. Typically the path is `~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1` or `~/.config/powershell/Microsoft.PowerShell_profile.ps1` on -Nix.
 
```txt
pls
```

</details>

⚠️ Restart your terminal to apply the changes and start configuring your PLS-CLI. 🎉

# ⌨️ Commands

```sh
pls --help
```

Or for more information you can see in the [documentation](https://guedesfelipe.github.io/pls-cli/commands).

## Insert a task

Insert a task after an existing task by using its current ID:

```sh
pls insert 2 "third task"
```

This inserts `third task` after task `2`. Tasks that were after task `2`
automatically receive their new displayed IDs. Task names with spaces must be
wrapped in quotes.

The ID must be an existing task ID, from `1` through the current number of
tasks. Inserting into an empty list, using `0`, or using an ID beyond the last
task displays an error.

PLS-CLI asks for confirmation before changing the list. Enter `y` to insert
and save the task, or `N` to leave the list unchanged.


# 🎨 Color Configuration

You can configure all colors with envs!!

<details><p><summary>Setting env on Linux, macOS, Windows Bash:</p></summary>

```sh
export PLS_ERROR_LINE_STYLE="#e56767"
```

</details>

<details><p><summary>Setting env on Windows PowerShell:</p></summary>

```sh
$Env:PLS_ERROR_LINE_STYLE = "#e56767"
```

</details>

All envs:
```sh
export PLS_ERROR_LINE_STYLE="#e56767"
export PLS_ERROR_TEXT_STYLE="#ff0000 bold"

export PLS_WARNING_LINE_STYLE="#FFBF00"
export PLS_WARNING_TEXT_STYLE="#FFBF00 bold"

export PLS_UPDATE_LINE_STYLE="#61E294"
export PLS_UPDATE_TEXT_STYLE="#61E294 bold"

export PLS_INSERT_DELETE_LINE_STYLE="#bb93f2"

export PLS_INSERT_DELETE_TEXT_STYLE="#a0a0a0"

export PLS_MSG_PENDING_STYLE="#61E294"
export PLS_TABLE_HEADER_STYLE="#d77dd8"
export PLS_TASK_DONE_STYLE="#a0a0a0"
export PLS_TASK_PENDING_STYLE="#bb93f2"
export PLS_HEADER_GREETINGS_STYLE="#FFBF00"
export PLS_QUOTE_STYLE="#a0a0a0"
export PLS_AUTHOR_STYLE="#a0a0a0"

export PLS_BACKGROUND_BAR_STYLE="bar.back"
export PLS_COMPLETE_BAR_STYLE="bar.complete"
export PLS_FINISHED_BAR_STYLE="bar.finished"
```

<details><p><summary>You can specify the background color like this:</p></summary>

```sh
export PLS_QUOTE_STYLE="#a0a0a0 on blue"
```

</details>

If you create some theme, share with us <a href="https://github.com/guedesfelipe/pls-cli/discussions/1#discussion-4174647" target="_blank">here</a> ♥️.

## 💄 Formatting a task

<details><p><summary>You can format your tasks with:</p></summary>

```sh
pls add "[b]Bold[/], [i]Italic[/], [s]Strikethrough[/], [d]Dim[/], [r]Reverse[/], [red]Color Red[/], [#FFBF00 on green]Color exa with background[/], :star:, ✨"
```

![image](https://user-images.githubusercontent.com/25853920/175835339-8059bc7e-0538-4e2d-aed8-80487d7b2478.png)

</details>

## 🚧 TMUX integration

Using `pls count-done` and `pls count-undone`.

## 🤝 Special thanks

**PLS-CLI** stands on the shoulders of giants:

* <a href="https://github.com/tiangolo/typer" target="_blank">Typer</a> for the CLI tool.
* <a href="https://github.com/Textualize/rich" target="_blank">Rich</a> for the beautiful formatting in terminal.

---

<p align="center">
  <a href="https://github.com/sponsors/guedesfelipe" target="_blank">
    <img src="https://img.shields.io/badge/Sponsor-GitHub-ea4aaa?style=for-the-badge&logo=github" />
  </a>
</p>
