#tool #dev-tools #cli #command-line-tool

app j-pls

quick n' dirty non-global aliases/scripts

12 unstable releases (3 breaking)

0.4.2 Jan 16, 2024
0.4.1 Jan 16, 2024
0.3.0 Jan 8, 2024
0.2.3 Jan 5, 2024
0.1.3 Dec 23, 2023

#302 in Command line utilities

Download history 2/week @ 2023-12-17 3/week @ 2023-12-24 5/week @ 2023-12-31 11/week @ 2024-01-07 21/week @ 2024-01-14 2/week @ 2024-02-18 17/week @ 2024-02-25 25/week @ 2024-03-10 70/week @ 2024-03-31

95 downloads per month


397 lines


pls is a scripting utility to create local messy aliases quickly. remember that pls is not finished and has many features planned!


pls is available on crates.io as j-pls.

cargo install j-pls

Writing Commands

pls looks for a rules.pls file to pull rules from. Rule syntax looks like this:

build: cargo build --release 
run: cargo run

# install binary locally
    cargo build 
    cargo install --path . --force

# say hi!
#arguments will be enviroment variables in the given script
greet [name]:
    echo hello $name!

Run pls with -l to view available rules. You can also use -v for more detailed info about a rule. To use a rule, call it with pls!

pls build

pls has a special rule, called do, that will be called when running pls with no arguments.

    g++ src/* -o target/main.out 


pls looks in $XDG_CONFIG/pls for configuration files.

# file: $XDG_CONFIG/pls/config.pls
# these are available settings with their defaults

# where pls will look for local rules, relative to cwd
look: rules.pls

# where pls will look for global rules, relative to $XDG_CONFIG/pls/ 
global: global.pls

# if commands should be printed before running
show_cmd: false

# show extra info about rules when listing
rich: true


Current features being worked on, in order of priority.

  • multiline commands
  • global rules
  • arguments
  • variables
  • calling other rules
  • attributes
  • confirm prompts
  • more advanced scripting..(?)


~54K SLoC