Skip to main content

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

  1. Start typing any character at the empty prompt.
  2. The menu lists canonical resources and essential shell commands matching the typed prefix (for example, d shows device and driver).
  3. Type a resource and a space to see its actions (for example, plugin shows list, run, run-all, and refresh).
  4. 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)

Source distribution for iotsploit-cli 0.0.9
File Size Uploaded
iotsploit_cli-0.0.9.tar.gz 49.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iotsploit-cli 0.0.9
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.9 This release

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page