Skip to main content

Kaithem Automation

AI generated banner of a tavern

Linux Python Ten Year Project Offline First GPLv3 Badge Single Board Computer badge Pytest Ruff Ruff

Amidst the mists and fiercest frosts,
with stoutest wrists and loudest boasts,
He thrusts his fists against the posts,
And still insists he sees the ghosts.

Kaithem is Linux home/commercial automation server written in pure Python(3.10 and up). Resource usage is low enough to run well on the Raspberry Pi from an SD card

You automate things by directly writing python and HTML via a web IDE, or by using the built-in Chandler module, which is a full web-based lighting aud audio control board with a visual programming language.

Screenshots 🏕️

Cues List Preset Selector Audio Mixer Logic Editor Device Page

See the barrel.css demo for more themes

Try it out in a Docker sandbox

With Docker's sandboxing, you won't be able to access any hardware, but you can check out the UI, and if you want to set it up for real, see the kaithem-scripts repo and the docker instructions.

You might see some warnings on the command line about the hardware it can't access, but it should eventually load.

--set-admin-password is NOT meant for normal use, and will always set the password to test-admin-password, it only exists for demos.

mkdir -p kaithem-test && docker run --rm -v ./kaithem-test:/app-home/ -p 8002:8002 -u "$(id -u):$(id -g)" -e USER=$(id -un) -e LOGNAME=$(id -un)  cooperskeep/kaithem:0.97.0 --set-admin-password test-admin-password

Installation 🌲

The careful text-books measure
(Let all who build beware!)
The load, the shock, the pressure
Material can bear.

Assuming you're on Debian or similar and have uv installed, you can run it directly from UV tool.

See Install dependencies and Runtime dependencies

# See links for the list of apt packages you'll need
sudo apt install ......

uv tool install --force kaithem

# Start it
kaithem

System Configuration 🛠️

So, when the buckled girder
Lets down the grinding span,
The blame of loss, or murder,
Is laid upon the man.
Not on the Stuff — the Man!

Coming soon: Everything is in the process of being moved to docker. Old scripts are broken on new Debian/Raspios, breaking changes are taking an unsustainable amount of time and this project does not have the resources for an interim solution.

Dev Install 🖐️

Info for devs here on the wiki (https://github.com/EternityForest/KaithemAutomation/wiki/Development)

Build dependencies

Dashbeard(https://github.com/EternityForest/Dashbeard) must be cloned into the same folder you cloned this repo into.

Setup

First get all system dependencies as per the main install section.

uv sync

# Need to set up Rust if you don't already have everything
# All Rust code currently compiles to .wasm
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-unknown-unknown

# Need install deps to build the frontend with npm
npm install

make build

Docker Building

Clone this repo and dashbeard, do

cd docker
docker compose build

This will buid three images, a builder that creates the kaithem Wheel, the runtime app image that would be used for production, and a dev image that can be used to debug.

The dev image contains /workspaces/KaithemAutomation as the default working directory, so you can

KAITHEM_UID=$UID KAITHEM_GROUP=$GID KAITHEM_USER=$USR docker compose run kaithem-d
ev testing_server.py

Recent Changes 🕗

AI generated banner of a water snake

Good men, the last wave by, crying how bright
Their frail deeds might have danced in a green bay,
Rage, rage against the dying of the light.

(See Full Changelog)

Metadata

Release files for kaithem 0.97.0

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

Source distribution (sdist)

Source distribution for kaithem 0.97.0
File Size Uploaded
kaithem-0.97.0.tar.gz 13.5 MB Details

Built distribution (wheel)

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

Total release size: 23.4 MB

Release files / kaithem-0.97.0.tar.gz

Download URL kaithem-0.97.0.tar.gz
Size 13.5 MB
Tags Source
SHA-256 checksum
How to use checksums
e95534c5093622760158c9db30dd7883f72d1364b7923b47f8a34e9b3c5701c5
BLAKE2b-256 checksum
How to use checksums
3de8ebdd46c895e57cdb4094791104ee3bb9eeefd397630fa2aa970c9d09558c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / kaithem-0.97.0-py3-none-any.whl

Download URL kaithem-0.97.0-py3-none-any.whl
Size 9.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
043adf12d47fc6b0ce859a6c1c0aacea6654393108cc6087162d3355a034efa6
BLAKE2b-256 checksum
How to use checksums
8349221092aa6b27f7c24a8f965837f21d87b1f287209c40fe9a4597a058d446
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3
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