Napman is not a package manager.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adrian Malacoda 8689182ef0 Use GithubSource for Cockatrice project 4 months ago
napman Add general logic for pulling from github project 4 months ago
scripts Use GithubSource for Cockatrice project 4 months ago
.gitignore Initial commit 5 months ago
LICENSE Initial commit 5 months ago
Makefile Initial commit 5 months ago update documentation 5 months ago Initial commit 5 months ago
run Initial commit 5 months ago Add plumbum dependency. 5 months ago


Napman is not a package manager. What it is is a very simplistic tool that will keep track of versions of software not present in your package repository. Each item in Napman is represented by a Python script, which knows how to determine the latest version, install, or uninstall. Such a script can, for example, scrape a web page to find the latest version, and then find a download link to an archive. Examples of such scripts can be found under the scripts directory.

Napman stores all its information by default under $HOME/.napman. The data for a particular script is stored under $HOME/.napman/$NAME. The Python script itself is at $HOME/.napman/$NAME/ following convention. $HOME/.napman/$NAME/latest.version stores the latest version of that software that Napman knows about. Also, sometimes $HOME/.napman/$NAME/installed.version will store the version currently installed, but each script is free to determine this in its own way (e.g. by parsing the output from a command).

There are a lot of things Napman doesn’t do out of the box (e.g. signature verification, dependency management) although scripts can of course include these as well. As the name states, it should not be considered a proper package manager.


  • list - list all scripts registered in Napman
  • add <script> - add a script (local file or URL) to Napman
  • remove <name> - removes the script for name from Napman. Does not actually uninstall anything, or remove any other data associated with the script in Napman.
  • install <name> [<version>] - run install script for name, optionally specifying the version. Will default to the known most recent version.
  • uninstall <name> - run uninstall script for name
  • refresh - refresh the known versions for all scripts
  • refresh <name> - refresh the known version for name
  • update <name> - run the install script for name only if the latest known version is different than the installed version
  • update - run update for all scripts
  • run <name> <command> [<command-args>...] - execute arbitrary command against name with the given command-args


virtualenv -p python3 venv
. venv/bin/activate
pip install -e .


. venv/bin/activate
napman <command> <arguments>


GNU General Public License, version 3 or later.