TermOS is a fantasy operating system and desktop environment which marries the elements of modern UI design language with the retro art of terminal graphics, designed to be as appealing and friendly of an interface as possible to the average modern-day computer user.
TermOS was originally created in 24 hours for HackLondon 2025, and won first place for its category of A World Without X (in this case, X being the modern-day graphical user interface).
Category | Feature | Support | Notes |
---|---|---|---|
Windows | Instantiating app windows | ✅ | |
Title bars | ✅ | ||
Mouse drag-and-drop support | ✅ | ||
Minimise, maximise and close buttons | ✅ | ||
Window state transitions | Dragging maximised windows is buggy | ||
Overlapping windows | ✅ | ||
Bringing focused window to front | ✅ | ||
Fade unfocused windows | ❌ | ||
Window snapping | ❌ | ||
Custom window decorations | ❌ | ||
Navigation | Mouse (point-and-click) support | ✅ | |
Keyboard navigation support | |||
Window switcher | ❌ | ||
Command palette | ✅ | Right-click start button | |
Interface | Taskbar with open windows | ✅ | |
Start menu | ✅ | ||
Taskbar clock | ✅ | ||
Quick settings pane | ✅ | ||
Toast notification support | ✅ | ||
System | Boot screen | ❌ | |
Power off option | ✅ | ||
Restart option | Does not reload source code | ||
Automatic system updates | ❌ | ||
Process management | ❌ | Tracks processes internally only | |
Customisation | Preset themes with theme switcher | ✅ | |
Persistent settings | ❌ | ||
Applications | Applications API | ✅ | |
Pre-installed apps | ✅ | Browser, Calculator, Clock, Notepad | |
App store | ❌ | ||
Automatic app updates | ❌ | ||
Hot-reloading apps | ❌ |
If you have uv installed, you can install TermOS with the following command:
uv tool install git+https://github.com/ThatOtherAndrew/TermOS
You can also run TermOS ephemerally without a permanent installation using uvx
:
uvx git+https://github.com/ThatOtherAndrew/TermOS
You can also install TermOS with pip
(make sure to use python3
instead of python
if appropriate on your system):
python -m pip install git+https://github.com/ThatOtherAndrew/TermOS
To contribute to this project or have a play with the source code, it is strongly recommended to install uv first for a consistent development experience. Installation instructions can be found at https://docs.astral.sh/uv/getting-started/installation/.
The below commands will clone this repository and install all dependencies:
git clone https://github.com/ThatOtherAndrew/TermOS
cd TermOS
uv sync
Your cloned instance of TermOS can then be run with the following command:
uv run termos
Alternatively, if you wish to run TermOS in development mode for features such as live CSS editing, the following command can be used:
uv run textual run --dev termos:main
For additional features such as connecting a debug console or serving the app in a browser, please see the relevant Textual documentation.