Skip to main content

CLI tool to run scipts

Project description


because I'm jealous of NPM.


What is jif?

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.

Are any other commands going to be added?

The last commands that are going to be added are install and uninstall. Again, similar to NPM I want my installs and uninstalls to automatically manage my application's dependencies.

Also, I'm toying with the idea of having a command that'll generate a with the fields in the jif file. Let me know if this is something you want to see happen.

If you run into any other limitations or bugs feel free to create an issue.


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.

  1. init
  2. run
  3. freeze

Coming soon

  1. install
  2. uninstall


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 freeze command literally just calls pip freeze > requirements.txt. There are no flags, no customization, just a simple command that saves me a fraction of a second. This is just a workaround while the install command is being implemented

examples: jif freeze, jif f

Project details

Download files

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

Source Distribution

jif-0.0.5.tar.gz (5.2 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page