<a href="https://thymis.io">
<h1>THYMIS</h1>
</a>
<em>Quickly provision, configure, and manage devices using NixOS.</em>
<img src="https://img.shields.io/github/license/Thymis-io/thymis?style=flat&color=0080ff" alt="license">
<img src="https://img.shields.io/github/last-commit/Thymis-io/thymis?style=flat&logo=git&logoColor=white&color=0080ff" alt="last-commit">
<img src="https://img.shields.io/badge/NixOS-2AA2E0?style=flat&logo=NixOS&logoColor=white" alt="NixOS">
<img src="https://img.shields.io/badge/Svelte-FF3E00?style=flat&logo=Svelte&logoColor=white" alt="svelte">
<img src="https://img.shields.io/badge/FastAPI-009688?style=flat&logo=FastAPI&logoColor=white" alt="FastAPI">
Thymis is an open-source platform designed for managing and configuring IoT devices. Built on the robust NixOS operating system, Thymis ensures consistency, reliability, and ease of management across diverse IoT landscapes. Whether you're managing a few devices or a large-scale deployment, Thymis provides the tools needed to streamline your operations.
The documentation is available at thymis.io/docs.
![]() |
|---|
| Screenshot of the Control Panel |
| Video of a Kiosk Deployment to 3 Devices changing the URL to https://thymis.io/ |
Key features of Thymis include:
The project uses SvelteKit for the frontend and FastAPI for a device controller. The frontend communicates with the controller using a REST API. The controller is responsible for managing device and module data.
Requirements
Ensure you have the following dependencies installed on your system:
git clone https://github.com/Thymis-io/thymis
cd thymis
nix develop
cd frontend
npm install
cd ../controller
uv sync
thymisUse the following command to run thymis:
cd controller
uv run uvicorn thymis_controller.main:app --reload
The controller takes care of running the frontend for you. You can access thymis at http://localhost:8000.
Basic device management features
[x] Release 0.2.0
Various bug fixes and improvements
[x] Release 0.3.0
Update to nixpkgs/NixOS 24.11
[x] Release 0.4.0
Automatic rollback if OTA update fails or condition is met
[x] Release 0.5.0
Fixed unresponsive navigation when the page invalidates data at the same time, see sveltejs/kit#9354
[x] Release 0.6.0
Logs are now collected into the database
[x] Release 0.7.0
Update to nixpkgs/NixOS 25.05
[x] Release 0.8.0
Update to nixpkgs/NixOS 25.11
[x] Release 0.9.0
UI Redesign & performance fixes
[ ] Release 0.10.0
This project is protected under the GNU Affero General Public License v3.0 License. For more details, refer to the LICENSE file.
We love using these technologies and tools:
$ claude mcp add thymis \
-- python -m otcore.mcp_server <graph>