nepher-cli 0.2.6__tar.gz → 0.2.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/.gitignore +8 -8
  2. nepher_cli-0.2.7/PKG-INFO +177 -0
  3. nepher_cli-0.2.7/README.md +149 -0
  4. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/pyproject.toml +62 -62
  5. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/__init__.py +10 -10
  6. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/__main__.py +4 -4
  7. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/cli.py +64 -64
  8. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/__init__.py +1 -1
  9. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/account.py +718 -718
  10. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/envhub.py +528 -481
  11. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/hackathon.py +760 -760
  12. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/highlight.py +307 -307
  13. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/simstore.py +49 -49
  14. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/commands/tournament.py +685 -685
  15. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/config.py +47 -47
  16. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/core/__init__.py +1 -1
  17. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/core/credentials.py +243 -243
  18. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/core/http.py +90 -90
  19. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/envhub/__init__.py +1 -1
  20. nepher_cli-0.2.7/src/nepher_cli/envhub/bundle.py +73 -0
  21. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/envhub/cache.py +61 -56
  22. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/envhub/config.py +203 -180
  23. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/tournament/__init__.py +1 -1
  24. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/tournament/agent_check.py +60 -60
  25. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/tournament/api.py +117 -117
  26. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/tournament/packer.py +50 -50
  27. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/tournament/wallet.py +89 -89
  28. nepher_cli-0.2.6/PKG-INFO +0 -200
  29. nepher_cli-0.2.6/README.md +0 -172
  30. {nepher_cli-0.2.6 → nepher_cli-0.2.7}/src/nepher_cli/py.typed +0 -0
@@ -1,8 +1,8 @@
1
- .venv/
2
- __pycache__/
3
- *.py[cod]
4
- .ruff_cache/
5
- .pytest_cache/
6
- *.egg-info/
7
- dist/
8
- build/
1
+ .venv/
2
+ __pycache__/
3
+ *.py[cod]
4
+ .ruff_cache/
5
+ .pytest_cache/
6
+ *.egg-info/
7
+ dist/
8
+ build/
@@ -0,0 +1,177 @@
1
+ Metadata-Version: 2.4
2
+ Name: nepher-cli
3
+ Version: 0.2.7
4
+ Summary: npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore
5
+ Project-URL: Homepage, https://github.com/nepher-ai/nepher-cli
6
+ Author: Nepher
7
+ License: MIT
8
+ Keywords: bittensor,cli,envhub,hackathon,nepher,subnet,tournament
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Requires-Python: >=3.10
17
+ Requires-Dist: click>=8.1.0
18
+ Requires-Dist: httpx>=0.27.0
19
+ Requires-Dist: keyring>=25.0.0
20
+ Requires-Dist: platformdirs>=4.0.0
21
+ Requires-Dist: rich>=13.7.0
22
+ Provides-Extra: bittensor
23
+ Requires-Dist: bittensor-wallet>=4.1.0; extra == 'bittensor'
24
+ Provides-Extra: dev
25
+ Requires-Dist: pytest>=8.0.0; extra == 'dev'
26
+ Requires-Dist: ruff>=0.4.0; extra == 'dev'
27
+ Description-Content-Type: text/markdown
28
+
29
+ <div align="center">
30
+
31
+ # nepher-cli
32
+
33
+ **The unified CLI for [Nepher Robotics](https://nepher.ai): accounts, tournaments, hackathons, EnvHub and SimStore.**
34
+
35
+ [![PyPI](https://img.shields.io/pypi/v/nepher-cli)](https://pypi.org/project/nepher-cli/)
36
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
37
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](#license)
38
+
39
+ [Install](#install) •
40
+ [Commands](#commands) •
41
+ [Tournaments](#tournaments) •
42
+ [EnvHub](#envhub) •
43
+ [Hackathons](#hackathons) •
44
+ [Account](#account) •
45
+ [Troubleshooting](#troubleshooting)
46
+
47
+ </div>
48
+
49
+ ---
50
+
51
+ ## Install
52
+
53
+ ```bash
54
+ pip install nepher-cli
55
+ pip install "nepher-cli[bittensor]" # adds wallet signing for tournament submit and coldkey registration
56
+ ```
57
+
58
+ This installs two equivalent commands, `npcli` and `nepher-cli`.
59
+
60
+ ## Quick start
61
+
62
+ ```bash
63
+ npcli login --api-key nepher_xxxxxxxx
64
+ npcli whoami
65
+ npcli --help
66
+ ```
67
+
68
+ Get your API key at [nepher.ai/account](https://nepher.ai/account) under **API Keys**. In CI/CD, set `NEPHER_API_KEY` instead of logging in.
69
+
70
+ ## Commands
71
+
72
+ | Command | Description |
73
+ |---|---|
74
+ | `npcli login` / `whoami` / `logout` | Manage authentication |
75
+ | `npcli account` | API keys and coldkey registration |
76
+ | `npcli tournament` | Browse tournaments, check and submit agents, view leaderboards |
77
+ | `npcli envhub` | Manage Isaac Lab environment bundles |
78
+ | `npcli hackathon` | Browse and submit to hackathons |
79
+ | `npcli simstore` | SimStore marketplace (coming soon) |
80
+
81
+ Run any command with `--help` for all options.
82
+
83
+ ## Tournaments
84
+
85
+ ```bash
86
+ npcli tournament list # or list-active
87
+ npcli tournament status <tournament_id>
88
+ npcli tournament leaderboard <tournament_id>
89
+ npcli tournament check --path ./my-agent
90
+ npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
91
+ ```
92
+
93
+ `check` validates the agent directory (add `--verbose` for recommended-file warnings). `submit` requires `bittensor-wallet`.
94
+
95
+ <details>
96
+ <summary>Full <code>tournament submit</code> options</summary>
97
+
98
+ | Option | Description |
99
+ |---|---|
100
+ | `--path <path>` | Agent directory |
101
+ | `--wallet-name <str>` | Bittensor wallet name (default: `miner`) |
102
+ | `--wallet-hotkey <str>` | Bittensor wallet hotkey (default: `default`) |
103
+ | `--api-key <key>` | Nepher API key (falls back to stored credentials) |
104
+ | `--tournament-id <id>` | Target tournament, required when several are active |
105
+ | `--api-url <url>` | Override the tournament API URL |
106
+ | `-v`, `--verbose` | Verbose output |
107
+
108
+ </details>
109
+
110
+ ## EnvHub
111
+
112
+ ```bash
113
+ npcli envhub list
114
+ npcli envhub download <env_id>
115
+ npcli envhub upload ./my-bundle --category navigation
116
+ npcli envhub cache list | info | clear
117
+ ```
118
+
119
+ Shares login, API and cache with the standalone [`nepher`](https://github.com/nepher-ai/envhub) package.
120
+
121
+ ## Hackathons
122
+
123
+ ```bash
124
+ npcli hackathon list
125
+ npcli hackathon submit --title "My entry" --submission ./my-project --assets ./my-assets
126
+ ```
127
+
128
+ <details>
129
+ <summary>Full <code>hackathon submit</code> options</summary>
130
+
131
+ | Option | Description |
132
+ |---|---|
133
+ | `--hackathon-id <uuid>` | Required when several hackathons are open |
134
+ | `--title <str>` | Entry title |
135
+ | `--description <markdown>` | Entry description |
136
+ | `--thumbnail <file>` | Cover image (JPEG, PNG, WebP, GIF) |
137
+ | `--submission <path>` | Project folder or `submission.zip` |
138
+ | `--assets <path>` | Assets folder or `assets.zip` (images, videos, PDFs) |
139
+ | `--public-source` | Mark source as public |
140
+
141
+ </details>
142
+
143
+ ## Account
144
+
145
+ API key management needs a session from `npcli account login`. Don't pass `--api-key` to the `api-keys` commands; the account API rejects `X-API-Key` for key management.
146
+
147
+ ```bash
148
+ npcli account login --api-key nepher_...
149
+ npcli account api-keys list
150
+ npcli account api-keys create --name "CI key" --platform hackathon
151
+ npcli account api-keys revoke <key_id>
152
+ ```
153
+
154
+ Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is not needed):
155
+
156
+ ```bash
157
+ npcli account register-coldkey --wallet <wallet_name>
158
+ ```
159
+
160
+ Keys must start with `nepher_` and be active. `hackathon submit` needs Hackathon scope and `tournament submit` needs Tournament scope, or use an unrestricted key.
161
+
162
+ ## Troubleshooting
163
+
164
+ | Error | Fix |
165
+ |---|---|
166
+ | `npcli: command not found` | Check the install succeeded and Python's scripts directory is on `PATH` |
167
+ | `Not logged in` | `npcli login --api-key nepher_...` |
168
+ | `invalid api key format` | Key must start with `nepher_` |
169
+ | `api key expired` | Create a new key with `npcli account api-keys create` |
170
+ | `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
171
+ | `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
172
+ | `bittensor-wallet not installed` | `pip install bittensor-wallet` |
173
+ | `Conflict detected: 'scalecodec' ... 'cyscale'` | Leftover `scalecodec` from a Bittensor upgrade. Install `bittensor-wallet` so npcli doesn't need `btcli`, or repair `btcli` with `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
174
+
175
+ ## License
176
+
177
+ MIT © 2026 Nepher Robotics
@@ -0,0 +1,149 @@
1
+ <div align="center">
2
+
3
+ # nepher-cli
4
+
5
+ **The unified CLI for [Nepher Robotics](https://nepher.ai): accounts, tournaments, hackathons, EnvHub and SimStore.**
6
+
7
+ [![PyPI](https://img.shields.io/pypi/v/nepher-cli)](https://pypi.org/project/nepher-cli/)
8
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
9
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](#license)
10
+
11
+ [Install](#install) •
12
+ [Commands](#commands) •
13
+ [Tournaments](#tournaments) •
14
+ [EnvHub](#envhub) •
15
+ [Hackathons](#hackathons) •
16
+ [Account](#account) •
17
+ [Troubleshooting](#troubleshooting)
18
+
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## Install
24
+
25
+ ```bash
26
+ pip install nepher-cli
27
+ pip install "nepher-cli[bittensor]" # adds wallet signing for tournament submit and coldkey registration
28
+ ```
29
+
30
+ This installs two equivalent commands, `npcli` and `nepher-cli`.
31
+
32
+ ## Quick start
33
+
34
+ ```bash
35
+ npcli login --api-key nepher_xxxxxxxx
36
+ npcli whoami
37
+ npcli --help
38
+ ```
39
+
40
+ Get your API key at [nepher.ai/account](https://nepher.ai/account) under **API Keys**. In CI/CD, set `NEPHER_API_KEY` instead of logging in.
41
+
42
+ ## Commands
43
+
44
+ | Command | Description |
45
+ |---|---|
46
+ | `npcli login` / `whoami` / `logout` | Manage authentication |
47
+ | `npcli account` | API keys and coldkey registration |
48
+ | `npcli tournament` | Browse tournaments, check and submit agents, view leaderboards |
49
+ | `npcli envhub` | Manage Isaac Lab environment bundles |
50
+ | `npcli hackathon` | Browse and submit to hackathons |
51
+ | `npcli simstore` | SimStore marketplace (coming soon) |
52
+
53
+ Run any command with `--help` for all options.
54
+
55
+ ## Tournaments
56
+
57
+ ```bash
58
+ npcli tournament list # or list-active
59
+ npcli tournament status <tournament_id>
60
+ npcli tournament leaderboard <tournament_id>
61
+ npcli tournament check --path ./my-agent
62
+ npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
63
+ ```
64
+
65
+ `check` validates the agent directory (add `--verbose` for recommended-file warnings). `submit` requires `bittensor-wallet`.
66
+
67
+ <details>
68
+ <summary>Full <code>tournament submit</code> options</summary>
69
+
70
+ | Option | Description |
71
+ |---|---|
72
+ | `--path <path>` | Agent directory |
73
+ | `--wallet-name <str>` | Bittensor wallet name (default: `miner`) |
74
+ | `--wallet-hotkey <str>` | Bittensor wallet hotkey (default: `default`) |
75
+ | `--api-key <key>` | Nepher API key (falls back to stored credentials) |
76
+ | `--tournament-id <id>` | Target tournament, required when several are active |
77
+ | `--api-url <url>` | Override the tournament API URL |
78
+ | `-v`, `--verbose` | Verbose output |
79
+
80
+ </details>
81
+
82
+ ## EnvHub
83
+
84
+ ```bash
85
+ npcli envhub list
86
+ npcli envhub download <env_id>
87
+ npcli envhub upload ./my-bundle --category navigation
88
+ npcli envhub cache list | info | clear
89
+ ```
90
+
91
+ Shares login, API and cache with the standalone [`nepher`](https://github.com/nepher-ai/envhub) package.
92
+
93
+ ## Hackathons
94
+
95
+ ```bash
96
+ npcli hackathon list
97
+ npcli hackathon submit --title "My entry" --submission ./my-project --assets ./my-assets
98
+ ```
99
+
100
+ <details>
101
+ <summary>Full <code>hackathon submit</code> options</summary>
102
+
103
+ | Option | Description |
104
+ |---|---|
105
+ | `--hackathon-id <uuid>` | Required when several hackathons are open |
106
+ | `--title <str>` | Entry title |
107
+ | `--description <markdown>` | Entry description |
108
+ | `--thumbnail <file>` | Cover image (JPEG, PNG, WebP, GIF) |
109
+ | `--submission <path>` | Project folder or `submission.zip` |
110
+ | `--assets <path>` | Assets folder or `assets.zip` (images, videos, PDFs) |
111
+ | `--public-source` | Mark source as public |
112
+
113
+ </details>
114
+
115
+ ## Account
116
+
117
+ API key management needs a session from `npcli account login`. Don't pass `--api-key` to the `api-keys` commands; the account API rejects `X-API-Key` for key management.
118
+
119
+ ```bash
120
+ npcli account login --api-key nepher_...
121
+ npcli account api-keys list
122
+ npcli account api-keys create --name "CI key" --platform hackathon
123
+ npcli account api-keys revoke <key_id>
124
+ ```
125
+
126
+ Bind a Bittensor coldkey to your account (requires `bittensor-wallet`; `btcli` is not needed):
127
+
128
+ ```bash
129
+ npcli account register-coldkey --wallet <wallet_name>
130
+ ```
131
+
132
+ Keys must start with `nepher_` and be active. `hackathon submit` needs Hackathon scope and `tournament submit` needs Tournament scope, or use an unrestricted key.
133
+
134
+ ## Troubleshooting
135
+
136
+ | Error | Fix |
137
+ |---|---|
138
+ | `npcli: command not found` | Check the install succeeded and Python's scripts directory is on `PATH` |
139
+ | `Not logged in` | `npcli login --api-key nepher_...` |
140
+ | `invalid api key format` | Key must start with `nepher_` |
141
+ | `api key expired` | Create a new key with `npcli account api-keys create` |
142
+ | `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
143
+ | `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
144
+ | `bittensor-wallet not installed` | `pip install bittensor-wallet` |
145
+ | `Conflict detected: 'scalecodec' ... 'cyscale'` | Leftover `scalecodec` from a Bittensor upgrade. Install `bittensor-wallet` so npcli doesn't need `btcli`, or repair `btcli` with `pip uninstall scalecodec cyscale -y && pip install -U cyscale --force-reinstall` |
146
+
147
+ ## License
148
+
149
+ MIT © 2026 Nepher Robotics
@@ -1,62 +1,62 @@
1
- [build-system]
2
- requires = ["hatchling>=1.27,<1.32"]
3
- build-backend = "hatchling.build"
4
-
5
- [project]
6
- name = "nepher-cli"
7
- version = "0.2.6"
8
- description = "npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore"
9
- readme = "README.md"
10
- requires-python = ">=3.10"
11
- license = { text = "MIT" }
12
- authors = [{ name = "Nepher" }]
13
- keywords = ["nepher", "bittensor", "hackathon", "envhub", "cli", "tournament", "subnet"]
14
- classifiers = [
15
- "Development Status :: 4 - Beta",
16
- "Environment :: Console",
17
- "Intended Audience :: Developers",
18
- "Programming Language :: Python :: 3",
19
- "Programming Language :: Python :: 3.10",
20
- "Programming Language :: Python :: 3.11",
21
- "Programming Language :: Python :: 3.12",
22
- ]
23
- dependencies = [
24
- "httpx>=0.27.0",
25
- "rich>=13.7.0",
26
- "click>=8.1.0",
27
- "keyring>=25.0.0",
28
- "platformdirs>=4.0.0",
29
- ]
30
-
31
- [project.optional-dependencies]
32
- bittensor = ["bittensor-wallet>=4.1.0"]
33
- dev = [
34
- "pytest>=8.0.0",
35
- "ruff>=0.4.0",
36
- ]
37
-
38
- [project.scripts]
39
- npcli = "nepher_cli.cli:main"
40
- nepher-cli = "nepher_cli.cli:main"
41
-
42
- [project.urls]
43
- Homepage = "https://github.com/nepher-ai/nepher-cli"
44
-
45
- [tool.hatch.build.targets.wheel]
46
- packages = ["src/nepher_cli"]
47
- core-metadata-version = "2.4"
48
-
49
- [tool.hatch.build.targets.sdist]
50
- include = ["src/nepher_cli", "README.md", "pyproject.toml"]
51
- core-metadata-version = "2.4"
52
-
53
- [tool.ruff]
54
- line-length = 100
55
- target-version = "py310"
56
-
57
- [tool.ruff.lint]
58
- select = ["E", "F", "I", "UP", "B"]
59
-
60
- [tool.pytest.ini_options]
61
- testpaths = ["tests"]
62
- pythonpath = ["src"]
1
+ [build-system]
2
+ requires = ["hatchling>=1.27,<1.32"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "nepher-cli"
7
+ version = "0.2.7"
8
+ description = "npcli — unified Nepher command-line interface for accounts, hackathons, EnvHub, tournaments, and SimStore"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ authors = [{ name = "Nepher" }]
13
+ keywords = ["nepher", "bittensor", "hackathon", "envhub", "cli", "tournament", "subnet"]
14
+ classifiers = [
15
+ "Development Status :: 4 - Beta",
16
+ "Environment :: Console",
17
+ "Intended Audience :: Developers",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.10",
20
+ "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
+ ]
23
+ dependencies = [
24
+ "httpx>=0.27.0",
25
+ "rich>=13.7.0",
26
+ "click>=8.1.0",
27
+ "keyring>=25.0.0",
28
+ "platformdirs>=4.0.0",
29
+ ]
30
+
31
+ [project.optional-dependencies]
32
+ bittensor = ["bittensor-wallet>=4.1.0"]
33
+ dev = [
34
+ "pytest>=8.0.0",
35
+ "ruff>=0.4.0",
36
+ ]
37
+
38
+ [project.scripts]
39
+ npcli = "nepher_cli.cli:main"
40
+ nepher-cli = "nepher_cli.cli:main"
41
+
42
+ [project.urls]
43
+ Homepage = "https://github.com/nepher-ai/nepher-cli"
44
+
45
+ [tool.hatch.build.targets.wheel]
46
+ packages = ["src/nepher_cli"]
47
+ core-metadata-version = "2.4"
48
+
49
+ [tool.hatch.build.targets.sdist]
50
+ include = ["src/nepher_cli", "README.md", "pyproject.toml"]
51
+ core-metadata-version = "2.4"
52
+
53
+ [tool.ruff]
54
+ line-length = 100
55
+ target-version = "py310"
56
+
57
+ [tool.ruff.lint]
58
+ select = ["E", "F", "I", "UP", "B"]
59
+
60
+ [tool.pytest.ini_options]
61
+ testpaths = ["tests"]
62
+ pythonpath = ["src"]
@@ -1,10 +1,10 @@
1
- """npcli — unified Nepher command-line interface."""
2
-
3
- from __future__ import annotations
4
-
5
- from importlib.metadata import PackageNotFoundError, version
6
-
7
- try:
8
- __version__ = version("nepher-cli")
9
- except PackageNotFoundError: # pragma: no cover
10
- __version__ = "0.0.0"
1
+ """npcli — unified Nepher command-line interface."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from importlib.metadata import PackageNotFoundError, version
6
+
7
+ try:
8
+ __version__ = version("nepher-cli")
9
+ except PackageNotFoundError: # pragma: no cover
10
+ __version__ = "0.0.0"
@@ -1,4 +1,4 @@
1
- from nepher_cli.cli import main
2
-
3
- if __name__ == "__main__":
4
- raise SystemExit(main())
1
+ from nepher_cli.cli import main
2
+
3
+ if __name__ == "__main__":
4
+ raise SystemExit(main())
@@ -1,64 +1,64 @@
1
- """npcli — unified Nepher command-line interface."""
2
-
3
- from __future__ import annotations
4
-
5
- import click
6
-
7
- from nepher_cli import __version__
8
- from nepher_cli.commands.account import account, cmd_login, cmd_logout, cmd_whoami
9
- from nepher_cli.commands.envhub import envhub
10
- from nepher_cli.commands.hackathon import hackathon
11
- from nepher_cli.commands.simstore import simstore
12
- from nepher_cli.commands.tournament import tournament
13
-
14
-
15
- @click.group(
16
- context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 100},
17
- )
18
- @click.version_option(version=__version__, package_name="nepher-cli", prog_name="npcli")
19
- def main() -> None:
20
- """npcli — the unified Nepher command-line interface.
21
-
22
- Provides centralized access to all Nepher sub-platforms:
23
-
24
- \b
25
- login Log in with a Nepher API key
26
- whoami Show the currently authenticated user
27
- logout Clear locally stored credentials
28
- account API keys and coldkey registration
29
- tournament Browse tournaments, submit agents, leaderboards
30
- envhub Manage Isaac Lab environment bundles
31
- hackathon Browse and submit to hackathons
32
- simstore SimStore marketplace (coming soon)
33
-
34
- \b
35
- Quick start:
36
- npcli login --api-key nepher_xxxxxxxx
37
- npcli whoami
38
- npcli hackathon list
39
- npcli envhub list
40
- npcli tournament list
41
-
42
- \b
43
- Tournament submit requires bittensor-wallet for wallet signing:
44
- pip install bittensor-wallet
45
- # or: pip install "nepher-cli[bittensor]"
46
-
47
- Run any sub-command with --help for details and examples.
48
-
49
- API keys are created at https://nepher.ai/account (Account > API Keys).
50
- """
51
-
52
-
53
- main.add_command(cmd_login, name="login")
54
- main.add_command(cmd_logout, name="logout")
55
- main.add_command(cmd_whoami, name="whoami")
56
- main.add_command(account)
57
- main.add_command(tournament)
58
- main.add_command(envhub)
59
- main.add_command(hackathon)
60
- main.add_command(simstore)
61
-
62
-
63
- if __name__ == "__main__":
64
- raise SystemExit(main())
1
+ """npcli — unified Nepher command-line interface."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import click
6
+
7
+ from nepher_cli import __version__
8
+ from nepher_cli.commands.account import account, cmd_login, cmd_logout, cmd_whoami
9
+ from nepher_cli.commands.envhub import envhub
10
+ from nepher_cli.commands.hackathon import hackathon
11
+ from nepher_cli.commands.simstore import simstore
12
+ from nepher_cli.commands.tournament import tournament
13
+
14
+
15
+ @click.group(
16
+ context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 100},
17
+ )
18
+ @click.version_option(version=__version__, package_name="nepher-cli", prog_name="npcli")
19
+ def main() -> None:
20
+ """npcli — the unified Nepher command-line interface.
21
+
22
+ Provides centralized access to all Nepher sub-platforms:
23
+
24
+ \b
25
+ login Log in with a Nepher API key
26
+ whoami Show the currently authenticated user
27
+ logout Clear locally stored credentials
28
+ account API keys and coldkey registration
29
+ tournament Browse tournaments, submit agents, leaderboards
30
+ envhub Manage Isaac Lab environment bundles
31
+ hackathon Browse and submit to hackathons
32
+ simstore SimStore marketplace (coming soon)
33
+
34
+ \b
35
+ Quick start:
36
+ npcli login --api-key nepher_xxxxxxxx
37
+ npcli whoami
38
+ npcli hackathon list
39
+ npcli envhub list
40
+ npcli tournament list
41
+
42
+ \b
43
+ Tournament submit requires bittensor-wallet for wallet signing:
44
+ pip install bittensor-wallet
45
+ # or: pip install "nepher-cli[bittensor]"
46
+
47
+ Run any sub-command with --help for details and examples.
48
+
49
+ API keys are created at https://nepher.ai/account (Account > API Keys).
50
+ """
51
+
52
+
53
+ main.add_command(cmd_login, name="login")
54
+ main.add_command(cmd_logout, name="logout")
55
+ main.add_command(cmd_whoami, name="whoami")
56
+ main.add_command(account)
57
+ main.add_command(tournament)
58
+ main.add_command(envhub)
59
+ main.add_command(hackathon)
60
+ main.add_command(simstore)
61
+
62
+
63
+ if __name__ == "__main__":
64
+ raise SystemExit(main())
@@ -1 +1 @@
1
- """npcli command groups."""
1
+ """npcli command groups."""