| 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:
| February 2026 | nimble 2.2.8 |