Skip to main content

CLI tool to run scipts

Project description


jif is a small CLI tool inspired by NPM, more specifically the npm run and npm install commands. There are no plans to make jif anything more. It is a small tool with a handful of commands that solve pain points I face on a daily basis.

Why jif?

I've used a package.json to run my Python scripts before. This works fine for me as I have NPM already installed locally. However, it becomes an issue if I want to run a script on a CI/CD machine, a VM created for Python apps or if a collegue who doesn't use Node is working on the application.

TLDR; jif started out as a simple CLI tool built in Python to run scripts similar to NPM.


python -m pip install jif

*I recommend installing and using jif in a virtualenv. It'll probably work fine globally but it is built with the assumption it is running in a virtualenv.


You can view all the commands with the CLI by running jif --help. If you want more details about a specific command, run jif <COMMAND> --help.


The init command creates the jif file (jif.json) that the other commands use. The file will be saved in the dir that the command is run.

Optional flags
Flag Description Default
--entry-point Use this flag to point to the module that should run when calling the start command.
--lint-dir Use this flag to tell jif which directory should be linted. .
--version Which version your package should begin at. 0.0.1
--author Credits author. None, omitted unless value is specified.
--package Name of your package. None, omitted unless value is specified.

examples: jif init, jif init --lint-dir src --entry-point src/


The jif file let's you store scripts which can be executed using the run command. The following scripts can omit the run keyword: start, lint and test.

examples: jif start, jif run my_script


The install command uses pip to install packages and then automatically manages them for you in your jif file. If the requirements_file is present, requirements will be duplicated there so your application isn't dependent on jif.

Optional flags

There are two optional flags that can be added to the end of your install command - --no-save and --dev. By default, when package(s) are installed they will be added to the requirements array in the jif file. If you add --dev, it will save all those packages to the dev requirements array. If you want to install a package without saving it anywhere, add --no-save to the end of your install command.

examples: jif install flask, jif install black autopep8 --dev, jif install black --no-save


The uninstall command will uninstall all packages specified then check to see if they are listed in either the requirements or dev requirements in the jif file. If they are in either, they will be removed. If the dev_requirements_file is present, requirements will be duplicated there so your application isn't dependent on jif.

examples: jif uninstall flask black autopep

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for jif, version 0.0.6
Filename, size File type Python version Upload date Hashes
Filename, size jif-0.0.6.tar.gz (5.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page