all repos — nifty @ master

A tiny (pseudo) package manager and script runner.

Added description
Fri, 11 Aug 2023 02:17:56 +0000
Updated release.
Wed, 02 Aug 2023 15:17:50 +0000
Fixed compilation with Nim v2.0.
Wed, 02 Aug 2023 15:12:52 +0000


Release License


nifty is a decentralized (pseudo) package manager and script runner written in Nim.

Main features

In a nutshell, nifty is a program that executes user-defined scripts on a set of folders or files within a user-define package folder. It doesn’t do (almost) anything by itself, it just relies on other programs and utilities that are typically already available on your system like git and curl to do all the heavy-lifting.

Run side-by-side your existing package manager

nifty doesn’t claim to replace your existing package manager, therefore it tries not to get too much in the way of your existing project structure. All it needs to work resides in a humble nifty.json file that is used to:

The folder where packages will be stored is by default set to a packages subfolder within the current project directory, but even this can be configured in the nifty.json file.

→ For an example of nifty.json file, see the one used by HastyScribe.

Define your own packages

For nifty, a package can be a folder containing files, or even a single files. Through the nifty.json file, you can define:

Define your own commands

You can use your nifty.json to teach nifty new tricks, i.e. how to execute new commands on packages. Your commands look like… well, CLI commands, except that you can use placeholders like {{name}} and {{src}} in them for your package name, source, etc.

Run on many different platforms and regardless of the type of project

nifty is a self-contained executable program written in Nim and runs on all platforms where Nim compiles. Also, unlike other package managers that are typically used within the context of one specific programming language (like NPM for Javascript or RubyGems for Ruby), nifty can be used in virtually any project, regardless of the programming language used.


→ For more information, see the Nifty User Guide.

git clone

contribute on