IDM Command Line Parameters

IDM is packed in a Java JAR file, a universal package that can be run on any system capable of running Java Version 8. or the open-source edition OpenJDK which now prevealed over the oracle distribution after the license change.

This page explains the IDM command line options. Even though there are preconfigured distribution packages available under Installation, you may want to run multiple instances at the same time, which requires manual control.

Starting IDM

With java8 installed and in path:

java -jar idm.jar

On Windows and MAC, you can also double click on the idm.jar file.

By default, the application starts with GUI as a Desktop application and opens the following ports:

  • HTTP Web RESTful API (web & python access): TCP/IP port 33000
  • IDM Services (Pro Version): TCP/IP port 33003

These ports are closed for external access by default, however, a web javascript or other running processes can silently connect to it. You may want to setup an admin or user password.

The ports can be changed in GUI or directly in the idm.conf. To allow access to the RESTful services you need to open the port in your firewall.

  • Linux:
  • Windows: on the first attempt to access the 9001 port externally, the user is asked to allow/disallow access
  • MAC: ..

For interfacing an USB device you may need to manually grant rights or provide a proper driver, do see USB Device Drivers Setup page.

Stopping IDM

IDM syncs run-time data information every 600 seconds, upon device disconnection and on exit. To ensure data integrity, stop IDM by:

  • either sending it SIGINT, so under Linux: kill <process pid>
  • by pressing CTRL+C if running in command line mode when invoked directly,
  • or simply by closing the GUI when running the Desktop version.

In case the data integrity is lost:

  • the IDM configuration file idm.conf may be restored from bak file, see Configuration
  • corrupted recordings of the file are backuped under records/ and new records are created. The utility to recover the old data and merge it with new data is still pending.

Command Line options

Starting Options

--daemon                                start program in command line mode without GUI
--systray                               enable system tray
--run=<command>                         run a command or script at startup. example: --run=$openSerialPort(demo)
--working-dir=<directory>               set working directory
--disable-bluetooth                     disable bluetooth support
--api-disable-records                   disable message recording by default. It can still be enabled manually for each device
--version                               print program version
--license                               print license acknowledgements
--help                                  print this help contents

IDM is started as a GUI Desktop application by default. With the switch –daemon, GUI will not be initialized, suitable to run as a daemon (background service). For example: to start a Linux/IDM and put it into the background, use the nohup helper utility:

$ nohup java -jar idm.jar --daemon &


IDM options are provided at the end, after the -jar idm.jar.

Alternatively, for development purposes, you may wish to start the application as GUI but would like to minimize it to a system tray to appear as a daemon. Use the –systray option.

IDM offers a set of so-called terminal commands, which are used to make actions, typically opening or closing ports. One such command can be provided via the command line using the –run option. Note that the ports also offer auto opening/closing features.

The –working-dir changes the base directory, which affects the default location for the config file, optional web file serving folder and storage for device recordings, stored under records/ sub-directory.

On some systems (Windows) with specific device drivers (Virtual COMs), a Bluetooth search may be long and unnecessary. In such cases it can be turned off temporarily from the command line via the –disable-bluetooth option or directly in the idm.conf. The Bluetooth configuration can also be managed from GUI under Settings.

The –api-disable-records is a master switch to disable recording regardless of the idm.conf. It is useful for testing purposes, not to splash records in a valid record storage without altering the idm.conf.

IDM as a Java application can be supplemented with numerous Java options to limit/set the memory space. For example, to reserve and limit memory consumption of a background daemon to 128 MB:

$ nohup java -Xms128m -Xmx128m -jar idm.jar --daemon &


Java options are provided before the -jar idm.jar.


--config=<filename>                     set custom configuration file
--config-<module>.<parameter>=<value>   set custom configuration parameter
--config-autorecovery                   try to restore configuration from backup file
--localhost-admin                       set localhost http access to admin mode automatically

By default, IDM searches for the idm.conf configuration file in the current folder. System wide (daemon) installations need to provide a system specific config file (option –config), which can also provide predefined presets for some hardware. The –config-<module>.<parameter> overrides the settings from the idm.conf.

The –config-autorecovery option will restore a damaged idm.conf from idm.conf.bak if present and retry upon restart for another time. If both files are damaged, IDM exists.

It may be convenient to avoid typing passwords in deployments where only a system administrator has local access. With the option –localhost-admin it may be easier to do a local configuration via python and to simplify scripting.

System Logging and Debugging

--severity=<minlevel>                   minimum logging level: Off, Trace, Debug, API, Info (default), Warning, Error to be reported.
--log4j-config=<filename>               set logger configuration file
--log-trace-msg                         enable additional communication trace messages

IDM reports activity related to its operation and messages from devices of different severity types. By default, IDM shows activity messages under the main Control View Activity TAB and also under each device’s view Activity tab. When run as –daemon, it will print messages to the console output, unless –log4j-config is provided.

The –severity switch defines a global severity level to be pushed into a console, GUI and system logger –log4j-config. The –log-trace-msg adds extra debugging messages used to support the debugging of the low-level communication protocol with hardware devices.

The system logging integration is provided by the Apache Log4j Package capable of various multiple logging configurations and integration with the standard syslog system. For more information on using syslog, follow to System Integration & Maintenance with Syslog.

Backward Compatibility Options

--Adisable-eom-loading                  disable %! end-of-messages indicator in device loading algorithm
--Acframe=short                         enable old frame processing protocol format

The –Adisable-eom-loading is provided to support older the Isotel myLab family, thermometers and voltage meters, and the –Acframe=short, a proprietary hardware.