cylera-cli 1.1.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.
- cylera_cli-1.1.0/LICENSE +21 -0
- cylera_cli-1.1.0/PKG-INFO +279 -0
- cylera_cli-1.1.0/README.md +249 -0
- cylera_cli-1.1.0/cylera.py +550 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/PKG-INFO +279 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/SOURCES.txt +10 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/dependency_links.txt +1 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/entry_points.txt +2 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/requires.txt +4 -0
- cylera_cli-1.1.0/cylera_cli.egg-info/top_level.txt +1 -0
- cylera_cli-1.1.0/pyproject.toml +55 -0
- cylera_cli-1.1.0/setup.cfg +4 -0
cylera_cli-1.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Cylera
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cylera-cli
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Command-line interface for the Cylera Partner API
|
|
5
|
+
Author-email: Cylera <support@cylera.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Cylera/cylera-cli
|
|
8
|
+
Project-URL: Repository, https://github.com/Cylera/cylera-cli
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/Cylera/cylera-cli/issues
|
|
10
|
+
Keywords: cylera,medical devices,iot security,healthcare
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: System Administrators
|
|
14
|
+
Classifier: Intended Audience :: Healthcare Industry
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Security
|
|
21
|
+
Classifier: Topic :: System :: Systems Administration
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: cylera-client>=1.1.0
|
|
26
|
+
Requires-Dist: python-dotenv>=1.2.1
|
|
27
|
+
Requires-Dist: requests>=2.32.5
|
|
28
|
+
Requires-Dist: typer>=0.21.1
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# Cylera CLI
|
|
32
|
+
|
|
33
|
+
A command-line interface for the [Cylera Partner API](https://github.com/Cylera/cylera-partner-api), providing read-only access to device inventory, threats, vulnerabilities, and network information.
|
|
34
|
+
|
|
35
|
+
It can be used stand-alone or integrated into an AI workflow using the bundled Claude Code skill (see below).
|
|
36
|
+
|
|
37
|
+
Alternatively, if you are looking to incorporate the power of Cylera into your AI workflows, you may also consider the [Cylera MCP Server](https://github.com/Cylera/cylera-mcp-server).
|
|
38
|
+
|
|
39
|
+
This [Cylera AI Integration Options document](CLI_VS_MCP.md) may help you decide which one may make sense depending on your AI workflows.
|
|
40
|
+
|
|
41
|
+
## Demo
|
|
42
|
+
![Demo][demo]
|
|
43
|
+
|
|
44
|
+
## Requirements
|
|
45
|
+
|
|
46
|
+
- [uv](https://docs.astral.sh/uv/)
|
|
47
|
+
- Credentials for accessing Cylera
|
|
48
|
+
|
|
49
|
+
## Installation
|
|
50
|
+
|
|
51
|
+
Install using [uv](https://docs.astral.sh/uv/):
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
uv tool install .
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Then run commands directly:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cylera --help
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To uninstall:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uv tool uninstall cylera
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Alternatively, run without installing:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
uvx cylera --help
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Configuration
|
|
76
|
+
|
|
77
|
+
Run the interactive setup to configure your credentials:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cylera init
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
This will prompt you to:
|
|
84
|
+
1. Select your Cylera API endpoint (US, UK, or Demo)
|
|
85
|
+
2. Enter your username (email)
|
|
86
|
+
3. Enter your password
|
|
87
|
+
|
|
88
|
+
Credentials are stored in a `.env` file in the current directory.
|
|
89
|
+
|
|
90
|
+
### Manual Configuration
|
|
91
|
+
|
|
92
|
+
Alternatively, set environment variables directly:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
export CYLERA_BASE_URL="https://partner.us1.cylera.com/"
|
|
96
|
+
export CYLERA_USERNAME="your-email@example.com"
|
|
97
|
+
export CYLERA_PASSWORD="your-password"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Doppler Secrets Management
|
|
101
|
+
|
|
102
|
+
Instead of storing the secrets in a .env file, you may choose to use a secrets
|
|
103
|
+
management solution such as [Doppler](https://www.doppler.com).
|
|
104
|
+
|
|
105
|
+
To use [Doppler](https://www.doppler.com), simply add the following prefix to all commands.
|
|
106
|
+
|
|
107
|
+
doppler run --
|
|
108
|
+
|
|
109
|
+
For example, to run "cylera devices" accessing secrets from Doppler, you would
|
|
110
|
+
run the following:
|
|
111
|
+
|
|
112
|
+
doppler run -- cylera devices
|
|
113
|
+
|
|
114
|
+
### 1Password Secrets Management
|
|
115
|
+
|
|
116
|
+
Alternatively, you can use [1Password CLI](https://developer.1password.com/docs/cli/get-started/)
|
|
117
|
+
for secrets management. Set your environment ID and prefix commands with `op run`:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
export OP_ENVIRONMENT_ID=<your-environment-id>
|
|
121
|
+
op run --environment "$OP_ENVIRONMENT_ID" -- cylera devices
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Usage
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
cylera <command> [options]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Available Commands
|
|
131
|
+
|
|
132
|
+
| Command | Description |
|
|
133
|
+
|---------|-------------|
|
|
134
|
+
| `init` | Initialize Cylera CLI configuration interactively |
|
|
135
|
+
| `organization` | Get the organization associated with the current credentials |
|
|
136
|
+
| `organizations` | List organizations available to switch into |
|
|
137
|
+
| `switchorg` | Switch to a different organization |
|
|
138
|
+
| `resetorg` | Reset organization back to home |
|
|
139
|
+
| `device` | Get details for a specific device by MAC address |
|
|
140
|
+
| `devices` | Get a list of devices with optional filters |
|
|
141
|
+
| `deviceattributes` | Get attributes for a device by MAC address |
|
|
142
|
+
| `procedures` | Get a list of medical procedures |
|
|
143
|
+
| `subnets` | Get a list of network subnets |
|
|
144
|
+
| `riskmitigations` | Get mitigations for a specific vulnerability |
|
|
145
|
+
| `vulnerabilities` | Get a list of vulnerabilities |
|
|
146
|
+
| `threats` | Get a list of detected threats |
|
|
147
|
+
|
|
148
|
+
#### Organization
|
|
149
|
+
|
|
150
|
+
**Get organization info:**
|
|
151
|
+
```bash
|
|
152
|
+
cylera organization
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**List available organizations:**
|
|
156
|
+
```bash
|
|
157
|
+
cylera organizations
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Switch to a different organization:**
|
|
161
|
+
```bash
|
|
162
|
+
cylera switchorg <organization-id>
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Reset back to home organization:**
|
|
166
|
+
```bash
|
|
167
|
+
cylera resetorg
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### Device Inventory
|
|
171
|
+
|
|
172
|
+
**List devices:**
|
|
173
|
+
```bash
|
|
174
|
+
cylera devices --page-size 10
|
|
175
|
+
cylera devices --vendor Philips --class Medical
|
|
176
|
+
cylera devices --ip-address 10.40
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Get a specific device:**
|
|
180
|
+
```bash
|
|
181
|
+
cylera device 7f:14:22:72:00:e5
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Get device attributes:**
|
|
185
|
+
```bash
|
|
186
|
+
cylera deviceattributes 7f:14:22:72:00:e5
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### Vulnerabilities & Risk
|
|
190
|
+
|
|
191
|
+
**List vulnerabilities:**
|
|
192
|
+
```bash
|
|
193
|
+
cylera vulnerabilities --severity CRITICAL
|
|
194
|
+
cylera vulnerabilities --status OPEN --page-size 20
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Get mitigations for a vulnerability:**
|
|
198
|
+
```bash
|
|
199
|
+
cylera riskmitigations "Ripple20 (ICSA-20-168-01)"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
#### Threats
|
|
203
|
+
|
|
204
|
+
**List threats:**
|
|
205
|
+
```bash
|
|
206
|
+
cylera threats --severity HIGH
|
|
207
|
+
cylera threats --mac-address bb:b0:71:cf:30:0a
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### Network
|
|
211
|
+
|
|
212
|
+
**List subnets:**
|
|
213
|
+
```bash
|
|
214
|
+
cylera subnets
|
|
215
|
+
cylera subnets --vlan 477
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
#### Medical Procedures
|
|
219
|
+
|
|
220
|
+
**List procedures:**
|
|
221
|
+
```bash
|
|
222
|
+
cylera procedures --page-size 10
|
|
223
|
+
cylera procedures --completed-after 2025/01/01
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Common Options
|
|
227
|
+
|
|
228
|
+
Most list commands support these options:
|
|
229
|
+
|
|
230
|
+
| Option | Description |
|
|
231
|
+
|--------|-------------|
|
|
232
|
+
| `--page` | Page number for pagination |
|
|
233
|
+
| `--page-size` | Results per page (max 100) |
|
|
234
|
+
| `--mac-address` | Filter by device MAC address |
|
|
235
|
+
| `--severity` | Filter by severity (INFO, LOW, MEDIUM, HIGH, CRITICAL) |
|
|
236
|
+
| `--status` | Filter by status (OPEN, IN_PROGRESS, RESOLVED, SUPPRESSED) |
|
|
237
|
+
|
|
238
|
+
### Output
|
|
239
|
+
|
|
240
|
+
All commands output JSON to stdout, which can be piped to tools like `jq`:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
cylera devices --page-size 5 | jq '.devices[].hostname'
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Debugging
|
|
247
|
+
|
|
248
|
+
Enable debug output to see request details:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
DEBUG=1 cylera devices --page-size 1
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## API Endpoints
|
|
255
|
+
|
|
256
|
+
The CLI supports these Cylera Partner API regions:
|
|
257
|
+
|
|
258
|
+
- US: `https://partner.us1.cylera.com/`
|
|
259
|
+
- UK: `https://partner.uk1.cylera.com/`
|
|
260
|
+
- Demo: `https://partner.demo.cylera.com/`
|
|
261
|
+
|
|
262
|
+
## Claude Code Skills
|
|
263
|
+
|
|
264
|
+
This repo includes Claude Code skills for querying Cylera data and exporting results to CSV directly from a conversation — no scripting required.
|
|
265
|
+
|
|
266
|
+
| Skill | Description |
|
|
267
|
+
|-------|-------------|
|
|
268
|
+
| `/cylera-attributes` | Find devices by attribute label (e.g. TeamViewer, end of life) |
|
|
269
|
+
| `/cylera-vulnerabilities` | Export vulnerabilities filtered by severity and/or status |
|
|
270
|
+
| `/cylera-threats` | Export threats filtered by severity and/or status |
|
|
271
|
+
| `/cylera-devices` | Export device inventory filtered by class, vendor, type, or OS |
|
|
272
|
+
|
|
273
|
+
See [CODING_AGENT_SKILLS.md](CODING_AGENT_SKILLS.md) for full installation instructions and usage examples.
|
|
274
|
+
|
|
275
|
+
## License
|
|
276
|
+
|
|
277
|
+
See LICENSE file for details.
|
|
278
|
+
|
|
279
|
+
[demo]: demo.webp
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# Cylera CLI
|
|
2
|
+
|
|
3
|
+
A command-line interface for the [Cylera Partner API](https://github.com/Cylera/cylera-partner-api), providing read-only access to device inventory, threats, vulnerabilities, and network information.
|
|
4
|
+
|
|
5
|
+
It can be used stand-alone or integrated into an AI workflow using the bundled Claude Code skill (see below).
|
|
6
|
+
|
|
7
|
+
Alternatively, if you are looking to incorporate the power of Cylera into your AI workflows, you may also consider the [Cylera MCP Server](https://github.com/Cylera/cylera-mcp-server).
|
|
8
|
+
|
|
9
|
+
This [Cylera AI Integration Options document](CLI_VS_MCP.md) may help you decide which one may make sense depending on your AI workflows.
|
|
10
|
+
|
|
11
|
+
## Demo
|
|
12
|
+
![Demo][demo]
|
|
13
|
+
|
|
14
|
+
## Requirements
|
|
15
|
+
|
|
16
|
+
- [uv](https://docs.astral.sh/uv/)
|
|
17
|
+
- Credentials for accessing Cylera
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
Install using [uv](https://docs.astral.sh/uv/):
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
uv tool install .
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Then run commands directly:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cylera --help
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
To uninstall:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
uv tool uninstall cylera
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Alternatively, run without installing:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uvx cylera --help
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Configuration
|
|
46
|
+
|
|
47
|
+
Run the interactive setup to configure your credentials:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
cylera init
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
This will prompt you to:
|
|
54
|
+
1. Select your Cylera API endpoint (US, UK, or Demo)
|
|
55
|
+
2. Enter your username (email)
|
|
56
|
+
3. Enter your password
|
|
57
|
+
|
|
58
|
+
Credentials are stored in a `.env` file in the current directory.
|
|
59
|
+
|
|
60
|
+
### Manual Configuration
|
|
61
|
+
|
|
62
|
+
Alternatively, set environment variables directly:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
export CYLERA_BASE_URL="https://partner.us1.cylera.com/"
|
|
66
|
+
export CYLERA_USERNAME="your-email@example.com"
|
|
67
|
+
export CYLERA_PASSWORD="your-password"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Doppler Secrets Management
|
|
71
|
+
|
|
72
|
+
Instead of storing the secrets in a .env file, you may choose to use a secrets
|
|
73
|
+
management solution such as [Doppler](https://www.doppler.com).
|
|
74
|
+
|
|
75
|
+
To use [Doppler](https://www.doppler.com), simply add the following prefix to all commands.
|
|
76
|
+
|
|
77
|
+
doppler run --
|
|
78
|
+
|
|
79
|
+
For example, to run "cylera devices" accessing secrets from Doppler, you would
|
|
80
|
+
run the following:
|
|
81
|
+
|
|
82
|
+
doppler run -- cylera devices
|
|
83
|
+
|
|
84
|
+
### 1Password Secrets Management
|
|
85
|
+
|
|
86
|
+
Alternatively, you can use [1Password CLI](https://developer.1password.com/docs/cli/get-started/)
|
|
87
|
+
for secrets management. Set your environment ID and prefix commands with `op run`:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
export OP_ENVIRONMENT_ID=<your-environment-id>
|
|
91
|
+
op run --environment "$OP_ENVIRONMENT_ID" -- cylera devices
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Usage
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
cylera <command> [options]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Available Commands
|
|
101
|
+
|
|
102
|
+
| Command | Description |
|
|
103
|
+
|---------|-------------|
|
|
104
|
+
| `init` | Initialize Cylera CLI configuration interactively |
|
|
105
|
+
| `organization` | Get the organization associated with the current credentials |
|
|
106
|
+
| `organizations` | List organizations available to switch into |
|
|
107
|
+
| `switchorg` | Switch to a different organization |
|
|
108
|
+
| `resetorg` | Reset organization back to home |
|
|
109
|
+
| `device` | Get details for a specific device by MAC address |
|
|
110
|
+
| `devices` | Get a list of devices with optional filters |
|
|
111
|
+
| `deviceattributes` | Get attributes for a device by MAC address |
|
|
112
|
+
| `procedures` | Get a list of medical procedures |
|
|
113
|
+
| `subnets` | Get a list of network subnets |
|
|
114
|
+
| `riskmitigations` | Get mitigations for a specific vulnerability |
|
|
115
|
+
| `vulnerabilities` | Get a list of vulnerabilities |
|
|
116
|
+
| `threats` | Get a list of detected threats |
|
|
117
|
+
|
|
118
|
+
#### Organization
|
|
119
|
+
|
|
120
|
+
**Get organization info:**
|
|
121
|
+
```bash
|
|
122
|
+
cylera organization
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**List available organizations:**
|
|
126
|
+
```bash
|
|
127
|
+
cylera organizations
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Switch to a different organization:**
|
|
131
|
+
```bash
|
|
132
|
+
cylera switchorg <organization-id>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Reset back to home organization:**
|
|
136
|
+
```bash
|
|
137
|
+
cylera resetorg
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### Device Inventory
|
|
141
|
+
|
|
142
|
+
**List devices:**
|
|
143
|
+
```bash
|
|
144
|
+
cylera devices --page-size 10
|
|
145
|
+
cylera devices --vendor Philips --class Medical
|
|
146
|
+
cylera devices --ip-address 10.40
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Get a specific device:**
|
|
150
|
+
```bash
|
|
151
|
+
cylera device 7f:14:22:72:00:e5
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Get device attributes:**
|
|
155
|
+
```bash
|
|
156
|
+
cylera deviceattributes 7f:14:22:72:00:e5
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
#### Vulnerabilities & Risk
|
|
160
|
+
|
|
161
|
+
**List vulnerabilities:**
|
|
162
|
+
```bash
|
|
163
|
+
cylera vulnerabilities --severity CRITICAL
|
|
164
|
+
cylera vulnerabilities --status OPEN --page-size 20
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Get mitigations for a vulnerability:**
|
|
168
|
+
```bash
|
|
169
|
+
cylera riskmitigations "Ripple20 (ICSA-20-168-01)"
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### Threats
|
|
173
|
+
|
|
174
|
+
**List threats:**
|
|
175
|
+
```bash
|
|
176
|
+
cylera threats --severity HIGH
|
|
177
|
+
cylera threats --mac-address bb:b0:71:cf:30:0a
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Network
|
|
181
|
+
|
|
182
|
+
**List subnets:**
|
|
183
|
+
```bash
|
|
184
|
+
cylera subnets
|
|
185
|
+
cylera subnets --vlan 477
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### Medical Procedures
|
|
189
|
+
|
|
190
|
+
**List procedures:**
|
|
191
|
+
```bash
|
|
192
|
+
cylera procedures --page-size 10
|
|
193
|
+
cylera procedures --completed-after 2025/01/01
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Common Options
|
|
197
|
+
|
|
198
|
+
Most list commands support these options:
|
|
199
|
+
|
|
200
|
+
| Option | Description |
|
|
201
|
+
|--------|-------------|
|
|
202
|
+
| `--page` | Page number for pagination |
|
|
203
|
+
| `--page-size` | Results per page (max 100) |
|
|
204
|
+
| `--mac-address` | Filter by device MAC address |
|
|
205
|
+
| `--severity` | Filter by severity (INFO, LOW, MEDIUM, HIGH, CRITICAL) |
|
|
206
|
+
| `--status` | Filter by status (OPEN, IN_PROGRESS, RESOLVED, SUPPRESSED) |
|
|
207
|
+
|
|
208
|
+
### Output
|
|
209
|
+
|
|
210
|
+
All commands output JSON to stdout, which can be piped to tools like `jq`:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
cylera devices --page-size 5 | jq '.devices[].hostname'
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Debugging
|
|
217
|
+
|
|
218
|
+
Enable debug output to see request details:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
DEBUG=1 cylera devices --page-size 1
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## API Endpoints
|
|
225
|
+
|
|
226
|
+
The CLI supports these Cylera Partner API regions:
|
|
227
|
+
|
|
228
|
+
- US: `https://partner.us1.cylera.com/`
|
|
229
|
+
- UK: `https://partner.uk1.cylera.com/`
|
|
230
|
+
- Demo: `https://partner.demo.cylera.com/`
|
|
231
|
+
|
|
232
|
+
## Claude Code Skills
|
|
233
|
+
|
|
234
|
+
This repo includes Claude Code skills for querying Cylera data and exporting results to CSV directly from a conversation — no scripting required.
|
|
235
|
+
|
|
236
|
+
| Skill | Description |
|
|
237
|
+
|-------|-------------|
|
|
238
|
+
| `/cylera-attributes` | Find devices by attribute label (e.g. TeamViewer, end of life) |
|
|
239
|
+
| `/cylera-vulnerabilities` | Export vulnerabilities filtered by severity and/or status |
|
|
240
|
+
| `/cylera-threats` | Export threats filtered by severity and/or status |
|
|
241
|
+
| `/cylera-devices` | Export device inventory filtered by class, vendor, type, or OS |
|
|
242
|
+
|
|
243
|
+
See [CODING_AGENT_SKILLS.md](CODING_AGENT_SKILLS.md) for full installation instructions and usage examples.
|
|
244
|
+
|
|
245
|
+
## License
|
|
246
|
+
|
|
247
|
+
See LICENSE file for details.
|
|
248
|
+
|
|
249
|
+
[demo]: demo.webp
|