Skip to main content

ControlThings User Interface

The ctui is a library for creating terminal-based user interfaces, and is used in all the ControlThings tools at controlthings.io. It is similar to using Click or Python's standard Cmd library, but with a curses-like interface written in pure Python.

Installation

Ctui is primarily developed on Linux, but should work in both Mac and Windows as well.

As long as you have git and Python 3.8 or later installed, all you should need to do is:

pip3 install ctui

Usage

Import the library, instantiate a Ctui object, and start the ctui application, like:

from ctui import Ctui

myapp = Ctui()
myapp.run()

Of course you can configure you app in a number of different ways by modifying your app's attributes or by adding your own custom commands. Check out the examples folder to walk you through some of these. For more complex examples how to use ctui, check out the various ControlThings Tools, most of which use ctui. You can find these at https://github.com/ControlThingsTools.

Fork and Develop

To set up a development environment for ctui, you will first need to install uv which is used to manage all the project dependencies and publish the pypi packages. I strongly recommend checking out the website and at least reading through the Basic Project Concepts page, but if you want the TLDR, just run the following command to install uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Once uv is installed, pull the ctui repo and :

git clone https://github.com/ControlThings-io/ctui.git
cd ctui
uv sync

To try out the project examples files, run:

uv run examples/default.py
uv run examples/filesystem.py

That last command will open a shell in a python virtual environment where you can do live edits to the code. If you are a VS Code user, VS Code will automatically load the repo configs with all the linting rules I use through the repo, and should automatically open the debug tools and terminal inside the virtual environment.

Author

Release files for ctui 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ctui 0.8.1
File Size Uploaded
ctui-0.8.1.tar.gz 15.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ctui 0.8.1
File Interpreter ABI Platform
ctui-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 37.6 kB

Release files / ctui-0.8.1.tar.gz

Download URL ctui-0.8.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
13b0028cf8031ea6e521a0ebf6441e261eee9201a883cb8782fa6446f900a62f
BLAKE2b-256 checksum
How to use checksums
26f5d0e70e7c78e5e497765409e75df779afd6769d1f274ea66bcde5d3b6d975
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / ctui-0.8.1-py3-none-any.whl

Download URL ctui-0.8.1-py3-none-any.whl
Size 22.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ead92d7b480d0efac4c6dd39288c53022137a94b970f505bb825c3fe4fc3bba7
BLAKE2b-256 checksum
How to use checksums
a8e15adab45e6fd1b4e14c47ce88a7dd7902e594175fad28bd4a3501ccb9ae46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.8.1 This release

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page