Skip to main content

Liberty CLI is a user-facing command-line client for interacting with Librem One or another Liberty Deckplan Host (LDH).

Project description

Liberty CLI

project | code | tracker | pypi

Liberty CLI is a user-facing command-line client for interacting with Librem One or another Liberty Deckplan Host (LDH).

Dive into for LDH design and development.


The preferred way to install Liberty CLI is with your package manager. The recommended package name is ldh-client. For example:

sudo apt install ldh-client  # Debian-based


pipx install ldh-client  # Python-based


The following commands are available:

liberty show info

liberty setup tunnel

For instructions and options add --help, for example:

liberty setup tunnel --help

Prototype quickstart

To install prototype components on PureOS or another Debian-based system from scratch:

sudo apt install pipx
pipx ensurepath
pipx install ldh-client
liberty setup dependencies  # triggers sudo prompt
liberty setup prototype

To update the prototype:

pipx upgrade ldh-client  # or pipx upgrade-all
liberty setup dependencies  # triggers sudo prompt
liberty setup prototype

To remove the prototype:

liberty remove dependencies  # optional, triggers sudo prompt
liberty remove prototype
pipx uninstall ldh-client
sudo apt remove pipx  # optional

Installation (from source)

If you'd prefer to run from source...

  1. Install Python 3.x and pipenv. (See for a tutorial.)

  2. Install prerequisites:

     sudo apt install libcairo2-dev libgirepository1.0-dev libssl-dev python3-dev
  3. Install optional prerequisites:

     sudo apt install rclone yad
  4. Get source:

     git clone ldh_client
  5. Install with pipenv:

     cd ldh_client
     pipenv install --dev -e .

Usage (from source)

cd ldh_client
pipenv run liberty show info

Prototype quickstart (from source)

Ensure that ~/.local/bin is on your $PATH:

sudo apt install pipx
pipx ensurepath
# pipx is used only to set the path
# you may prefer to modify your .bashrc or some other method

Follow the from-source instructions, then create the liberty-dev executable as follows:

cd ldh_client/liberty-dev
# creates ~/.local/bin/liberty-dev and associated symlinks
# re-run this any time you move the ldh_client folder

Now install prototype components:

liberty-dev setup dependencies
liberty-dev setup prototype --dev

Note that setup prototype always overrides existing prototype components. This means you can point to either liberty or liberty-dev, never both.

To remove the prototype components and liberty-dev:

liberty-dev remove dependencies  # optional, triggers sudo prompt
liberty-dev remove prototype
cd ldh_client/liberty-dev


When debugging, troubleshooting or asking for help please include the output of:

liberty show info


liberty show info --gui
# the same information in a graphical window (supports copy-and-paste)

Replace liberty with pipenv run liberty or liberty-dev as appropriate.

Build wheel package (and optionally upload)

Follow these instructions to build Liberty CLI as a Python package:

git clone ldh_client
cd ldh_client
pipenv install --dev
pipenv shell
# optionally edit default.strict.yaml
python sdist bdist_wheel

If everything works as expected you should end up with the files:

  • dist/ldh_client-<version>-py3-none-any.whl
  • dist/ldh_client-<version>.tar.gz

You can now optionally upload the created Python package to PyPI using twine:

twine upload dist/*

Sharing and contributions

Liberty CLI (LDH client)
Copyright 2018-2020 Purism SPC
SPDX-License-Identifier: AGPL-3.0-or-later

Shared under AGPL-3.0-or-later. We adhere to the Community Covenant 1.0 without modification, and certify origin per DCO 1.1 with a signed-off-by line. Contributions under the same terms are welcome.

For details see:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ldh_client-0.0.10.tar.gz (32.9 kB view hashes)

Uploaded source

Built Distribution

ldh_client-0.0.10-py3-none-any.whl (24.2 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page