The unified CLI for Nepher Robotics — accounts, hackathons, EnvHub, tournaments, and SimStore from a single tool.
Requires: Python 3.10+
pip install nepher-cliBoth npcli and nepher-cli entry points are registered after install.
npcli --version
npcli --help| Command / Group | Description |
|---|---|
npcli login |
Log in with a Nepher API key |
npcli whoami |
Show the currently authenticated user |
npcli logout |
Clear locally stored credentials |
npcli account |
API keys and coldkey registration |
npcli tournament |
Browse tournaments, submit agents, leaderboards |
npcli envhub |
Manage Isaac Lab environment bundles |
npcli hackathon |
Browse and submit to hackathons |
npcli simstore |
SimStore marketplace (coming soon) |
npcli login --api-key nepher_xxxxxxxx
npcli whoami
npcli logoutGet your API key at nepher.ai/account → Account → API Keys.
For CI/CD, set NEPHER_API_KEY=nepher_xxxxxxxx instead of logging in.
npcli tournament list
npcli tournament list-active
npcli tournament status <tournament_id>
npcli tournament leaderboard <tournament_id>Check your agent directory structure (no extra dependencies needed):
npcli tournament check --path ./my-agent
npcli tournament check --path ./my-agent --verbose # also show recommended-file warningsSubmit an agent (requires bittensor-wallet for wallet signing):
pip install bittensor-wallet
# or: pip install "nepher-cli[bittensor]"npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey defaultFull options for submit:
--path <path> Agent directory
--wallet-name <str> Bittensor wallet name (default: miner)
--wallet-hotkey <str> Bittensor wallet hotkey (default: default)
--api-key <key> Nepher API key (falls back to stored credentials)
--tournament-id <id> Target tournament ID (required when multiple are active)
--api-url <url> Override tournament API URL
-v / --verbose Verbose output
npcli envhub list
npcli envhub download <env_id>
npcli envhub upload ./my-bundle --category navigation
npcli envhub cache list
npcli envhub cache info
npcli envhub cache clearnpcli hackathon list
npcli hackathon submit \
--title "My entry" \
--submission ./my-project \
--assets ./my-assetsFull options:
--hackathon-id <uuid> Required when multiple hackathons are open
--title <str> Entry title
--description <markdown> Entry description
--thumbnail <file> Cover image (JPEG, PNG, WebP, GIF)
--submission <path> Project folder or submission.zip
--assets <path> Assets folder or assets.zip (images, videos, PDFs)
--public-source Mark source as public
list / create / revoke need a JWT session from npcli account login.
Do not pass --api-key on these commands (that flag sends X-API-Key, which the account API rejects for key management).
npcli account login --api-key nepher_...
npcli account api-keys list
npcli account api-keys create --name "CI key" --platform hackathon
npcli account api-keys revoke <key_id>Bind a Bittensor coldkey to your account (requires bittensor-wallet; btcli is optional fallback):
pip install bittensor-wallet
npcli account register-coldkey --wallet <wallet_name>Signing uses the local coldkey via bittensor-wallet and does not import btcli. If you still have a mixed Bittensor venv (scalecodec + cyscale), register-coldkey keeps working as long as bittensor-wallet is installed.
- Must start with
nepher_ - Must be active and not expired
hackathon submitrequires Hackathon scope (or an unrestricted key)tournament submitrequires Tournament scope (or an unrestricted key)
| Error | Fix |
|---|---|
npcli: command not found |
Ensure pip install succeeded and Python scripts dir is on PATH |
invalid api key format |
Key must start with nepher_ |
api key does not have hackathon access |
Enable Hackathon scope or use an unrestricted key |
api key expired |
Run npcli account api-keys create |
Several hackathons are accepting submissions |
Re-run with --hackathon-id |
bittensor-wallet not installed |
pip install bittensor-wallet (needed for tournament submit and account register-coldkey) |
Not logged in |
npcli login --api-key nepher_... |
Conflict detected: 'scalecodec' ... conflicts with 'cyscale' |
Leftover scalecodec after a Bittensor upgrade. Prefer pip install bittensor-wallet so npcli never needs btcli. To repair btcli itself: pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall |
Run any command with --help for full flag details:
npcli --help
npcli hackathon submit --help
npcli tournament submit --helpMIT