Reference

nimble(1)

Nim Package Installer

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.

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.

-g, --global

Run in global dependency mode.

--resolver:minver|maxver

Pick the lowest (minver) or newest (maxver, default) version satisfying each requirement.

-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.

--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.

--sync

Disable parallel downloads and version discovery.

For more information read the GitHub readme:

https://github.com/nim-lang/nimble#readme

History

--developFile since Arch Linux 2026-11-01; --disableNimBinaries since Arch Linux 2026-11-01; --features since Arch Linux 2026-11-01; --global since Arch Linux 2026-11-01; --ignoreSubmodules since Arch Linux 2026-11-01; --info since Arch Linux 2026-11-01; --localdeps since Debian 11 (Bullseye); --lockFile since Arch Linux 2026-11-01; --maximumTaggedVersions since Arch Linux 2026-11-01; --noColor since Debian 10 (Buster); --noLockfile since Arch Linux 2026-11-01; --noSslCheck since Arch Linux 2026-11-01; --offline since Arch Linux 2026-11-01; --package since Arch Linux 2026-11-01; --requires since Arch Linux 2026-11-01; --silent since Debian 11 (Bullseye); --sync since Arch Linux 2026-11-01; --tarballs since Arch Linux 2026-11-01; --useSystemNim since Arch Linux 2026-11-01; -g since Arch Linux 2026-11-01; -l since Debian 11 (Bullseye); -p since Arch Linux 2026-11-01; -t since Arch Linux 2026-11-01.

--nimbleDir until Debian 9 (Stretch); --noSSLCheck until Debian 12 (Bookworm).