NIMBLE(1)

πŸ’… NIMBLE(1) πŸ’…

okay bestie, pull up a chair β€” this is the Nimble page from the User Commands manual, and it's honestly a lot, but we're getting through it together, no skips, no cap. 🫢 this is your girl's guide to the Nim Package Installer and she does. it. all.


✨ NAME ✨

nimble β€” the Nim Package Installer. that's the whole name section. she's concise, she's booked, she's iconic. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

nimble [nimbleopts] COMMAND [cmdopts]

so it's nimble opts first, then the COMMAND, then that command's own opts. order girlies. πŸ’«


πŸŽ€ DESCRIPTION πŸŽ€

🧚 Commands 🧚

install

  • [pkgname, ...] β€” installs a list of packages.
  • -d, --depsOnly β€” only install dependencies. leave out pkgname and it installs deps for a local nimble package instead.
  • -p, --passNim β€” forwards the flag you specify to the compiler.
  • --noRebuild β€” don't rebuild binaries if they're already up-to-date. we love a lazy queen who respects her own time. πŸ’…

develop

  • [pkgname, ...] β€” clones a list of packages for development. adds them to a develop file if one is specified, or to nimble.develop if not specified and executed in the package's directory.
  • --withDependencies β€” also puts the dependencies of the packages in the list into develop mode β€” or of the current directory package if the list is empty.
  • -p, --path path β€” specifies the path where the packages should be cloned.
  • -a, --add path β€” adds a package at the given path to a specified develop file, or to nimble.develop if not specified and executed in the package's directory.
  • -r, --removePath path β€” removes a package at the given path from a specified develop file, or from nimble.develop if not specified and executed in the package's directory.
  • -n, --removeName name β€” removes a package with the given name from a specified develop file, or from nimble.develop if not specified and executed in the 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 the 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 the package's directory.

check

  • verifies the validity of a package in the current working directory. vibe check, but for your package. βœ…

init

  • [pkgname] β€” initializes a new Nimble project in the current directory, or, if a name is provided, in 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. main character moment only works from the top level, bestie. πŸ‘‘

uninstall

  • [pkgname, ...] β€” uninstalls a list of packages.
  • -i, --inclDeps β€” uninstalls the package and its dependent package(s).

build

  • [opts, ...] [bin] β€” builds a package. passes options to the Nim compiler.

clean

  • clean build artifacts. the digital equivalent of clearing out your saved tiktoks. 🧹

guide

  • opens the Nimble User Guide in your preferred browser. study session, babes. πŸ“–

add

  • adds packages to your project's dependencies.

run

  • [opts, ...] [bin] β€” builds and runs a package. the binary needs to be specified after any compilation options if there are several binaries defined. any flags after the binary or after the -- 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. keep going, we believe in you. 😭
  • [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.
  • pkg/tag β€” searches for a specified package. the search is performed by tag and by name.
  • --ver, --version β€” queries the remote server for the 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 the 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 the current package.
  • --tree β€” outputs the dependency tree.
  • --inverted β€” outputs the 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 the 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 the 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. yes girl say yes. πŸ’–
  • -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 the remote server for package version information when searching or listing packages.
  • --nimbleDir:dirname β€” set the Nimble directory.
  • --nim:path β€” use the specified path for the 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 is 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 compiling the Nim version once and reusing 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

ngl bestie, that was a lot of options, and we read every single one. not me being thorough. πŸ’€

that's the whole page, you made it! πŸŽ‰ this was nimble 2.2.12, dated September 2026, and it's filed under NIMBLE(1) in the User Commands manual. go forth and install something iconic. πŸ’œβœ¨

πŸ“¦ where this page comes from