nargo-add CLI Tool
A CLI tool to add and remove packages from the Noir registry in your Nargo.toml.
Installation
Install from crates.io (Recommended) ⭐
This installs both nargo-add and nargo (wrapper) binaries to ~/.cargo/bin/. Make sure ~/.cargo/bin is in your PATH.
After installation, you can use nargo add directly!
Install from GitHub
Configure Registry URL (Optional)
The tool defaults to https://noir-registry-production-229a.up.railway.app/api. To use a different registry:
# Set environment variable (in your ~/.bashrc or ~/.zshrc)
Or use the --registry flag for each command.
Alternative: Build and Install Manually
# Build release binary
# Copy to a directory in your PATH
# or
Usage
Once installed, use nargo add and nargo remove in your Noir project (recommended):
# Navigate to your Noir project
# Add a package from the registry (recommended way)
# Add with custom registry URL
# Add with specific Nargo.toml path
# Remove a package
# Remove multiple packages at once
# Remove and also delete cached source files from ~/nargo
# Remove with specific Nargo.toml path
Alternative: You can also use the binaries directly:
Example Workflow
# 1. Create a new Noir project (or navigate to existing one)
# 2. Add dependencies from the registry
# 3. Your Nargo.toml now has the dependencies
# 4. Remove a dependency you no longer need
# 5. Verify it was removed
How it works
nargo add:
- Fetches package information from your registry API
- Finds
Nargo.tomlin the current directory (or walks up to find it) - Adds the dependency with the correct format:
package-name = { git = "url" }
nargo remove:
- Finds
Nargo.tomlin the current directory (or walks up to find it) - Removes the named dependency from the
[dependencies]section - Supports removing multiple packages in a single command
- With
--clean, also deletes cached source files from~/nargo/<domain>/<owner>/<repo>/ - Validates the TOML file is still well-formed after removal
Requirements
- Rust and Cargo installed
- Your registry server should be running
- Network access to the registry API
Configuration
Environment Variables
NOIR_REGISTRY_URL- Default registry API URL (defaults tohttps://noir-registry-production-229a.up.railway.app/api)
Example:
Command Line Options
nargo add:
--registry <URL>- Override registry URL for this command--manifest-path <PATH>- Specify Nargo.toml path explicitly
nargo remove:
--clean- Also delete cached source files from~/nargo--manifest-path <PATH>- Specify Nargo.toml path explicitly
Features
✅ Production-Ready Features:
- Environment variable support (
NOIR_REGISTRY_URL) - Network retry logic with exponential backoff
- Comprehensive error messages with troubleshooting tips
- TOML validation after modifications
- Timeout handling for network requests
- Clear user feedback and progress indicators
Troubleshooting
"nargo add: command not found" or "nargo-add: command not found"
- Install from crates.io:
cargo install nargo-add - Or install from GitHub:
cargo install --git https://github.com/CECILIA-MULANDI/noir-registry --bin nargo-add --path cli-tool - Check that
~/.cargo/binis in your PATH:echo $PATH - Verify installation:
which nargo-add(should show~/.cargo/bin/nargo-add) - Verify wrapper:
which nargo(should show~/.cargo/bin/nargoif installed) - Note: If you already have
nargoinstalled (from Noir), the wrapper will delegate non-"add" commands to the real nargo
"Could not find Nargo.toml"
- Make sure you're in a Noir project directory
- Or use
--manifest-pathto specify the path:nargo add package-name --manifest-path /path/to/Nargo.toml
"Package not found in registry"
- Make sure your registry server is running
- Check the registry URL:
echo $NOIR_REGISTRY_URLor use--registryflag - Verify the package name exists:
curl $NOIR_REGISTRY_URL/packages/package-name - Check network connectivity
"Failed to connect to registry"
- The tool will automatically retry 3 times with exponential backoff
- Check that the registry URL is correct
- Verify network connectivity:
curl $NOIR_REGISTRY_URL/health - Check firewall/proxy settings
"Dependency already exists"
- The tool prevents duplicate dependencies
- To update, remove and re-add:
nargo remove pkg && nargo add pkg
"Dependency not found" (when removing)
- The package is not listed in your
Nargo.toml[dependencies]section - Check the exact package name (case-sensitive)
- Use
cat Nargo.tomlto see current dependencies