NIMBLE(1) User Commands NIMBLE(1) NAME nimble - Nim Package Installer SYNOPSIS nimble [nimbleopts] COMMAND [cmdopts] DESCRIPTION Commands: install [pkgname, ...] Installs a list of packages. [-d, --depsOnly] Only install dependencies. Leave out pkgname to install deps for a local nimble package. [-p, --passNim] Forward specified flag to compiler. [--noRebuild ] Don't rebuild binaries if they're up-to-date. develop [pkgname, ...] Clones a list of packages for development. Adds them to a develop file if specified or to `nimble.develop` if not specified and executed in package's directory. [--withDependencies] Puts in develop mode also the dependencies of the packages in the list or of the current directory package if the list is empty. [-p, --path path] Specifies the path whether the packages should be cloned. [-a, --add path] Adds a package at given path to a specified develop file or to `nimble.develop` if not specified and executed in package's directory. [-r, --removePath path] Removes a package at given path from a specified develop file or from `nimble.develop` if not specified and executed in package's directory. [-n, --removeName name] Removes a package with a given name from a specified develop file or from `nimble.develop` if not specified and executed in package's directory. [-i, --include file] Includes a develop file into a specified develop file or to `nimble.develop` if not specified and executed in package's directory. [-e, --exclude file] Excludes a develop file from a specified develop file or from `nimble.develop` if not specified and executed in package's directory. [-g, --global] Creates an old style link file in the special `links` directory. It is read by Nim to be able to use global develop mode packages. Nimble uses it as a global develop file if a local one does not exist. check Verifies the validity of a package in the current working directory. init [pkgname] Initializes a new Nimble project in the current directory or if a name is provided a new directory of the same name. [--git, --hg] Creates a git/hg repo in the new nimble project. publish Publishes a package on nim-lang/packages. The current working directory needs to be the top level directory of the Nimble package. uninstall [pkgname, ...] Uninstalls a list of packages. [-i, --inclDeps] Uninstalls package and dependent package(s). build [opts, ...] [bin] Builds a package. Passes options to the Nim compiler. clean Clean build artifacts. guide Open the Nimble User Guide in your preferred browser. add Adds packages to your project's dependencies. run [opts, ...] [bin] Builds and runs a package. Binary needs to be specified after any compilation options if there are several binaries defined. Any flags after the binary or -- arg are passed to the binary when it is run. c, cc, js [opts, ...] f.nim Builds a file inside a package. Passes options to the Nim compiler. test Compiles and executes tests. [-c, --continue] Don't stop execution on a failed test. [opts, ...] Passes options to the Nim compiler. doc, doc2 [opts, ...] f.nim Builds documentation for a file inside a package. Passes options to the Nim compiler. refresh [url] Refreshes the package list. A package list URL can be optionally specified. search pkg/tag Searches for a specified package. Search is performed by tag and by name. [--ver, --version] Queries remote server for package version. list Lists all packages. [-i, --installed] Lists all installed packages. [--ver, --version] Also display versions for packages. [-n, --nimbinaries] Lists all installed packages. tasks Lists the tasks specified in the Nimble package's Nimble file. path pkgname ... Shows absolute path to the installed packages specified. dump [pkgname] Outputs Nimble package information for external tools. The argument can be a .nimble file, a project directory or the name of an installed package. [--ini, --json] Selects the output format (the default is --ini). Only applicable to package information. [--collect] Collects all the packages in the dependency tree of the given package and shows the result in the console. [--solve] Solves the dependency tree of the given package and shows the result in the console. lock Generates or updates a package lock file. upgrade [pkgname, ...] Upgrades a list of packages in the lock file. deps Outputs dependencies for current package. [--tree] Outputs dependency tree. [--inverted] Outputs inverted (reversed) dependency tree. [--format type] Specify the output format. Json is the only supported format. Only some commands support it. sync Synchronizes develop mode dependencies with the content of the lock file. [-l, --listOnly] Only lists the packages which are not synced without actually performing the sync operation. setup Creates `nimble.paths` file containing file system paths to the dependencies. Also includes the paths file in the `config.nims` file to make them available for the compiler. shell Creates a new shell with PATH modified to contain the bin folders of the dependencies. shellenv Similar to shell command but it returns the script to run in order to alter the environment. This is intended to be used in scripts. Nimble Options: -h, --help Print this help message. -v, --version Print version information. -y, --accept Accept all interactive prompts. -n, --reject Reject all interactive prompts. -l, --localdeps Run in project local dependency mode. -p, --package For which package in the dependency tree the command should be executed. If not provided by default it applies to the current directory package. For now, it is used only by the run action and it is ignored by others. -t, --tarballs Enable downloading of packages as tarballs when working with GitHub repositories. --ver Query remote server for package version information when searching or listing packages. --nimbleDir:dirname Set the Nimble directory. --nim:path Use specified path for Nim compiler. --silent Hide all Nimble and Nim output. --info Show some informative output. --verbose Show extra non-debugging output. --debug Show all output including debug messages. --offline Don't use network. --noColor Don't colorise output. --noSslCheck Don't check SSL certificates. --lockFile Override the lock file name. --noLockfile Ignore the lock file if present. --developFile Specifies the name of the develop file which to be manipulated. If not present creates it. --useSystemNim Use system nim and ignore nim from the lock file if any. --solver:sat|legacy Use the SAT solver (default) or the legacy for dependency resolution. --requires Add extra packages to the dependency resolution. Uses the same syntax as the Nimble file. Example: nimble install --requires "pkg1; pkg2 >= 1.2". --disableNimBinaries Disable the use of nim precompiled binaries. Note in some platforms precompiled binaries are not available but the flag can still be used to avoid compile the Nim version once and reuse it. --maximumTaggedVersions Maximum number of tags to check for a package when discovering versions for the SAT solver. 0 means all. --parser:declarative|nimvm Use the declarative parser or the nimvm parser (default). --features Activate features. Only used when using the declarative parser. --ignoreSubmodules Ignore submodules when cloning a repository. --legacy Use the legacy code path (pre nimble 1.0.0) For more information read the GitHub readme: https://github.com/nim-lang/nimble#readme nimble 2.2.8 February 2026 NIMBLE(1)