hound-cli 0.1.0__tar.gz → 0.1.1__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 (43) hide show
  1. hound_cli-0.1.1/PKG-INFO +336 -0
  2. hound_cli-0.1.1/README.md +319 -0
  3. hound_cli-0.1.1/hound_cli.egg-info/PKG-INFO +336 -0
  4. {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/requires.txt +1 -1
  5. {hound_cli-0.1.0 → hound_cli-0.1.1}/pyproject.toml +3 -2
  6. hound_cli-0.1.0/PKG-INFO +0 -79
  7. hound_cli-0.1.0/README.md +0 -62
  8. hound_cli-0.1.0/hound_cli.egg-info/PKG-INFO +0 -79
  9. {hound_cli-0.1.0 → hound_cli-0.1.1}/LICENSE +0 -0
  10. {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/SOURCES.txt +0 -0
  11. {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/dependency_links.txt +0 -0
  12. {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/entry_points.txt +0 -0
  13. {hound_cli-0.1.0 → hound_cli-0.1.1}/hound_cli.egg-info/top_level.txt +0 -0
  14. {hound_cli-0.1.0 → hound_cli-0.1.1}/setup.cfg +0 -0
  15. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/__init__.py +0 -0
  16. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/__main__.py +0 -0
  17. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/agents.py +0 -0
  18. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/aws.py +0 -0
  19. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/__init__.py +0 -0
  20. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/domain.py +0 -0
  21. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/contracts/workflow.py +0 -0
  22. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/__init__.py +0 -0
  23. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/command.py +0 -0
  24. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/email.py +0 -0
  25. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/inbox/sms.py +0 -0
  26. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/__init__.py +0 -0
  27. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/close.py +0 -0
  28. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/files.py +0 -0
  29. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/open.py +0 -0
  30. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/render.py +0 -0
  31. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/reviews.py +0 -0
  32. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/reports/service.py +0 -0
  33. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/roster.py +0 -0
  34. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/__init__.py +0 -0
  35. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/configure.py +0 -0
  36. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/targets/verification.py +0 -0
  37. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/ui.py +0 -0
  38. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/__init__.py +0 -0
  39. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/launch.py +0 -0
  40. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/logs.py +0 -0
  41. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/selection.py +0 -0
  42. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/status.py +0 -0
  43. {hound_cli-0.1.0 → hound_cli-0.1.1}/src/workflows/stop.py +0 -0
@@ -0,0 +1,336 @@
1
+ Metadata-Version: 2.4
2
+ Name: hound-cli
3
+ Version: 0.1.1
4
+ Summary: Hound operator CLI
5
+ License-Expression: Apache-2.0
6
+ Requires-Python: >=3.14
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: boto3>=1.35.0
10
+ Requires-Dist: click>=8.3.3
11
+ Requires-Dist: dnspython>=2.7
12
+ Requires-Dist: idna>=3.11
13
+ Requires-Dist: publicsuffixlist>=1.0.2.20260515
14
+ Requires-Dist: questionary>=2.1
15
+ Requires-Dist: urllib3>=2.8.0
16
+ Dynamic: license-file
17
+
18
+ # Hound CLI
19
+
20
+ The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
21
+
22
+ ## Install
23
+
24
+ Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
25
+
26
+ ```console
27
+ pipx install hound-cli
28
+ hound --help
29
+ ```
30
+
31
+ To upgrade:
32
+
33
+ ```console
34
+ pipx upgrade hound-cli
35
+ ```
36
+
37
+ Hound uses your current AWS credentials to access your Hound environment.
38
+ Run `hound <command> --help` for usage and options, or see the reference below.
39
+
40
+ ## Command reference
41
+
42
+ <!-- [[[cog
43
+ import click
44
+ import cog
45
+ from hound_cli.__main__ import main
46
+
47
+
48
+ def render(command, name, parent=None):
49
+ with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
50
+ cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
51
+ if isinstance(command, click.Group):
52
+ for child_name in command.list_commands(ctx):
53
+ render(command.get_command(ctx, child_name), child_name, ctx)
54
+
55
+
56
+ render(main, "hound")
57
+ ]]] -->
58
+ ### `hound`
59
+
60
+ ```text
61
+ Usage: hound [OPTIONS] COMMAND [ARGS]...
62
+
63
+ Hound CLI.
64
+
65
+ Options:
66
+ -h, --help Show this message and exit.
67
+
68
+ Commands:
69
+ agents List Hound agents and their configured contact details.
70
+ auth Show and check DNS authorization for a target.
71
+ engagements Launch and manage penetration tests.
72
+ inbox Read recent agent email or SMS for this account.
73
+ ips List persistent Hound Elastic IPs.
74
+ reports Manage task-scoped customer report reviews.
75
+ retests Launch and manage retests.
76
+ status Show the account-wide work queue, newest first.
77
+ ```
78
+
79
+ ### `hound agents`
80
+
81
+ ```text
82
+ Usage: hound agents [OPTIONS]
83
+
84
+ List Hound agents and their configured contact details.
85
+
86
+ Options:
87
+ -h, --help Show this message and exit.
88
+ ```
89
+
90
+ ### `hound auth`
91
+
92
+ ```text
93
+ Usage: hound auth [OPTIONS]
94
+
95
+ Show and check DNS authorization for a target.
96
+
97
+ Options:
98
+ --domain TEXT Use this exact target domain.
99
+ -h, --help Show this message and exit.
100
+ ```
101
+
102
+ ### `hound engagements`
103
+
104
+ ```text
105
+ Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
106
+
107
+ Launch and manage penetration tests.
108
+
109
+ Options:
110
+ -h, --help Show this message and exit.
111
+
112
+ Commands:
113
+ launch Start a new penetration test or relaunch a previous one.
114
+ logs View the log stream for an engagement.
115
+ status Show engagement status details.
116
+ stop Stop an engagement and wait for its infrastructure to be absent.
117
+ ```
118
+
119
+ ### `hound engagements launch`
120
+
121
+ ```text
122
+ Usage: hound engagements launch [OPTIONS]
123
+
124
+ Start a new penetration test or relaunch a previous one.
125
+
126
+ Options:
127
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
128
+ out of band.
129
+ --domain TEXT Use this exact target domain.
130
+ -h, --help Show this message and exit.
131
+ ```
132
+
133
+ ### `hound engagements logs`
134
+
135
+ ```text
136
+ Usage: hound engagements logs [OPTIONS]
137
+
138
+ View the log stream for an engagement.
139
+
140
+ Options:
141
+ -t, --tail Keep polling for new events.
142
+ --domain TEXT Use this exact target domain.
143
+ --task-id TEXT Use one exact task; requires --domain.
144
+ -h, --help Show this message and exit.
145
+ ```
146
+
147
+ ### `hound engagements status`
148
+
149
+ ```text
150
+ Usage: hound engagements status [OPTIONS]
151
+
152
+ Show engagement status details.
153
+
154
+ Options:
155
+ --task-id TEXT Show one exact task; requires --domain.
156
+ --domain TEXT Filter by exact target domain.
157
+ -h, --help Show this message and exit.
158
+ ```
159
+
160
+ ### `hound engagements stop`
161
+
162
+ ```text
163
+ Usage: hound engagements stop [OPTIONS]
164
+
165
+ Stop an engagement and wait for its infrastructure to be absent.
166
+
167
+ Options:
168
+ --task-id TEXT Use one exact task; requires --domain.
169
+ --domain TEXT Use this exact target domain.
170
+ -h, --help Show this message and exit.
171
+ ```
172
+
173
+ ### `hound inbox`
174
+
175
+ ```text
176
+ Usage: hound inbox [OPTIONS]
177
+
178
+ Read recent agent email or SMS for this account.
179
+
180
+ Options:
181
+ --agent TEXT Stable agent ID from hound/agents.
182
+ --channel [email|sms] Inbox channel.
183
+ --since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
184
+ -h, --help Show this message and exit.
185
+ ```
186
+
187
+ ### `hound ips`
188
+
189
+ ```text
190
+ Usage: hound ips [OPTIONS]
191
+
192
+ List persistent Hound Elastic IPs.
193
+
194
+ Options:
195
+ -h, --help Show this message and exit.
196
+ ```
197
+
198
+ ### `hound reports`
199
+
200
+ ```text
201
+ Usage: hound reports [OPTIONS] COMMAND [ARGS]...
202
+
203
+ Manage task-scoped customer report reviews.
204
+
205
+ Options:
206
+ -h, --help Show this message and exit.
207
+
208
+ Commands:
209
+ close Upload one reviewed task to S3 and wipe its local copy.
210
+ open Pull task artifacts for local review.
211
+ render Render one reviewed customer report package as a PDF.
212
+ ```
213
+
214
+ ### `hound reports close`
215
+
216
+ ```text
217
+ Usage: hound reports close [OPTIONS]
218
+
219
+ Upload one reviewed task to S3 and wipe its local copy.
220
+
221
+ Options:
222
+ -h, --help Show this message and exit.
223
+ ```
224
+
225
+ ### `hound reports open`
226
+
227
+ ```text
228
+ Usage: hound reports open [OPTIONS]
229
+
230
+ Pull task artifacts for local review.
231
+
232
+ Options:
233
+ --domain TEXT Use this exact target domain.
234
+ --task-id TEXT Use one exact task; requires --domain.
235
+ -h, --help Show this message and exit.
236
+ ```
237
+
238
+ ### `hound reports render`
239
+
240
+ ```text
241
+ Usage: hound reports render [OPTIONS]
242
+
243
+ Render one reviewed customer report package as a PDF.
244
+
245
+ Options:
246
+ --customer-name TEXT Customer or application name shown on the cover.
247
+ -h, --help Show this message and exit.
248
+ ```
249
+
250
+ ### `hound retests`
251
+
252
+ ```text
253
+ Usage: hound retests [OPTIONS] COMMAND [ARGS]...
254
+
255
+ Launch and manage retests.
256
+
257
+ Options:
258
+ -h, --help Show this message and exit.
259
+
260
+ Commands:
261
+ launch Start or relaunch a retest for a completed penetration test.
262
+ logs View the log stream for a retest.
263
+ status Show retest status details.
264
+ stop Stop a retest and wait for its infrastructure to be absent.
265
+ ```
266
+
267
+ ### `hound retests launch`
268
+
269
+ ```text
270
+ Usage: hound retests launch [OPTIONS]
271
+
272
+ Start or relaunch a retest for a completed penetration test.
273
+
274
+ Options:
275
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
276
+ out of band.
277
+ --domain TEXT Use this exact target domain.
278
+ -h, --help Show this message and exit.
279
+ ```
280
+
281
+ ### `hound retests logs`
282
+
283
+ ```text
284
+ Usage: hound retests logs [OPTIONS]
285
+
286
+ View the log stream for a retest.
287
+
288
+ Options:
289
+ -t, --tail Keep polling for new events.
290
+ --domain TEXT Use this exact target domain.
291
+ --task-id TEXT Use one exact task; requires --domain.
292
+ -h, --help Show this message and exit.
293
+ ```
294
+
295
+ ### `hound retests status`
296
+
297
+ ```text
298
+ Usage: hound retests status [OPTIONS]
299
+
300
+ Show retest status details.
301
+
302
+ Options:
303
+ --task-id TEXT Show one exact task; requires --domain.
304
+ --domain TEXT Filter by exact target domain.
305
+ -h, --help Show this message and exit.
306
+ ```
307
+
308
+ ### `hound retests stop`
309
+
310
+ ```text
311
+ Usage: hound retests stop [OPTIONS]
312
+
313
+ Stop a retest and wait for its infrastructure to be absent.
314
+
315
+ Options:
316
+ --task-id TEXT Use one exact task; requires --domain.
317
+ --domain TEXT Use this exact target domain.
318
+ -h, --help Show this message and exit.
319
+ ```
320
+
321
+ ### `hound status`
322
+
323
+ ```text
324
+ Usage: hound status [OPTIONS]
325
+
326
+ Show the account-wide work queue, newest first.
327
+
328
+ Options:
329
+ --task-id TEXT Show one exact task; requires --domain.
330
+ --domain TEXT Filter by exact target domain.
331
+ -h, --help Show this message and exit.
332
+ ```
333
+
334
+ <!-- [[[end]]] -->
335
+
336
+ Hound CLI is licensed under the [Apache License 2.0](LICENSE).
@@ -0,0 +1,319 @@
1
+ # Hound CLI
2
+
3
+ The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
4
+
5
+ ## Install
6
+
7
+ Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
8
+
9
+ ```console
10
+ pipx install hound-cli
11
+ hound --help
12
+ ```
13
+
14
+ To upgrade:
15
+
16
+ ```console
17
+ pipx upgrade hound-cli
18
+ ```
19
+
20
+ Hound uses your current AWS credentials to access your Hound environment.
21
+ Run `hound <command> --help` for usage and options, or see the reference below.
22
+
23
+ ## Command reference
24
+
25
+ <!-- [[[cog
26
+ import click
27
+ import cog
28
+ from hound_cli.__main__ import main
29
+
30
+
31
+ def render(command, name, parent=None):
32
+ with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
33
+ cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
34
+ if isinstance(command, click.Group):
35
+ for child_name in command.list_commands(ctx):
36
+ render(command.get_command(ctx, child_name), child_name, ctx)
37
+
38
+
39
+ render(main, "hound")
40
+ ]]] -->
41
+ ### `hound`
42
+
43
+ ```text
44
+ Usage: hound [OPTIONS] COMMAND [ARGS]...
45
+
46
+ Hound CLI.
47
+
48
+ Options:
49
+ -h, --help Show this message and exit.
50
+
51
+ Commands:
52
+ agents List Hound agents and their configured contact details.
53
+ auth Show and check DNS authorization for a target.
54
+ engagements Launch and manage penetration tests.
55
+ inbox Read recent agent email or SMS for this account.
56
+ ips List persistent Hound Elastic IPs.
57
+ reports Manage task-scoped customer report reviews.
58
+ retests Launch and manage retests.
59
+ status Show the account-wide work queue, newest first.
60
+ ```
61
+
62
+ ### `hound agents`
63
+
64
+ ```text
65
+ Usage: hound agents [OPTIONS]
66
+
67
+ List Hound agents and their configured contact details.
68
+
69
+ Options:
70
+ -h, --help Show this message and exit.
71
+ ```
72
+
73
+ ### `hound auth`
74
+
75
+ ```text
76
+ Usage: hound auth [OPTIONS]
77
+
78
+ Show and check DNS authorization for a target.
79
+
80
+ Options:
81
+ --domain TEXT Use this exact target domain.
82
+ -h, --help Show this message and exit.
83
+ ```
84
+
85
+ ### `hound engagements`
86
+
87
+ ```text
88
+ Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
89
+
90
+ Launch and manage penetration tests.
91
+
92
+ Options:
93
+ -h, --help Show this message and exit.
94
+
95
+ Commands:
96
+ launch Start a new penetration test or relaunch a previous one.
97
+ logs View the log stream for an engagement.
98
+ status Show engagement status details.
99
+ stop Stop an engagement and wait for its infrastructure to be absent.
100
+ ```
101
+
102
+ ### `hound engagements launch`
103
+
104
+ ```text
105
+ Usage: hound engagements launch [OPTIONS]
106
+
107
+ Start a new penetration test or relaunch a previous one.
108
+
109
+ Options:
110
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
111
+ out of band.
112
+ --domain TEXT Use this exact target domain.
113
+ -h, --help Show this message and exit.
114
+ ```
115
+
116
+ ### `hound engagements logs`
117
+
118
+ ```text
119
+ Usage: hound engagements logs [OPTIONS]
120
+
121
+ View the log stream for an engagement.
122
+
123
+ Options:
124
+ -t, --tail Keep polling for new events.
125
+ --domain TEXT Use this exact target domain.
126
+ --task-id TEXT Use one exact task; requires --domain.
127
+ -h, --help Show this message and exit.
128
+ ```
129
+
130
+ ### `hound engagements status`
131
+
132
+ ```text
133
+ Usage: hound engagements status [OPTIONS]
134
+
135
+ Show engagement status details.
136
+
137
+ Options:
138
+ --task-id TEXT Show one exact task; requires --domain.
139
+ --domain TEXT Filter by exact target domain.
140
+ -h, --help Show this message and exit.
141
+ ```
142
+
143
+ ### `hound engagements stop`
144
+
145
+ ```text
146
+ Usage: hound engagements stop [OPTIONS]
147
+
148
+ Stop an engagement and wait for its infrastructure to be absent.
149
+
150
+ Options:
151
+ --task-id TEXT Use one exact task; requires --domain.
152
+ --domain TEXT Use this exact target domain.
153
+ -h, --help Show this message and exit.
154
+ ```
155
+
156
+ ### `hound inbox`
157
+
158
+ ```text
159
+ Usage: hound inbox [OPTIONS]
160
+
161
+ Read recent agent email or SMS for this account.
162
+
163
+ Options:
164
+ --agent TEXT Stable agent ID from hound/agents.
165
+ --channel [email|sms] Inbox channel.
166
+ --since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
167
+ -h, --help Show this message and exit.
168
+ ```
169
+
170
+ ### `hound ips`
171
+
172
+ ```text
173
+ Usage: hound ips [OPTIONS]
174
+
175
+ List persistent Hound Elastic IPs.
176
+
177
+ Options:
178
+ -h, --help Show this message and exit.
179
+ ```
180
+
181
+ ### `hound reports`
182
+
183
+ ```text
184
+ Usage: hound reports [OPTIONS] COMMAND [ARGS]...
185
+
186
+ Manage task-scoped customer report reviews.
187
+
188
+ Options:
189
+ -h, --help Show this message and exit.
190
+
191
+ Commands:
192
+ close Upload one reviewed task to S3 and wipe its local copy.
193
+ open Pull task artifacts for local review.
194
+ render Render one reviewed customer report package as a PDF.
195
+ ```
196
+
197
+ ### `hound reports close`
198
+
199
+ ```text
200
+ Usage: hound reports close [OPTIONS]
201
+
202
+ Upload one reviewed task to S3 and wipe its local copy.
203
+
204
+ Options:
205
+ -h, --help Show this message and exit.
206
+ ```
207
+
208
+ ### `hound reports open`
209
+
210
+ ```text
211
+ Usage: hound reports open [OPTIONS]
212
+
213
+ Pull task artifacts for local review.
214
+
215
+ Options:
216
+ --domain TEXT Use this exact target domain.
217
+ --task-id TEXT Use one exact task; requires --domain.
218
+ -h, --help Show this message and exit.
219
+ ```
220
+
221
+ ### `hound reports render`
222
+
223
+ ```text
224
+ Usage: hound reports render [OPTIONS]
225
+
226
+ Render one reviewed customer report package as a PDF.
227
+
228
+ Options:
229
+ --customer-name TEXT Customer or application name shown on the cover.
230
+ -h, --help Show this message and exit.
231
+ ```
232
+
233
+ ### `hound retests`
234
+
235
+ ```text
236
+ Usage: hound retests [OPTIONS] COMMAND [ARGS]...
237
+
238
+ Launch and manage retests.
239
+
240
+ Options:
241
+ -h, --help Show this message and exit.
242
+
243
+ Commands:
244
+ launch Start or relaunch a retest for a completed penetration test.
245
+ logs View the log stream for a retest.
246
+ status Show retest status details.
247
+ stop Stop a retest and wait for its infrastructure to be absent.
248
+ ```
249
+
250
+ ### `hound retests launch`
251
+
252
+ ```text
253
+ Usage: hound retests launch [OPTIONS]
254
+
255
+ Start or relaunch a retest for a completed penetration test.
256
+
257
+ Options:
258
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
259
+ out of band.
260
+ --domain TEXT Use this exact target domain.
261
+ -h, --help Show this message and exit.
262
+ ```
263
+
264
+ ### `hound retests logs`
265
+
266
+ ```text
267
+ Usage: hound retests logs [OPTIONS]
268
+
269
+ View the log stream for a retest.
270
+
271
+ Options:
272
+ -t, --tail Keep polling for new events.
273
+ --domain TEXT Use this exact target domain.
274
+ --task-id TEXT Use one exact task; requires --domain.
275
+ -h, --help Show this message and exit.
276
+ ```
277
+
278
+ ### `hound retests status`
279
+
280
+ ```text
281
+ Usage: hound retests status [OPTIONS]
282
+
283
+ Show retest status details.
284
+
285
+ Options:
286
+ --task-id TEXT Show one exact task; requires --domain.
287
+ --domain TEXT Filter by exact target domain.
288
+ -h, --help Show this message and exit.
289
+ ```
290
+
291
+ ### `hound retests stop`
292
+
293
+ ```text
294
+ Usage: hound retests stop [OPTIONS]
295
+
296
+ Stop a retest and wait for its infrastructure to be absent.
297
+
298
+ Options:
299
+ --task-id TEXT Use one exact task; requires --domain.
300
+ --domain TEXT Use this exact target domain.
301
+ -h, --help Show this message and exit.
302
+ ```
303
+
304
+ ### `hound status`
305
+
306
+ ```text
307
+ Usage: hound status [OPTIONS]
308
+
309
+ Show the account-wide work queue, newest first.
310
+
311
+ Options:
312
+ --task-id TEXT Show one exact task; requires --domain.
313
+ --domain TEXT Filter by exact target domain.
314
+ -h, --help Show this message and exit.
315
+ ```
316
+
317
+ <!-- [[[end]]] -->
318
+
319
+ Hound CLI is licensed under the [Apache License 2.0](LICENSE).
@@ -0,0 +1,336 @@
1
+ Metadata-Version: 2.4
2
+ Name: hound-cli
3
+ Version: 0.1.1
4
+ Summary: Hound operator CLI
5
+ License-Expression: Apache-2.0
6
+ Requires-Python: >=3.14
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: boto3>=1.35.0
10
+ Requires-Dist: click>=8.3.3
11
+ Requires-Dist: dnspython>=2.7
12
+ Requires-Dist: idna>=3.11
13
+ Requires-Dist: publicsuffixlist>=1.0.2.20260515
14
+ Requires-Dist: questionary>=2.1
15
+ Requires-Dist: urllib3>=2.8.0
16
+ Dynamic: license-file
17
+
18
+ # Hound CLI
19
+
20
+ The command-line interface for managing [Hound](https://cyberhound.ai) penetration tests.
21
+
22
+ ## Install
23
+
24
+ Requires Python 3.14 or newer and [`pipx`](https://pipx.pypa.io/stable/installation/).
25
+
26
+ ```console
27
+ pipx install hound-cli
28
+ hound --help
29
+ ```
30
+
31
+ To upgrade:
32
+
33
+ ```console
34
+ pipx upgrade hound-cli
35
+ ```
36
+
37
+ Hound uses your current AWS credentials to access your Hound environment.
38
+ Run `hound <command> --help` for usage and options, or see the reference below.
39
+
40
+ ## Command reference
41
+
42
+ <!-- [[[cog
43
+ import click
44
+ import cog
45
+ from hound_cli.__main__ import main
46
+
47
+
48
+ def render(command, name, parent=None):
49
+ with command.make_context(name, [], parent=parent, resilient_parsing=True, terminal_width=88) as ctx:
50
+ cog.outl(f"### `{ctx.command_path}`\n\n```text\n{ctx.get_help()}\n```\n")
51
+ if isinstance(command, click.Group):
52
+ for child_name in command.list_commands(ctx):
53
+ render(command.get_command(ctx, child_name), child_name, ctx)
54
+
55
+
56
+ render(main, "hound")
57
+ ]]] -->
58
+ ### `hound`
59
+
60
+ ```text
61
+ Usage: hound [OPTIONS] COMMAND [ARGS]...
62
+
63
+ Hound CLI.
64
+
65
+ Options:
66
+ -h, --help Show this message and exit.
67
+
68
+ Commands:
69
+ agents List Hound agents and their configured contact details.
70
+ auth Show and check DNS authorization for a target.
71
+ engagements Launch and manage penetration tests.
72
+ inbox Read recent agent email or SMS for this account.
73
+ ips List persistent Hound Elastic IPs.
74
+ reports Manage task-scoped customer report reviews.
75
+ retests Launch and manage retests.
76
+ status Show the account-wide work queue, newest first.
77
+ ```
78
+
79
+ ### `hound agents`
80
+
81
+ ```text
82
+ Usage: hound agents [OPTIONS]
83
+
84
+ List Hound agents and their configured contact details.
85
+
86
+ Options:
87
+ -h, --help Show this message and exit.
88
+ ```
89
+
90
+ ### `hound auth`
91
+
92
+ ```text
93
+ Usage: hound auth [OPTIONS]
94
+
95
+ Show and check DNS authorization for a target.
96
+
97
+ Options:
98
+ --domain TEXT Use this exact target domain.
99
+ -h, --help Show this message and exit.
100
+ ```
101
+
102
+ ### `hound engagements`
103
+
104
+ ```text
105
+ Usage: hound engagements [OPTIONS] COMMAND [ARGS]...
106
+
107
+ Launch and manage penetration tests.
108
+
109
+ Options:
110
+ -h, --help Show this message and exit.
111
+
112
+ Commands:
113
+ launch Start a new penetration test or relaunch a previous one.
114
+ logs View the log stream for an engagement.
115
+ status Show engagement status details.
116
+ stop Stop an engagement and wait for its infrastructure to be absent.
117
+ ```
118
+
119
+ ### `hound engagements launch`
120
+
121
+ ```text
122
+ Usage: hound engagements launch [OPTIONS]
123
+
124
+ Start a new penetration test or relaunch a previous one.
125
+
126
+ Options:
127
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
128
+ out of band.
129
+ --domain TEXT Use this exact target domain.
130
+ -h, --help Show this message and exit.
131
+ ```
132
+
133
+ ### `hound engagements logs`
134
+
135
+ ```text
136
+ Usage: hound engagements logs [OPTIONS]
137
+
138
+ View the log stream for an engagement.
139
+
140
+ Options:
141
+ -t, --tail Keep polling for new events.
142
+ --domain TEXT Use this exact target domain.
143
+ --task-id TEXT Use one exact task; requires --domain.
144
+ -h, --help Show this message and exit.
145
+ ```
146
+
147
+ ### `hound engagements status`
148
+
149
+ ```text
150
+ Usage: hound engagements status [OPTIONS]
151
+
152
+ Show engagement status details.
153
+
154
+ Options:
155
+ --task-id TEXT Show one exact task; requires --domain.
156
+ --domain TEXT Filter by exact target domain.
157
+ -h, --help Show this message and exit.
158
+ ```
159
+
160
+ ### `hound engagements stop`
161
+
162
+ ```text
163
+ Usage: hound engagements stop [OPTIONS]
164
+
165
+ Stop an engagement and wait for its infrastructure to be absent.
166
+
167
+ Options:
168
+ --task-id TEXT Use one exact task; requires --domain.
169
+ --domain TEXT Use this exact target domain.
170
+ -h, --help Show this message and exit.
171
+ ```
172
+
173
+ ### `hound inbox`
174
+
175
+ ```text
176
+ Usage: hound inbox [OPTIONS]
177
+
178
+ Read recent agent email or SMS for this account.
179
+
180
+ Options:
181
+ --agent TEXT Stable agent ID from hound/agents.
182
+ --channel [email|sms] Inbox channel.
183
+ --since TEXT Recent window: 30m, 2h, or up to 7d. [default: 24h]
184
+ -h, --help Show this message and exit.
185
+ ```
186
+
187
+ ### `hound ips`
188
+
189
+ ```text
190
+ Usage: hound ips [OPTIONS]
191
+
192
+ List persistent Hound Elastic IPs.
193
+
194
+ Options:
195
+ -h, --help Show this message and exit.
196
+ ```
197
+
198
+ ### `hound reports`
199
+
200
+ ```text
201
+ Usage: hound reports [OPTIONS] COMMAND [ARGS]...
202
+
203
+ Manage task-scoped customer report reviews.
204
+
205
+ Options:
206
+ -h, --help Show this message and exit.
207
+
208
+ Commands:
209
+ close Upload one reviewed task to S3 and wipe its local copy.
210
+ open Pull task artifacts for local review.
211
+ render Render one reviewed customer report package as a PDF.
212
+ ```
213
+
214
+ ### `hound reports close`
215
+
216
+ ```text
217
+ Usage: hound reports close [OPTIONS]
218
+
219
+ Upload one reviewed task to S3 and wipe its local copy.
220
+
221
+ Options:
222
+ -h, --help Show this message and exit.
223
+ ```
224
+
225
+ ### `hound reports open`
226
+
227
+ ```text
228
+ Usage: hound reports open [OPTIONS]
229
+
230
+ Pull task artifacts for local review.
231
+
232
+ Options:
233
+ --domain TEXT Use this exact target domain.
234
+ --task-id TEXT Use one exact task; requires --domain.
235
+ -h, --help Show this message and exit.
236
+ ```
237
+
238
+ ### `hound reports render`
239
+
240
+ ```text
241
+ Usage: hound reports render [OPTIONS]
242
+
243
+ Render one reviewed customer report package as a PDF.
244
+
245
+ Options:
246
+ --customer-name TEXT Customer or application name shown on the cover.
247
+ -h, --help Show this message and exit.
248
+ ```
249
+
250
+ ### `hound retests`
251
+
252
+ ```text
253
+ Usage: hound retests [OPTIONS] COMMAND [ARGS]...
254
+
255
+ Launch and manage retests.
256
+
257
+ Options:
258
+ -h, --help Show this message and exit.
259
+
260
+ Commands:
261
+ launch Start or relaunch a retest for a completed penetration test.
262
+ logs View the log stream for a retest.
263
+ status Show retest status details.
264
+ stop Stop a retest and wait for its infrastructure to be absent.
265
+ ```
266
+
267
+ ### `hound retests launch`
268
+
269
+ ```text
270
+ Usage: hound retests launch [OPTIONS]
271
+
272
+ Start or relaunch a retest for a completed penetration test.
273
+
274
+ Options:
275
+ --skip-dns-check Skip live DNS authorization checks after confirming authorization
276
+ out of band.
277
+ --domain TEXT Use this exact target domain.
278
+ -h, --help Show this message and exit.
279
+ ```
280
+
281
+ ### `hound retests logs`
282
+
283
+ ```text
284
+ Usage: hound retests logs [OPTIONS]
285
+
286
+ View the log stream for a retest.
287
+
288
+ Options:
289
+ -t, --tail Keep polling for new events.
290
+ --domain TEXT Use this exact target domain.
291
+ --task-id TEXT Use one exact task; requires --domain.
292
+ -h, --help Show this message and exit.
293
+ ```
294
+
295
+ ### `hound retests status`
296
+
297
+ ```text
298
+ Usage: hound retests status [OPTIONS]
299
+
300
+ Show retest status details.
301
+
302
+ Options:
303
+ --task-id TEXT Show one exact task; requires --domain.
304
+ --domain TEXT Filter by exact target domain.
305
+ -h, --help Show this message and exit.
306
+ ```
307
+
308
+ ### `hound retests stop`
309
+
310
+ ```text
311
+ Usage: hound retests stop [OPTIONS]
312
+
313
+ Stop a retest and wait for its infrastructure to be absent.
314
+
315
+ Options:
316
+ --task-id TEXT Use one exact task; requires --domain.
317
+ --domain TEXT Use this exact target domain.
318
+ -h, --help Show this message and exit.
319
+ ```
320
+
321
+ ### `hound status`
322
+
323
+ ```text
324
+ Usage: hound status [OPTIONS]
325
+
326
+ Show the account-wide work queue, newest first.
327
+
328
+ Options:
329
+ --task-id TEXT Show one exact task; requires --domain.
330
+ --domain TEXT Filter by exact target domain.
331
+ -h, --help Show this message and exit.
332
+ ```
333
+
334
+ <!-- [[[end]]] -->
335
+
336
+ Hound CLI is licensed under the [Apache License 2.0](LICENSE).
@@ -4,4 +4,4 @@ dnspython>=2.7
4
4
  idna>=3.11
5
5
  publicsuffixlist>=1.0.2.20260515
6
6
  questionary>=2.1
7
- urllib3>=2.7.0
7
+ urllib3>=2.8.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hound-cli"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "Hound operator CLI"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14"
@@ -13,7 +13,7 @@ dependencies = [
13
13
  "idna>=3.11",
14
14
  "publicsuffixlist>=1.0.2.20260515",
15
15
  "questionary>=2.1",
16
- "urllib3>=2.7.0",
16
+ "urllib3>=2.8.0",
17
17
  ]
18
18
 
19
19
  [project.scripts]
@@ -54,5 +54,6 @@ known-first-party = ["hound_cli"]
54
54
 
55
55
  [dependency-groups]
56
56
  dev = [
57
+ "cogapp>=3.6.0",
57
58
  "ruff>=0.15.9",
58
59
  ]
hound_cli-0.1.0/PKG-INFO DELETED
@@ -1,79 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: hound-cli
3
- Version: 0.1.0
4
- Summary: Hound operator CLI
5
- License-Expression: Apache-2.0
6
- Requires-Python: >=3.14
7
- Description-Content-Type: text/markdown
8
- License-File: LICENSE
9
- Requires-Dist: boto3>=1.35.0
10
- Requires-Dist: click>=8.3.3
11
- Requires-Dist: dnspython>=2.7
12
- Requires-Dist: idna>=3.11
13
- Requires-Dist: publicsuffixlist>=1.0.2.20260515
14
- Requires-Dist: questionary>=2.1
15
- Requires-Dist: urllib3>=2.7.0
16
- Dynamic: license-file
17
-
18
- # Hound CLI
19
-
20
- The command-line interface for managing Hound penetration tests.
21
-
22
- ## Install
23
-
24
- Requirements:
25
-
26
- - Python 3.14 or newer.
27
- - [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
28
-
29
- Install Hound from PyPI:
30
-
31
- ```console
32
- pipx install hound-cli
33
- hound --help
34
- ```
35
-
36
- To upgrade:
37
-
38
- ```console
39
- pipx upgrade hound-cli
40
- ```
41
-
42
- ## Commands
43
-
44
- Hound uses your current AWS credentials to access your Hound environment.
45
-
46
- ```text
47
- hound agents
48
- hound auth
49
- hound ips
50
- hound status
51
- hound engagements launch|status|logs|stop
52
- hound retests launch|status|logs|stop
53
- hound inbox
54
- hound reports open|render|close
55
- ```
56
-
57
- Commands guide you through selection when context is needed. Run any command
58
- with `--help` for additional options.
59
-
60
- Launch commands collect or reuse the access details Hound needs, then check
61
- target authorization before queueing work. `hound auth` shows the
62
- accepted DNS record and its current status without starting a launch.
63
-
64
- Interactive values, including passwords, remain visible while they are entered
65
- and in subsequent summaries so the operator can verify them.
66
-
67
- `hound status` opens the account work queue in a terminal pager, with the newest
68
- work first and older history below it.
69
- Stop requests continue in AWS if the local display is interrupted.
70
-
71
- ## Report review
72
-
73
- `hound reports open` creates a local review, `render` produces a customer PDF,
74
- and `close` uploads the local task files to S3 before wiping the local copy.
75
- Files removed locally remain in S3. If an upload fails, the local review is
76
- preserved. Reviews live under `~/Hound/reports` by default and may contain
77
- sensitive customer data.
78
-
79
- Hound CLI is licensed under the [Apache License 2.0](LICENSE).
hound_cli-0.1.0/README.md DELETED
@@ -1,62 +0,0 @@
1
- # Hound CLI
2
-
3
- The command-line interface for managing Hound penetration tests.
4
-
5
- ## Install
6
-
7
- Requirements:
8
-
9
- - Python 3.14 or newer.
10
- - [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
11
-
12
- Install Hound from PyPI:
13
-
14
- ```console
15
- pipx install hound-cli
16
- hound --help
17
- ```
18
-
19
- To upgrade:
20
-
21
- ```console
22
- pipx upgrade hound-cli
23
- ```
24
-
25
- ## Commands
26
-
27
- Hound uses your current AWS credentials to access your Hound environment.
28
-
29
- ```text
30
- hound agents
31
- hound auth
32
- hound ips
33
- hound status
34
- hound engagements launch|status|logs|stop
35
- hound retests launch|status|logs|stop
36
- hound inbox
37
- hound reports open|render|close
38
- ```
39
-
40
- Commands guide you through selection when context is needed. Run any command
41
- with `--help` for additional options.
42
-
43
- Launch commands collect or reuse the access details Hound needs, then check
44
- target authorization before queueing work. `hound auth` shows the
45
- accepted DNS record and its current status without starting a launch.
46
-
47
- Interactive values, including passwords, remain visible while they are entered
48
- and in subsequent summaries so the operator can verify them.
49
-
50
- `hound status` opens the account work queue in a terminal pager, with the newest
51
- work first and older history below it.
52
- Stop requests continue in AWS if the local display is interrupted.
53
-
54
- ## Report review
55
-
56
- `hound reports open` creates a local review, `render` produces a customer PDF,
57
- and `close` uploads the local task files to S3 before wiping the local copy.
58
- Files removed locally remain in S3. If an upload fails, the local review is
59
- preserved. Reviews live under `~/Hound/reports` by default and may contain
60
- sensitive customer data.
61
-
62
- Hound CLI is licensed under the [Apache License 2.0](LICENSE).
@@ -1,79 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: hound-cli
3
- Version: 0.1.0
4
- Summary: Hound operator CLI
5
- License-Expression: Apache-2.0
6
- Requires-Python: >=3.14
7
- Description-Content-Type: text/markdown
8
- License-File: LICENSE
9
- Requires-Dist: boto3>=1.35.0
10
- Requires-Dist: click>=8.3.3
11
- Requires-Dist: dnspython>=2.7
12
- Requires-Dist: idna>=3.11
13
- Requires-Dist: publicsuffixlist>=1.0.2.20260515
14
- Requires-Dist: questionary>=2.1
15
- Requires-Dist: urllib3>=2.7.0
16
- Dynamic: license-file
17
-
18
- # Hound CLI
19
-
20
- The command-line interface for managing Hound penetration tests.
21
-
22
- ## Install
23
-
24
- Requirements:
25
-
26
- - Python 3.14 or newer.
27
- - [`pipx`](https://pipx.pypa.io/stable/installation/) to install Hound.
28
-
29
- Install Hound from PyPI:
30
-
31
- ```console
32
- pipx install hound-cli
33
- hound --help
34
- ```
35
-
36
- To upgrade:
37
-
38
- ```console
39
- pipx upgrade hound-cli
40
- ```
41
-
42
- ## Commands
43
-
44
- Hound uses your current AWS credentials to access your Hound environment.
45
-
46
- ```text
47
- hound agents
48
- hound auth
49
- hound ips
50
- hound status
51
- hound engagements launch|status|logs|stop
52
- hound retests launch|status|logs|stop
53
- hound inbox
54
- hound reports open|render|close
55
- ```
56
-
57
- Commands guide you through selection when context is needed. Run any command
58
- with `--help` for additional options.
59
-
60
- Launch commands collect or reuse the access details Hound needs, then check
61
- target authorization before queueing work. `hound auth` shows the
62
- accepted DNS record and its current status without starting a launch.
63
-
64
- Interactive values, including passwords, remain visible while they are entered
65
- and in subsequent summaries so the operator can verify them.
66
-
67
- `hound status` opens the account work queue in a terminal pager, with the newest
68
- work first and older history below it.
69
- Stop requests continue in AWS if the local display is interrupted.
70
-
71
- ## Report review
72
-
73
- `hound reports open` creates a local review, `render` produces a customer PDF,
74
- and `close` uploads the local task files to S3 before wiping the local copy.
75
- Files removed locally remain in S3. If an upload fails, the local review is
76
- preserved. Reviews live under `~/Hound/reports` by default and may contain
77
- sensitive customer data.
78
-
79
- Hound CLI is licensed under the [Apache License 2.0](LICENSE).
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes