nepher-cli 0.2.0__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.
- nepher_cli-0.2.0/.gitignore +8 -0
- nepher_cli-0.2.0/PKG-INFO +193 -0
- nepher_cli-0.2.0/README.md +165 -0
- nepher_cli-0.2.0/pyproject.toml +60 -0
- nepher_cli-0.2.0/src/nepher_cli/__init__.py +3 -0
- nepher_cli-0.2.0/src/nepher_cli/__main__.py +4 -0
- nepher_cli-0.2.0/src/nepher_cli/cli.py +59 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/__init__.py +1 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/account.py +527 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/envhub.py +466 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/hackathon.py +760 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/simstore.py +49 -0
- nepher_cli-0.2.0/src/nepher_cli/commands/tournament.py +651 -0
- nepher_cli-0.2.0/src/nepher_cli/config.py +25 -0
- nepher_cli-0.2.0/src/nepher_cli/core/__init__.py +1 -0
- nepher_cli-0.2.0/src/nepher_cli/core/credentials.py +243 -0
- nepher_cli-0.2.0/src/nepher_cli/core/http.py +76 -0
- nepher_cli-0.2.0/src/nepher_cli/envhub/__init__.py +1 -0
- nepher_cli-0.2.0/src/nepher_cli/envhub/cache.py +56 -0
- nepher_cli-0.2.0/src/nepher_cli/envhub/config.py +176 -0
- nepher_cli-0.2.0/src/nepher_cli/py.typed +0 -0
- nepher_cli-0.2.0/src/nepher_cli/tournament/__init__.py +1 -0
- nepher_cli-0.2.0/src/nepher_cli/tournament/agent_check.py +60 -0
- nepher_cli-0.2.0/src/nepher_cli/tournament/api.py +100 -0
- nepher_cli-0.2.0/src/nepher_cli/tournament/packer.py +50 -0
- nepher_cli-0.2.0/src/nepher_cli/tournament/wallet.py +89 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nepher-cli
|
|
3
|
+
Version: 0.2.0
|
|
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; 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
|
+
# nepher-cli
|
|
30
|
+
|
|
31
|
+
The unified CLI for [Nepher Robotics](https://nepher.ai) — accounts, hackathons, EnvHub, tournaments, and SimStore from a single tool.
|
|
32
|
+
|
|
33
|
+
**Requires:** Python 3.10+
|
|
34
|
+
|
|
35
|
+
## Install
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pip install nepher-cli
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Both `npcli` and `nepher-cli` entry points are registered after install.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npcli --version
|
|
45
|
+
npcli --help
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Commands
|
|
49
|
+
|
|
50
|
+
| Command / Group | Description |
|
|
51
|
+
|-----------------|-------------|
|
|
52
|
+
| `npcli login` | Log in with a Nepher API key |
|
|
53
|
+
| `npcli whoami` | Show the currently authenticated user |
|
|
54
|
+
| `npcli logout` | Clear locally stored credentials |
|
|
55
|
+
| `npcli account` | API keys and coldkey registration |
|
|
56
|
+
| `npcli tournament` | Browse tournaments, submit agents, leaderboards |
|
|
57
|
+
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
58
|
+
| `npcli hackathon` | Browse and submit to hackathons |
|
|
59
|
+
| `npcli simstore` | SimStore marketplace *(coming soon)* |
|
|
60
|
+
|
|
61
|
+
## Quick Start
|
|
62
|
+
|
|
63
|
+
### Authenticate
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npcli login --api-key nepher_xxxxxxxx
|
|
67
|
+
npcli whoami
|
|
68
|
+
npcli logout
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Get your API key at [account.nepher.ai](https://account.nepher.ai) → Account → API Keys.
|
|
72
|
+
For CI/CD, set `NEPHER_API_KEY=nepher_xxxxxxxx` instead of logging in.
|
|
73
|
+
|
|
74
|
+
### Tournaments
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npcli tournament list
|
|
78
|
+
npcli tournament list-active
|
|
79
|
+
npcli tournament status <tournament_id>
|
|
80
|
+
npcli tournament leaderboard <tournament_id>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Check your agent directory structure (no extra dependencies needed):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
npcli tournament check --path ./my-agent
|
|
87
|
+
npcli tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Submit an agent (requires `bittensor` for wallet signing):
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
pip install bittensor
|
|
94
|
+
# or: pip install "nepher-cli[bittensor]"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Full options for `submit`:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
--path <path> Agent directory
|
|
105
|
+
--wallet-name <str> Bittensor wallet name (default: miner)
|
|
106
|
+
--wallet-hotkey <str> Bittensor wallet hotkey (default: default)
|
|
107
|
+
--api-key <key> Nepher API key (falls back to stored credentials)
|
|
108
|
+
--tournament-id <id> Target tournament ID (required when multiple are active)
|
|
109
|
+
--api-url <url> Override tournament API URL
|
|
110
|
+
-v / --verbose Verbose output
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### EnvHub
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npcli envhub list
|
|
117
|
+
npcli envhub download <env_id>
|
|
118
|
+
npcli envhub upload ./my-bundle --category navigation
|
|
119
|
+
npcli envhub cache list
|
|
120
|
+
npcli envhub cache info
|
|
121
|
+
npcli envhub cache clear
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Hackathons
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npcli hackathon list
|
|
128
|
+
|
|
129
|
+
npcli hackathon submit \
|
|
130
|
+
--title "My entry" \
|
|
131
|
+
--submission ./my-project \
|
|
132
|
+
--assets ./my-assets
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Full options:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
--hackathon-id <uuid> Required when multiple hackathons are open
|
|
139
|
+
--title <str> Entry title
|
|
140
|
+
--description <markdown> Entry description
|
|
141
|
+
--thumbnail <file> Cover image (JPEG, PNG, WebP, GIF)
|
|
142
|
+
--submission <path> Project folder or submission.zip
|
|
143
|
+
--assets <path> Assets folder or assets.zip (images, videos, PDFs)
|
|
144
|
+
--public-source Mark source as public
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### API Keys
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npcli account api-keys list
|
|
151
|
+
npcli account api-keys create --name "CI key" --platform hackertone
|
|
152
|
+
npcli account api-keys revoke <key_id>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Coldkey Registration
|
|
156
|
+
|
|
157
|
+
Bind a Bittensor coldkey to your account (requires `bittensor` + `btcli` on PATH):
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
pip install bittensor
|
|
161
|
+
npcli account register-coldkey --wallet <wallet_name>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## API Key Requirements
|
|
165
|
+
|
|
166
|
+
- Must start with `nepher_`
|
|
167
|
+
- Must be active and not expired
|
|
168
|
+
- `hackathon submit` requires **Hackathon** scope (or an unrestricted key)
|
|
169
|
+
- `tournament submit` requires **Tournament** scope (or an unrestricted key)
|
|
170
|
+
|
|
171
|
+
## Troubleshooting
|
|
172
|
+
|
|
173
|
+
| Error | Fix |
|
|
174
|
+
|-------|-----|
|
|
175
|
+
| `npcli: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
176
|
+
| `invalid api key format` | Key must start with `nepher_` |
|
|
177
|
+
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
178
|
+
| `api key expired` | Run `npcli account api-keys create` |
|
|
179
|
+
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
180
|
+
| `bittensor not installed` | `pip install bittensor` (only needed for `tournament submit`) |
|
|
181
|
+
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
182
|
+
|
|
183
|
+
Run any command with `--help` for full flag details:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npcli --help
|
|
187
|
+
npcli hackathon submit --help
|
|
188
|
+
npcli tournament submit --help
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## License
|
|
192
|
+
|
|
193
|
+
MIT
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# nepher-cli
|
|
2
|
+
|
|
3
|
+
The unified CLI for [Nepher Robotics](https://nepher.ai) — accounts, hackathons, EnvHub, tournaments, and SimStore from a single tool.
|
|
4
|
+
|
|
5
|
+
**Requires:** Python 3.10+
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install nepher-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Both `npcli` and `nepher-cli` entry points are registered after install.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npcli --version
|
|
17
|
+
npcli --help
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
| Command / Group | Description |
|
|
23
|
+
|-----------------|-------------|
|
|
24
|
+
| `npcli login` | Log in with a Nepher API key |
|
|
25
|
+
| `npcli whoami` | Show the currently authenticated user |
|
|
26
|
+
| `npcli logout` | Clear locally stored credentials |
|
|
27
|
+
| `npcli account` | API keys and coldkey registration |
|
|
28
|
+
| `npcli tournament` | Browse tournaments, submit agents, leaderboards |
|
|
29
|
+
| `npcli envhub` | Manage Isaac Lab environment bundles |
|
|
30
|
+
| `npcli hackathon` | Browse and submit to hackathons |
|
|
31
|
+
| `npcli simstore` | SimStore marketplace *(coming soon)* |
|
|
32
|
+
|
|
33
|
+
## Quick Start
|
|
34
|
+
|
|
35
|
+
### Authenticate
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npcli login --api-key nepher_xxxxxxxx
|
|
39
|
+
npcli whoami
|
|
40
|
+
npcli logout
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Get your API key at [account.nepher.ai](https://account.nepher.ai) → Account → API Keys.
|
|
44
|
+
For CI/CD, set `NEPHER_API_KEY=nepher_xxxxxxxx` instead of logging in.
|
|
45
|
+
|
|
46
|
+
### Tournaments
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npcli tournament list
|
|
50
|
+
npcli tournament list-active
|
|
51
|
+
npcli tournament status <tournament_id>
|
|
52
|
+
npcli tournament leaderboard <tournament_id>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Check your agent directory structure (no extra dependencies needed):
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npcli tournament check --path ./my-agent
|
|
59
|
+
npcli tournament check --path ./my-agent --verbose # also show recommended-file warnings
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Submit an agent (requires `bittensor` for wallet signing):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install bittensor
|
|
66
|
+
# or: pip install "nepher-cli[bittensor]"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npcli tournament submit --path ./my-agent --wallet-name miner --wallet-hotkey default
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Full options for `submit`:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
--path <path> Agent directory
|
|
77
|
+
--wallet-name <str> Bittensor wallet name (default: miner)
|
|
78
|
+
--wallet-hotkey <str> Bittensor wallet hotkey (default: default)
|
|
79
|
+
--api-key <key> Nepher API key (falls back to stored credentials)
|
|
80
|
+
--tournament-id <id> Target tournament ID (required when multiple are active)
|
|
81
|
+
--api-url <url> Override tournament API URL
|
|
82
|
+
-v / --verbose Verbose output
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### EnvHub
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npcli envhub list
|
|
89
|
+
npcli envhub download <env_id>
|
|
90
|
+
npcli envhub upload ./my-bundle --category navigation
|
|
91
|
+
npcli envhub cache list
|
|
92
|
+
npcli envhub cache info
|
|
93
|
+
npcli envhub cache clear
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Hackathons
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npcli hackathon list
|
|
100
|
+
|
|
101
|
+
npcli hackathon submit \
|
|
102
|
+
--title "My entry" \
|
|
103
|
+
--submission ./my-project \
|
|
104
|
+
--assets ./my-assets
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Full options:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
--hackathon-id <uuid> Required when multiple hackathons are open
|
|
111
|
+
--title <str> Entry title
|
|
112
|
+
--description <markdown> Entry description
|
|
113
|
+
--thumbnail <file> Cover image (JPEG, PNG, WebP, GIF)
|
|
114
|
+
--submission <path> Project folder or submission.zip
|
|
115
|
+
--assets <path> Assets folder or assets.zip (images, videos, PDFs)
|
|
116
|
+
--public-source Mark source as public
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### API Keys
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
npcli account api-keys list
|
|
123
|
+
npcli account api-keys create --name "CI key" --platform hackertone
|
|
124
|
+
npcli account api-keys revoke <key_id>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Coldkey Registration
|
|
128
|
+
|
|
129
|
+
Bind a Bittensor coldkey to your account (requires `bittensor` + `btcli` on PATH):
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
pip install bittensor
|
|
133
|
+
npcli account register-coldkey --wallet <wallet_name>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## API Key Requirements
|
|
137
|
+
|
|
138
|
+
- Must start with `nepher_`
|
|
139
|
+
- Must be active and not expired
|
|
140
|
+
- `hackathon submit` requires **Hackathon** scope (or an unrestricted key)
|
|
141
|
+
- `tournament submit` requires **Tournament** scope (or an unrestricted key)
|
|
142
|
+
|
|
143
|
+
## Troubleshooting
|
|
144
|
+
|
|
145
|
+
| Error | Fix |
|
|
146
|
+
|-------|-----|
|
|
147
|
+
| `npcli: command not found` | Ensure `pip install` succeeded and Python scripts dir is on `PATH` |
|
|
148
|
+
| `invalid api key format` | Key must start with `nepher_` |
|
|
149
|
+
| `api key does not have hackathon access` | Enable Hackathon scope or use an unrestricted key |
|
|
150
|
+
| `api key expired` | Run `npcli account api-keys create` |
|
|
151
|
+
| `Several hackathons are accepting submissions` | Re-run with `--hackathon-id` |
|
|
152
|
+
| `bittensor not installed` | `pip install bittensor` (only needed for `tournament submit`) |
|
|
153
|
+
| `Not logged in` | `npcli login --api-key nepher_...` |
|
|
154
|
+
|
|
155
|
+
Run any command with `--help` for full flag details:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npcli --help
|
|
159
|
+
npcli hackathon submit --help
|
|
160
|
+
npcli tournament submit --help
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "nepher-cli"
|
|
7
|
+
version = "0.2.0"
|
|
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"]
|
|
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
|
+
|
|
48
|
+
[tool.hatch.build.targets.sdist]
|
|
49
|
+
include = ["src/nepher_cli", "README.md", "pyproject.toml"]
|
|
50
|
+
|
|
51
|
+
[tool.ruff]
|
|
52
|
+
line-length = 100
|
|
53
|
+
target-version = "py310"
|
|
54
|
+
|
|
55
|
+
[tool.ruff.lint]
|
|
56
|
+
select = ["E", "F", "I", "UP", "B"]
|
|
57
|
+
|
|
58
|
+
[tool.pytest.ini_options]
|
|
59
|
+
testpaths = ["tests"]
|
|
60
|
+
pythonpath = ["src"]
|
|
@@ -0,0 +1,59 @@
|
|
|
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__, 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
|
+
Run any sub-command with --help for details and examples.
|
|
43
|
+
|
|
44
|
+
API keys are created at https://account.nepher.ai (Account > API Keys).
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
main.add_command(cmd_login, name="login")
|
|
49
|
+
main.add_command(cmd_logout, name="logout")
|
|
50
|
+
main.add_command(cmd_whoami, name="whoami")
|
|
51
|
+
main.add_command(account)
|
|
52
|
+
main.add_command(tournament)
|
|
53
|
+
main.add_command(envhub)
|
|
54
|
+
main.add_command(hackathon)
|
|
55
|
+
main.add_command(simstore)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
if __name__ == "__main__":
|
|
59
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""npcli command groups."""
|