skip to navigation
skip to content

iotlabcli 2.5.2

IoT-LAB testbed command-line client

IoT-Lab cli-tools

IoT-LAB cli-tools provide a basic set of operations for managing IoT-LAB experiments from the command-line.


IoT-LAB cli-tools, including all examples, code snippets and attached documentation is covered by the CeCILL v2.1 free software licence.


The following commands are available:

Command Functions
auth-cli configure account credentials
experiment-cli start, stop, query experiments
node-cli start, stop, reset nodes, update firmwares
profile-cli manage nodes configurations
robot-cli manage robot nodes

Commands are self-documented, and usually have sub-commands which are also self-documented. Use e.g:

node-cli --help
profile-cli add --help


The cli-tools leverage the IoT-LAB REST API and simply wrap calls to module iotlabcli, which is a Python client for the API.

The cli-tools come as an installable Python package and require that module setuptools be installed before tools installation can happen. Please grab the relevant python-setuptools package for your distribution.

To proceede to install cli-tools, use sudo python install.

Installing cli-tools automatically fetches additional dependencies as needed.

Further documentation:



  • Revert 2.5.1


  • Fixing python 3 required version in


  • Drop python 2.6 support
  • Fixing issues raised by pylint 1.8
  • Deprecate -cli commands and add new iotlab- commands



  • Fix load experiment with mobilities or profiles associations.



  • Remove archi names validation in AliasNodes association


  • Fixing pylint



  • Add script execution management at submit and during experiment
  • Add node update-idle command to update firmware with an idle firmware.
  • Add node profile-load command to update profile from a JSON.
  • Add node profile-reset command to update profile with the default one.
  • Allow restricting output by archi and state in experiment-cli info
  • Allow restricting by archi for profile-cli get
  • Allow providing -l multiples times for experiment-cli load
  • Remove parser archi names validation, prepare for adding new ones.
  • Add dedicated help commands for --list and --site-association options
  • Update for Pypi
    • README and CHANGELOG to reStructuredText
    • Set long_description in


  • Refactoring associations management
  • Reduce maximum McCabe complexity to 4


Same as 2.3.0 but rebased on master branch.



  • Add a ‘get –experiments’ command to get a summary of active experiments ids.
  • Add support to reload experiment by ‘id’ (as on the website)
  • Add an admin-cli script with a command to wait for any user experiment
    • Required for runscript: allows waiting for an user experiment without auth-cli having been run on the server.


  • Fixing docstrings
  • Refactoring internal code and tests


Backward incompatible changes

  • robot-cli: --status command replaced by status
  • profile-cli: remove support for mobility in profiles (remove from the api)


  • New architectures: add support for ‘custom’ and ‘des’ nodes
  • experiment-cli submit: add named arguments and associations support:
--list grenoble,m3,1,tutorial.elf,consumption
# equivalent to --list

# Specifying robot mobility to 'Jhall'
--list grenoble,m3,381,mobility=Jhall
  • robot-cli: add new commands

    status: get robot status get –list: list user mobilities get –name NAME,SITE: get given mobility JSON update NAME,SITE: update robots with given mobility

  • rest: add commands to download map and configuration (for oml-plot-tools)

  • 2.1.0: Add a context manager for missing auth-cli

  • 2.2.0: Add ‘custom’ nodes profile creation in profile-cli

  • 2.2.1: Officially support python3.5, fix broken test and cleanup tox.ini



  • Add --jmespath and --format options to handle json output
  • 1.8.1: Fix pylint 1.5.0 new warnings



  • Add ‘debug-start’ and ‘debug-stop’ commands


  • Fix how home directory is found.
  • Force ‘mock’ version to stay compatible with python2.6
  • Fix integration ‘tox’ command to have a correct coverage output.
  • 1.7.1: Add dependency on ‘urllib3[secure]’ to fix ssl connections security
  • 1.7.2: Catch BrokenPipe errors when printing results


Setting the license to CeCILL v2.1


  • Add an update-profile command to node-cli to change monitoring profile
  • Add a robot-cli script to interract with the robot. Provides a --status to query the robot internal status.
  • Move experiment node selection to parser.common.. May break external softwares using internal api.


  • Restrict flake8 version due to pep8 incompatibility
  • Correct auth_parser test that tried external connections



  • ‘sniffer’ option in profile m3/a8
  • ‘profile-cli’ commands now return a json dict
  • Nicely catch rest HTTPError for Access Denied 401
  • Check credentials for auth-cli with the server


  • Fix load profile
  • Unicode management in python3
  • Help messages
  • Python3 crash without command for exp-cli
  • 1.5.1: Add ‘experiment-cli get –start-time’ command
  • 1.5.2: BUG: Add dependency on request >= 2.4.2 for ‘json’ upload parameter
  • 1.5.3: Move test dependencies to tests_require
  • 1.5.4: Catch ‘request’ exception for old version and raise as RuntimeError
  • 1.5.5: Custom api url file has now priority over env variable. Print when using alternate api url.
  • 1.5.6: Cleanup and tests


  • 1.4.1: BUG Force pylint dependency for python2.6
File Type Py Version Uploaded on Size
iotlabcli-2.5.2.tar.gz (md5) Source 2017-12-19 68KB