💻 PLS-CLI
If you are like me, and your terminal is your home, this CLI will make your life better, I hope 😄
🛠 Installation
Recommended: Using pipx (isolated environment)
pipx installs the CLI in an isolated environment, avoiding conflicts with other packages:
# 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
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, then run:
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:
uv run pytest -q
⬆️ Upgrade version
With pipx (recommended)
pipx upgrade pls-cli
With pip
pip install pls-cli --upgrade
⚙️ Configuration
To run pls-cli everytime you open your shell's:
Bash
echo 'pls' >> ~/.bashrc
Zsh
echo 'pls' >> ~/.zshrc
Fish
echo 'pls' >> ~/.config/fish/config.fish
Ion
echo 'pls' >> ~/.config/ion/initrc
Tcsh
echo 'pls' >> ~/.tcshrc
Xonsh
echo 'pls' >> ~/.xonshrc
Powershell
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.
pls
⚠️ Restart your terminal to apply the changes and start configuring your PLS-CLI. 🎉
⌨️ Commands
pls --help
Or for more information you can see in the documentation.
Insert a task
Insert a task after an existing task by using its current ID:
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!!
Setting env on Linux, macOS, Windows Bash:
export PLS_ERROR_LINE_STYLE="#e56767"
Setting env on Windows PowerShell:
$Env:PLS_ERROR_LINE_STYLE = "#e56767"
All envs:
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"
You can specify the background color like this:
export PLS_QUOTE_STYLE="#a0a0a0 on blue"
If you create some theme, share with us here ♥️.
💄 Formatting a task
You can format your tasks with:
pls add "[b]Bold[/], [i]Italic[/], [s]Strikethrough[/], [d]Dim[/], [r]Reverse[/], [red]Color Red[/], [#FFBF00 on green]Color exa with background[/], :star:, ✨"
🚧 TMUX integration
Using pls count-done and pls count-undone.
🤝 Special thanks
PLS-CLI stands on the shoulders of giants:
Metadata
Release files for pls-cli 0.5.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 | Provenance | |
|---|---|---|---|---|
| pls_cli-0.5.0.tar.gz | 155.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pls_cli-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 206.1 kB
Release files / pls_cli-0.5.0.tar.gz
| Download URL | pls_cli-0.5.0.tar.gz |
|---|---|
| Size | 155.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bfd50ce563b1d8d731d06794dfdd757bf8adc981f157323915df74dcd636858
|
|
BLAKE2b-256 checksum How to use checksums |
8a6dbd608f3e620c32d47607f46dfdf2b2057c258304fb8988b46fac20527921
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / pls_cli-0.5.0-py3-none-any.whl
| Download URL | pls_cli-0.5.0-py3-none-any.whl |
|---|---|
| Size | 50.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
77688e1f03037c9ef5254c259131ce70d350ca2d5adf73204af9844ceaa85ed8
|
|
BLAKE2b-256 checksum How to use checksums |
854436fcc2e8acbfd52221b77354673ec32513a07f7a34353b414a975b1a8524
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Security for pls-cli 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.