CLI Reference - icom-lan
Description: Python library for controlling Icom transceivers over LAN

Skip to content

# CLI Reference

The `icom-lan` CLI provides quick access to radio control from the terminal.

## Global Options

All commands accept these options:

Option | Env Var | Default | Description
--- | --- | --- | ---
`--host` | `ICOM_HOST` | `192.168.1.100` | Radio IP address
`--port` | `ICOM_PORT` | `50001` | Control port
`--user` | `ICOM_USER` | `""` | Username
`--pass` | `ICOM_PASS` | `""` | Password
`--timeout` | — | `5.0` | Timeout in seconds

Use Environment Variables

Set `ICOM_HOST`, `ICOM_USER`, and `ICOM_PASS` in your shell profile to avoid typing them every time.

    # ~/.bashrc or ~/.zshrc
    export ICOM_HOST=192.168.1.100
    export ICOM_USER=myuser
    export ICOM_PASS=mypass

## Commands

### `status`

Show radio status (frequency, mode, S-meter, power).

    icom-lan status
    icom-lan status --json

    Frequency:    14,074,000 Hz  (14.074000 MHz)
    Mode:         USB
    S-meter:      42
    Power:        50

JSON output:

    {
      "frequency_hz": 14074000,
      "frequency_mhz": 14.074,
      "mode": "USB",
      "s_meter": 42,
      "power": 50
    }

### `freq`

Get or set the operating frequency.

    # Get current frequency
    icom-lan freq

    # Set frequency (multiple formats)
    icom-lan freq 14074000      # Hz
    icom-lan freq 14074k        # kHz
    icom-lan freq 14.074m       # MHz

### `mode`

Get or set the operating mode.

    # Get current mode
    icom-lan mode

    # Set mode
    icom-lan mode USB
    icom-lan mode CW
    icom-lan mode LSB

Available modes: `LSB`, `USB`, `AM`, `CW`, `RTTY`, `FM`, `WFM`, `CW_R`, `RTTY_R`, `DV`

### `power`

Get or set the RF power level (0–255).

    # Get current power
    icom-lan power

    # Set power level
    icom-lan power 128

Power Scale

The 0–255 value is the radio's internal representation. The mapping to actual watts depends on your radio model and mode.

### `meter`

Read all available meters.

    icom-lan meter
    icom-lan meter --json

    S-METER  42
    POWER    50
    SWR      n/a
    ALC      n/a

Info

SWR and ALC are only available during TX. They show `n/a` when receiving.

### `ptt`

Toggle Push-To-Talk.

    icom-lan ptt on
    icom-lan ptt off

Caution

Activating PTT will key your transmitter. Ensure your antenna is connected and you are authorized to transmit on the current frequency.

### `cw`

Send CW text via the radio's built-in keyer.

    icom-lan cw "CQ CQ DE KN4KYD K"

The text is sent in chunks of up to 30 characters. Supports A–Z, 0–9, and standard prosigns.

### `power-on` / `power-off`

Remote power control.

    icom-lan power-on
    icom-lan power-off

Warning

`power-on` only works if the radio supports wake-on-LAN and the network connection is maintained in standby mode.

### `discover`

Discover Icom radios on the local network via UDP broadcast.

    icom-lan discover

    Scanning for Icom radios (3 seconds)...
      Found: 192.168.1.100:50001  id=0xDEADBEEF

    1 radio(s) found.

## Exit Codes

Code | Meaning
--- | ---
`0` | Success
`1` | Error (connection, auth, command failure)

## Examples

    # Monitor frequency in a loop
    watch -n 1 icom-lan freq --json

    # Quick band change
    icom-lan freq 7.074m && icom-lan mode USB

    # Script-friendly JSON output
    FREQ=$(icom-lan freq --json | jq -r '.frequency_hz')
    echo "Currently on $FREQ Hz"