iotsploit-cli
IoTSploit interactive CLI shell for IoT security testing.
Overview
This package provides the iotsploit command-line shell built on top of cmd2.
It bundles the core console loop (console.py) and all command modules
(commands/) that implement device management, plugin execution, target
management, network operations, and more.
Installation
pip install iotsploit-cli
Usage
iotsploit
Or with the Django server started immediately:
iotsploit --runserver
Choose the backend and MCP listening addresses when the defaults are not suitable:
iotsploit --runserver \
--host 0.0.0.0 --api-port 8080 --ws-port 8081 \
--mcp-host 127.0.0.1 --mcp-port 9901
The same options are available inside the shell:
<IoX_SHELL> service start --host 0.0.0.0 --api-port 8080 --ws-port 8081
--host controls the API and WebSocket listeners. MCP remains on loopback by
default because it does not authenticate incoming requests; expose it only on
a protected network. All ports must be distinct.
Custom plugins
IOTSPLOIT_EXPLOIT_PLUGINS_DIR can be used for user custom exploit plugins.
IOTSPLOIT_DEVICE_PLUGINS_DIR can be used for user custom device plugins.
Command standard
Application commands use a predictable resource action grammar:
device list
driver status
firmware flash <firmware> <device>
plugin run <plugin>
target export [file]
service status
The top-level resources are host, device, driver, firmware, plugin,
target, service, wifi, and config. Run help for the concise public
surface, help <resource> for its actions, or help --all for advanced cmd2
commands and the legacy-name migration table.
Previous command names and abbreviations remain executable during the migration. They print a deprecation warning with the canonical replacement.
Command Palette
The IoTSploit shell includes a live command palette for the canonical command surface. When you type at the top-level prompt, a menu shows matching resources with a short explanation. After a resource and a space, it shows that resource's actions.
How it works
- Start typing any character at the empty prompt.
- The menu lists canonical resources and essential shell commands matching
the typed prefix (for example,
dshowsdeviceanddriver). - Type a resource and a space to see its actions (for example,
pluginshowslist,run,run-all, andrefresh). - Navigate the list, insert a selection, or dismiss the menu.
Keyboard controls
| Key | Behavior |
|---|---|
| Any first-token character | Open the palette menu |
| Additional characters | Filter the list case-insensitively |
| Up / Down | Move selection without changing the buffer |
| Tab | Insert the selected command name (does not submit) |
| Enter | Accept the selected command and submit through cmd2 dispatch |
| Escape | Close the menu and retain the current input text |
| Backspace to empty | Close the menu |
| Space after a resource | Show the resource's actions |
Space after service start |
Show the available endpoint options |
| Space after another action | Close the menu and allow argument entry |
| Ctrl+C | Cancel the current input (normal shell behavior) |
| Ctrl+D on empty line | Exit the shell (normal EOF behavior) |
Behaviour notes
- The palette is TTY-only. Non-interactive use (piped input, startup scripts, non-TTY stdin) bypasses the palette entirely and uses the normal cmd2 input path.
- The command list comes from the same canonical registry as help and the argparse command definitions, so names and explanations stay aligned.
- Tab completion for arguments (after a space) still uses cmd2's existing completion engine, including argument-specific completers and argparse completers.
- Selecting a command from the palette does not execute it; it inserts the command name so you can type arguments before pressing Enter.
License
GPL-3.0-or-later. See LICENSE for details. For commercial use, contact wang3919379@gmail.com.
Release files for iotsploit-cli 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iotsploit_cli-0.0.9.tar.gz | 49.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iotsploit_cli-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 107.1 kB
Release files / iotsploit_cli-0.0.9.tar.gz
| Download URL | iotsploit_cli-0.0.9.tar.gz |
|---|---|
| Size | 49.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f65e78571cd45f74372adeaaf15b0c19e5afddbb23bc6d533428b6c9406286bf
|
|
BLAKE2b-256 checksum How to use checksums |
af978c2ebcf5af09d948fdec94f50ef01728053045d78e3a86bb95e94f57a2c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / iotsploit_cli-0.0.9-py3-none-any.whl
| Download URL | iotsploit_cli-0.0.9-py3-none-any.whl |
|---|---|
| Size | 57.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cf0b1cdcf9065434ee33d6b2846e3fe4e38cc9c428953edcdcc6952e7d71fd53
|
|
BLAKE2b-256 checksum How to use checksums |
d304ec616d3e5c142e68b81d64ac13b2f0ec165e58deaabfb3904eb11f28394d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|