{"id":34109245,"url":"https://github.com/typesafehub/conductr-cli","last_synced_at":"2026-04-01T23:02:29.813Z","repository":{"id":25488284,"uuid":"28919275","full_name":"typesafehub/conductr-cli","owner":"typesafehub","description":"CLI for Lightbend ConductR","archived":false,"fork":false,"pushed_at":"2022-11-04T02:29:08.000Z","size":51435,"stargazers_count":17,"open_issues_count":8,"forks_count":21,"subscribers_count":9,"default_branch":"master","last_synced_at":"2026-01-14T10:38:14.541Z","etag":null,"topics":["cli","conductr","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/typesafehub.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-07T15:04:13.000Z","updated_at":"2025-08-27T15:36:48.000Z","dependencies_parsed_at":"2023-01-14T03:30:24.996Z","dependency_job_id":null,"html_url":"https://github.com/typesafehub/conductr-cli","commit_stats":null,"previous_names":["typesafehub/typesafe-conductr-cli"],"tags_count":96,"template":false,"template_full_name":null,"purl":"pkg:github/typesafehub/conductr-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesafehub%2Fconductr-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesafehub%2Fconductr-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesafehub%2Fconductr-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesafehub%2Fconductr-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/typesafehub","download_url":"https://codeload.github.com/typesafehub/conductr-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/typesafehub%2Fconductr-cli/sbom","scorecard":{"id":905323,"data":{"date":"2025-08-11","repo":{"name":"github.com/typesafehub/conductr-cli","commit":"0ed890284228ec8acc894d49a2ea2a598f16e130"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Code-Review","score":6,"reason":"Found 11/18 approved changesets -- score normalized to 6","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: deb_dist/Dockerfile:1: pin your Docker image by updating ubuntu:14.10 to ubuntu:14.10@sha256:6341c688b4b0b82ec735389b3c97df8cf2831b8cb8bd1856779130a86574ac5c","Warn: pipCommand not pinned by hash: deb_dist/Dockerfile:7","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T17:08:35.607Z","repository_id":25488284,"created_at":"2025-08-24T17:08:35.608Z","updated_at":"2025-08-24T17:08:35.608Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31036729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T07:48:52.080Z","status":"ssl_error","status_checked_at":"2026-03-27T07:48:19.562Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","conductr","python"],"created_at":"2025-12-14T18:28:53.835Z","updated_at":"2026-04-01T23:02:29.796Z","avatar_url":"https://github.com/typesafehub.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"|build_status| |latest_version|\n\nCommand Line Interface (CLI) for Lightbend ConductR\n---------------------------------------------------\n\n*Note that this project is EOL as of 2018-01-31.*\n\nInstallation\n~~~~~~~~~~~~\n\nThere are two types of installation:\n\n* \"native\" where we have pre-built a native package for Windows, Linux and OS X requiring no other dependencies; and\n* \"python\" where you must install Python 3 and use pip3 to install it.\n\nInstall natively\n^^^^^^^^^^^^^^^^\n\nIf you use macOS and `brew` then you can quickly:\n\n.. code:: bash\n    \n    brew install typesafehub/conductr/conductr-cli\n    \nAlternatively, Lightbend hosts native images at bintray: https://bintray.com/lightbend/generic/conductr-cli. Download an archive that is suitable for your environment and then place the resultant package in a place accessible from your PATH. For example, on Unix, copy the contents of archive to your /usr/local/bin folder.\n\nInstall using Python\n^^^^^^^^^^^^^^^^^^^^\n\nInstall the ``conductr-cli`` with ``pip3``. Depending on your OS the command is:\n\n**macOS**\n\n.. code:: bash\n\n    pip3 install conductr-cli\n\n**Linux**\n\nInstall the ``conductr-cli`` package as you have installed other pip3 package. To install the package for all users, use:\n\n.. code:: bash\n\n    sudo pip3 install conductr-cli\n\nTo install it only for the current user, use:\n\n.. code:: bash\n\n    pip3 install --user conductr-cli\n\n**Windows**\n\n.. code:: bash\n\n    pip install conductr-cli\n\nUpgrade using pip3\n^^^^^^^^^^^^^^^^^^\n\nThe ``conductr-cli`` can be updated by using the pip3 ``-U`` option:\n\n**macOS**\n\n.. code:: bash\n\n    pip3 install -U conductr-cli\n\n**Linux**\n\nInstall the ``conductr-cli`` package as you have installed other pip3 package. To install the package for all users, use:\n\n.. code:: bash\n\n    sudo pip3 install -U conductr-cli\n\nTo install it only for the current user, use:\n\n.. code:: bash\n\n    pip3 install --user -U conductr-cli\n\n**Windows**\n\n.. code:: bash\n\n    pip install -U conductr-cli\n\nSetup Bintray credentials\n^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBundles and ConductR images are hosted on Bintray. Please ensure that your Bintray credentials that have access to the Lightbend repositories are located at: ``.lightbend/commercial.credentials``.\n\nHow to get a Bintray account that has access to the Lightbend repositories is described at: http://developers.lightbend.com/docs/reactive-platform/2.0/setup/setup-sbt.html\n\n\nCLI Usage\n~~~~~~~~~\n\nsandbox\n^^^^^^^\n\nExecute ``sandbox`` with any of the supported sub-commands or options,\ne.g.\n\n.. code:: bash\n\n    $ sandbox -h\n    usage: sandbox [-h] {version,run,stop} ...\n\nTo start a ConductR sandbox cluster with 3 nodes and the `visualization` feature run:\n\n.. code:: bash\n\n    sandbox run \u003cCONDUCTR_VERSION\u003e --nr-of-instances 3 --feature visualization\n\nPick up the latest ConductR version from https://www.lightbend.com/product/conductr/developer\n\nBy default, the sandbox is started with a number of default features: proxying, oci-in-docker, and lite-logging. These features can be disabled by providing the `--no-default-features` flag. Note that due to virtualization requirements, OCI-in-Docker is mandatory on macOS and thus cannot be disabled.\n\nTo stop this cluster run:\n\n.. code:: bash\n\n    sandbox stop\n\nconduct\n^^^^^^^\n\nExecute ``conduct`` with any of the supported sub-commands or options,\ne.g.\n\n.. code:: bash\n\n    $ conduct -h\n    usage: conduct [-h]\n                  {version,info,service-names,acls,load,run,stop,unload,events,logs,setup-dcos} \n                  ...\n\nMost sub-commands connect to a ConductR instance and therefore you have to specify its IP and port. This can be done in different ways. You can specify the IP via the ``--host`` option and the port via the ``--port`` option. Alternatively, you can set the environment variables ``CONDUCTR_HOST`` and ``CONDUCTR_PORT``. Default values will be used if both are not set. The port defaults to 9005. By default, the IP address will be automatically resolved to the sandbox host IP.\n\nHere’s an example for loading a bundle:\n\n.. code:: bash\n\n    conduct load sbt-conductr-tester-1.0.0-e172570d3c0fb11f4f9dbb8de519df58dcb490799f525bab43757f291e1d104d.zip\n\nNote that when specifying IPV6 addresses then you must surround them with square brackets e.g.:\n\n.. code:: bash\n\n    conduct info --host [fe80:0000:0000:0000:0cb3:e2ff:fe74:902d]\n\nTo enable HTTP Basic Authentication, provide the following settings file in the ``~/.conductr/settings.conf``.\n\n.. code::\n\n    conductr {\n      auth {\n        enabled  = true\n        username = \"steve\"\n        password = \"letmein\"\n      }\n      server_ssl_verification_file = \"/home/user/validate-server.pem\"\n    }\n\nWhen the switch ``enabled`` is set to ``true``, HTTP Basic Authentication is enabled. Set to ``false`` to disable.\n Set the ``username`` and ``password`` accordingly. The ``server_ssl_verification_file`` points to an absolute path of the file used to validate the SSL cert of the server.\n\nIf HTTP Basic Authentication is enabled then the CLI will send HTTP requests using HTTPS instead of HTTP.\n\nbndl\n^^^^\n\nThe ``bndl`` command is used to create or modify bundles. It can be used for the following:\n\n- Creating a bundle from Docker and OCI images\n- Modifying a bundle's ``bundle.conf`` properties to add annotations, roles, etc.\n\nTo learn more, see ``bndl -h``.\n\nshazar\n^^^^^^\n\nThe ``shazar`` command can be used:\n\n- for packaging a directory that has a structure of a bundle to a bundle archive;\n- for packaging a bundle’s configuration to a bundle archive;\n\nIn both cases the source files are zipped and a SHA256 digest of the archive is appended to the bundle archive file name.\n\nFor pointers on command usage run ``shazar -h``.\n\nDevelopers\n~~~~~~~~~~\n\n\u003e Note that we presently package the dcos library as source. When https://github.com/dcos/dcos-cli/pull/823 becomes available then\nwe should remove this directory and depend on it directly.\n\nFor macOS, you should ensure firstly that you have the latest Xcode command line tools installed:\n\n.. code:: bash\n\n  xcode-select --install\n\nNow, install the latest python3 version on your system, on macOS use:\n\n.. code:: bash\n\n  brew install python3\n\nThe tests executing the tests in multiple python versions. For all OS environments, pyenv is used to support multiple installations of python during testing. On macOS, use brew to install pyenv:\n\n.. code:: bash\n\n  brew install pyenv\n\nInstallation instructions for other OS can be found at https://github.com/yyuu/pyenv. With pyenv installed you can do things like ``pyenv local 3.4.3`` or ``pyenv local system``. Don't forget to update your login profile to setup pyenv (the doc describes how).\n\nAfter pyenv has been installed, add python 3.4. On macOS use:\n\n.. code:: bash\n\n  CFLAGS=\"-I$(brew --prefix openssl)/include\" \\\n  LDFLAGS=\"-L$(brew --prefix openssl)/lib\" \\\n  pyenv install -v 3.4.5\n  pyenv install -v 3.5.2\n\nFor others OS this is easier:\n\n.. code:: bash\n\n  pyenv install -v 3.4.5\n  pyenv install -v 3.5.2\n\nMake sure to install the ``tox`` module for multi-environment testing:\n\n.. code:: bash\n\n  pip3 install tox\n\nAfterwards, install the necessary dependencies for each environment, ensure that the ``.tox`` is not present and to set the python versions for ``conductr-cli``:\n\n.. code:: bash\n\n  pip3 install .\n  rm -rf .tox\n  pyenv local system 3.4.5 3.5.2\n\nRunning\n^^^^^^^\n\nIf you want to run ``conduct`` or ``sandbox`` locally, i.e. without installation, ``cd`` into the project directory and execute:\n\n.. code:: bash\n\n    pip3 install -e .\n    conduct\n    sandbox\n\nTests\n^^^^^\n\nExecute the following command to run unit tests for the current version of python3:\n\n.. code:: bash\n\n    python3 -m unittest\n\nExecute the following command to run all defined tests:\n\n.. code:: bash\n\n    tox\n\nPython Compatibility\n^^^^^^^^^^^^^^^^^^^^\n\nConductR CLI supports Python ``3.4`` and above.\n\nWhen using standard or third-party libraries, always ensure the implementation is compatible with Python ``3.4``.\n\nWhen browsing the latest Python 3 documentation or arriving to a documentation page from a search result, be sure to check the Python version of the documentation page.\n\nWhen using a method, check if there's a mention of whether it has been introduced after Python ``3.4``.\n\nReleasing\n^^^^^^^^^\n\nCLI releases to the pip3 repository can be performed completely from the GitHub project page. Follow these steps to cut a release:\n\n1. Edit `conductr_cli/__init__.py \u003cconductr_cli/__init__.py\u003e`_ file to contain the version to be released.\n2. Create a new release on the `Github releases page \u003chttps://github.com/typesafehub/conductr-cli/releases\u003e`_.\n\nAfter CI build is finished for the tagged commit, new version will automatically be deployed to PyPi repository.\n\n**Native**\n\nEnsure correct system requirement is used for each target platform.\n\nFor MacOS:\n\n* OSX version ``10.11``: native executables built on ``10.11`` will be compatible with ``10.12``, but the reverse is not true.\n* Python version ``3.5``.\n\nFor Linux:\n\n* Ubuntu version ``14.04.5 LTS``.\n* Python version ``3.4``.\n\nFor Windows:\n\n* Windows 7\n* Python version ``3.5``.\n* 7Zip executable from http://www.7-zip.org/download.html required to build zip file on the command line. When installing 7Zip, ensure the 7z.exe is available on the Windows ``%PATH%``.\n\nPyinstaller version ``3.2.1`` or above is required. Please visit http://www.pyinstaller.org/ to obtain instructions on how to install it.\n\nEnsure the native executables are built from tagged release commit.\n\nContinue to build native packages.\n\nFor MacOS and Linux:\n\n.. code:: bash\n\n    sh package-native-zip.sh [release-version-number]\n\n\nFor Windows perform the following steps.\n\nOpen a DOS prompt, and then execute the following command.\n\n.. code:: bash\n\n    set CONDUCTR_HOST=192.168.10.1\n\nFor those using Windows VM, the local sandbox address ``192.168.10.1`` can be used - ensure the sandbox on the host machine has been started before proceeding further. This will allow the CLI on the Windows VM to connect to the ConductR running on the host machine.\n\nIf you wish to use ConductR running from a different host, replace ``192.168.10.1`` accordingly.\n\n.. code:: bash\n\n    package-native-zip.bat [release-version-number]\n\n\nThe ``package-native-zip.sh`` and ``package-native-zip.bat`` follow performs the following steps.\n\nFirst it builds the native executables.\n\n.. code:: bash\n\n    pyinstaller --onefile conductr_cli/conduct.py\n    pyinstaller --hidden-import psutil --onefile conductr_cli/sandbox.py    \n    pyinstaller --onefile conductr_cli/shazar.py\n    pyinstaller --onefile conductr_cli/bndl.py\n    \nThis will result in standalone images for your current environment being created in a ``dist`` folder.\n\nIt will ensure correct versions are built. This is done by comparing the version number from the output of the commands below with the input to the script. If there's a mismatch, the script will exit with failure.\n\n.. code:: bash\n\n    ./dist/sandbox version\n    ./dist/conduct version\n\nFor MacOS and Linux, perform sanity check by running:\n\n.. code:: bash\n\n    ./dist/sandbox run 2.0.0 -f visualization\n    ./dist/conduct info\n    ./dist/shazar -h\n    ./dist/bndl -h    \n\nFor Windows, perform the following since the ``sandbox`` command is not supported:\n\n.. code:: bash\n\n    ./dist/conduct info\n    ./dist/shazar -h\n    ./dist/bndl -h    \n\n\n\n.. |build_status| image:: https://travis-ci.org/typesafehub/conductr-cli.svg?branch=master\n    :target: https://travis-ci.org/typesafehub/conductr-cli\n    :alt: Build status of the master branch\n\n.. |latest_version| image:: https://img.shields.io/pypi/v/conductr-cli.svg?label=latest%20version\n    :target: https://pypi.python.org/pypi/conductr-cli\n    :alt: Latest version released on PyPi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesafehub%2Fconductr-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftypesafehub%2Fconductr-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftypesafehub%2Fconductr-cli/lists"}