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