base on Command line interface for supplying proofs to the Nexus network. [](https://github.com/nexus-xyz/nexus-cli/releases)
[](https://github.com/nexus-xyz/nexus-cli/actions)
[](https://github.com/nexus-xyz/nexus-cli/blob/main/LICENSE-APACHE)
[](https://github.com/nexus-xyz/nexus-cli/blob/main/LICENSE-MIT)
# Nexus CLI
A high-performance command-line interface for contributing proofs to the Nexus network.
<figure>
<a href="https://beta.nexus.xyz/">
<img src="assets/images/nexus-network-image.png" alt="Nexus Network visualization showing a distributed network of interconnected nodes with a 'Launch Network' button in the center">
</a>
<figcaption>
<strong>Verifiable Computation on a Global Scale</strong><br>
We're building a global distributed prover network to unite the world's computers and power a new and better Internet: the Verifiable Internet. Connect to the beta and give it a try today.
</figcaption>
</figure>
## Nexus Network
[Nexus](https://nexus.xyz/) 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:
- Testnet 0: [October 8 – 28, 2024](https://blog.nexus.xyz/nexus-launches-worlds-first-open-prover-network/)
- Testnet I: [December 9 – 13, 2024](https://blog.nexus.xyz/the-new-nexus-testnet-is-live/)
- Testnet II: [February 18 – 22, 2025](https://blog.nexus.xyz/testnet-ii-is-open/)
- Devnet: February 22 - June 20 2025
- Testnet III: [Ongoing](https://blog.nexus.xyz/live-everywhere/)
---
## Quick Start
### Installation
#### Precompiled Binary (Recommended)
For the simplest and most reliable installation:
```bash
curl https://cli.nexus.xyz/ | sh
```
This will:
1. Download and install the latest precompiled binary for your platform.
2. Prompt you to accept the Terms of Use.
3. Start the CLI in interactive mode.
The exact installation script is viewable [here](./public/install.sh).
#### Non-Interactive Installation
For automated installations (e.g., in CI):
```bash
curl -sSf https://cli.nexus.xyz/ -o install.sh
chmod +x install.sh
NONINTERACTIVE=1 ./install.sh
```
### Proving
Proving with the CLI is documented [here](https://docs.nexus.xyz/layer-1/testnet/cli-node).
To start with an existing node ID, run:
```bash
nexus-cli start --node-id <your-node-id>
```
Alternatively, you can register your wallet address and create a node ID with the CLI, or at [app.nexus.xyz](https://app.nexus.xyz).
```bash
nexus-cli register-user --wallet-address <your-wallet-address>
nexus-cli register-node
nexus-cli start
```
The `register-user` and `register-node` commands will save your credentials to `~/.nexus/config.json`. To clear credentials, run:
```bash
nexus-cli logout
```
For troubleshooting or to see available command line options, run:
```bash
nexus-cli --help
```
---
## Terms of Use
Use of the CLI is subject to the [Terms of Use](https://nexus.xyz/terms-of-use).
First-time users running interactively will be prompted to accept these terms.
---
## Node ID
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:
```json
{
"node_id": "<YOUR NODE ID>"
}
```
---
## Current Limitations
- To submit programs to the network for proving, contact
[
[email protected]](mailto:
[email protected]).
---
## Get Help
- [Network FAQ](https://docs.nexus.xyz/layer-1/network-devnet/faq)
- [Discord Community](https://discord.gg/nexus-xyz)
- Technical issues? [Open an issue](https://github.com/nexus-xyz/nexus-cli/issues)
---
## Contributing
Interested in contributing to the Nexus Network CLI? Check out our
[Contributor Guide](./CONTRIBUTING.md) for:
- Development setup instructions
- How to report issues and submit pull requests
- Our code of conduct and community guidelines
- Tips for working with the codebase
For most users, we recommend using the precompiled binaries as described above.
The contributor guide is intended for those who want to modify or improve the CLI
itself.
### 🛠 Developer Guide
The following steps may be required in order to setup a development environment for contributing to the project:
#### Linux
```bash
sudo apt update
sudo apt upgrade
sudo apt install build-essential pkg-config libssl-dev git-all
sudo apt install protobuf-compiler
```
#### macOS
```bash
# Install using Homebrew
brew install protobuf
# Verify installation
protoc --version
```
#### Windows
[Install WSL](https://learn.microsoft.com/en-us/windows/wsl/install),
then see Linux instructions above.
```bash
# Install using Chocolatey
choco install protobuf
```
### Building ProtoBuf files
To build the ProtoBuf files, run the following command in the `clients/cli` directory:
```bash
cargo build --features build_proto
```
### Creating a Release
To create a release, update the package version in `Cargo.toml`, then create and push a new (annotated) tag, e.g.:
```bash
git tag -a v0.1.2 -m "Release v0.1.2"
git push origin v0.1.2
```
This will trigger the GitHub Actions release workflow that compiles binaries and pushes the Docker image, in
addition to creating release.
**WARNING**: Creating a release through the GitHub UI creates a new release but does **NOT** trigger
the workflow. This leads to a release without a Docker image or binaries, which breaks the installation script.
", Assign "at most 3 tags" to the expected json: {"id":"14111","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"