A high-performance command-line interface for contributing proofs to the Nexus network.
Nexus is a global distributed prover network that unites the world's computers to power a new and better Internet: the Verifiable Internet.
There have been several testnets so far:
For the simplest one-command install (especially for local testing or personal use). This is what most users will want to do:
curl https://cli.nexus.xyz/ | sh
Note: This script automatically installs Rust if you don’t have it and prompts for Terms of Use in an interactive shell.
Alternatively, if you’ve already downloaded install.sh
:
./install.sh
The install.sh
script is designed to do several things:
# this is the part in the install.sh script has the brittle `< /dev/tty` part within CI environments
(
cd "$REPO_PATH/clients/cli" || exit
cargo run --release -- start --env beta
) < /dev/tty
This combination of bash and Rust is a bit brittle in CI environments. Consider these approaches instead:
git clone https://github.com/nexus-xyz/nexus-cli
cd nexus-cli/clients/cli
cargo build --release
./target/release/nexus-network start --env beta
NONINTERACTIVE=1
if you need it to run without prompts):
curl -sSf https://cli.nexus.xyz/ -o install.sh
chmod +x install.sh
NONINTERACTIVE=1 ./install.sh
Building from source or running a downloaded script gives you more control over dependencies and versions, and avoids any unexpected prompts during automated runs.
If you want to simulate curl https://cli.nexus.xyz/ | sh
locally:
python3 -m http.server 8080
curl -sSf http://localhost:8080/public/install.sh | sh -x
If you don’t have Rust installed, you will be prompted to install it (unless NONINTERACTIVE=1
is set).
sudo apt update && sudo apt upgrade
sudo apt install build-essential pkg-config libssl-dev git-all
brew install git
Use of the CLI is subject to the Terms of Use. First-time users running interactively will be prompted to accept these terms. For non-interactive acceptance (e.g., in CI), run:
NONINTERACTIVE=1 sh install.sh
or export NONINTERACTIVE=1
before invoking the curl installer.
During the CLI’s startup, you’ll be asked for your node ID. To skip prompts in a non-interactive environment, manually create a ~/.nexus/config.json
in the following format:
{
"node_id": "<YOUR NODE ID>"
}
nexus-cli/
├── assets/ # Media for documentation
├── clients/
│ └── cli/ # Main CLI implementation
├── proto/ # Shared network interface definition
└── public/ # Files hosted at cli.nexus.xyz
See CONTRIBUTING.md for development setup and guidelines.