Introduction
Quiver is an extremely fast Nu project and package manager. It installs Nu modules and plugins distributed as git repositories. It handles dependency resolution, fetching, lockfiles, and project-local environment setup for Nushell projects.
What Quiver Does
Quiver takes inspiration from tools like uv for Python and creates a similar experience for managing Nu projects and modules.
- Supports specifying a specific version of Nu for a project, managing both the installation and loading the environment with that version of Nu
- Resolves module and plugin dependencies from git repositories
- Installs dependencies into a project-local
.nu-env/environment - Writes
quiver.lockwith pinned revisions and checksums for reproducible environments - Reuses shared caches so repeated installs are fast
- Simply
qv runon a script in your package to run it with the full environment or enter the environment shell withqv run nuwith plugins and modules ready to use - Generates shell and editor integration for Nushell workflows
Install
Install a released build with one of these options:
brew install freepicheep/tap/quivermise use -g github:freepicheep/quivercurl --proto '=https' --tlsv1.2 -LsSf https://github.com/freepicheep/quiver/releases/latest/download/quiver-installer.sh | shOr build from source:
cargo install --git https://github.com/freepicheep/quiverQuick Start
mkdir my-project
cd my-project
# initialize the project, optionally specifying the version of Nu
qv init --nu-version ">=0.111.0"
# add modules from GitHub repos (or full url for any git provider)
qv add freepicheep/nu-salesforce
# add plugins, including core plugins
qv add-plugin polars
# install everything and enter the shell with everything ready to use
qv install
# run a specific script in your project
qv run my-project/reformat_accounts.nu
# or enter the Nu REPL with your project's dependencies ready to use
qv run nuHow It Works
A Quiver project centers around these files:
nupackage.tomldeclares package metadata and dependencies.nu-env/contains the generated local environmentquiver.lockpins exact commits and checksums
Running qv init or qv install prepares a local environment that looks like this:
.nu-env/
├── activate.nu
├── config.nu
├── plugins.msgpackz
├── bin/
│ └── nu
└── modules/Quiver also keeps shared installs outside the project in the quiver store so multiple repos can reuse the same git cache, plugin binaries, and Nushell versions.
Next Pages
If you are new to Quiver, continue with Getting Started. If you need help with the file formats, go to Manifest and Lockfile. If you want implementation details, go to Architecture.