Remo Python Introduction

Here you can find an introduction to the remo Python library.

The library aims to integrate Remo in existing workflows of developers, data scientists and researchers. Using the library, you can:

  • visualise images, annotations and model predictions
  • organise your data before feeding it to Computer Vision algorithms
  • manage annotations (e.g.rename, add, delete classes, tags, objects)
  • open remo directly in Jupyter notebooks, in the browser or in its own app

You can refer to the python library documentation for implementation details.

About the library

The library is distributed as a pip package remo-sdk, which is automatically installed together with remo. Under the hood, remo-sdk calls a set of endpoints exposed by the local webapp.

The library is open source. You can checkout and contribute on our GitHub repo.

Work in progress

We are iterating quite fast on the library design in this phase, which means some functionalities might break from one version to the other.

Any feedback on the library or pull request to the repo is welcome.

Launching remo

The library can be called doing import remo.

Upon import, the library will automatically check if a local remo server is running, and try to connect to it. To launch remo itself, you'd need to run python -m remo_app from the command line.

Main entities

The main entities in the Python library are:

For finer control, you can use:

  • Annotation Set Class: high-level operations on annotations
  • Image Class: low-level operations on individual images
  • Annotation Class: low-level operations on individual annotation objects
  • API Class: here we call directly the Rest API endpoints. You shouldn't need to look here, except if you want to build new functionalities


To get quickly started, you can have a look at some notebook tutorials:

Tutorial What Download
Intro Notebook Quick intro to main functionalities intro_to_remo-SDK.ipynb
Upload Annotations Notebook Tutorial on uploading annotations tutorial_upload_annotations.ipynb

Advanced Topics

Choice of frontend

Remo will open by default in its own app. You can have remo embed in Jupyter notebooks, by running:

At any point, you can also access remo by just browsing to the address where is being served (by default: localhost:8123). To change the default viewer, you can edit the config file.

Local vs remote

If you have a remo server running on a remote machine, you can use the python library to connect to it by doing

import remo

Other programming languages

If you are using a programming language other than Python, you can still call remo from code.

You still need a version of Remo installed, but then you could directly call the app REST API end-points - maybe taking inspiration from what we have done within the Python SDK.