ktm shell

Run interactive live shell commands on SIM cards and web agents, sending USSD, SMS, calls, or HTTP requests in real time.

Shell — interactive live sessions on SIM cards and web agents

Usage

ktm shell [flags]

Subcommands

cancel

Cancel a pending or ongoing shell command

get

Get full shell command result

list

List recent shell actions (last 24h by default)

progress

List pending and ongoing shell commands

send

Send a shell command to a device

types

List available shell action types

Details

Send commands directly to devices and see results in real time. Unlike tests, shell commands have no assertions — they fire a command and return the raw result.

Supported device types: SIM (owner_kind=S): USSD, SMS, calls, data operations via cellular network Ethernet (owner_kind=E): HTTP API, ping, DNS, transfers via web agents

Smartphones are not supported — drive them through tests or the live device automation instead.

USSD sessions are stateful — dialing a shortcode opens a session, and sending menu option numbers (1, 2, 3) navigates deeper into the menu tree. Sessions expire after ~30s of inactivity. Use --wait to see the menu text inline.

Some flows trigger asynchronous events (e.g. wait SMS after a USSD selection or API call). Use 'shell list --from-date <timestamp>' to poll for new shells since your session started.

Note: SIM cards and web agents are shared resources. Active monitors run tests on the same devices on a schedule. If a shell returns Blocked or Timeout unexpectedly, it may be resource contention — wait 15-30s and retry. Use 'monitors toggle' to pause monitors if needed.

Global flags (--output, --debug, --host, …) apply to every command. See the command reference overview.

What's next?

All commands

Browse the full CLI reference.

Get started

Install the CLI and authenticate.

Last updated on