A high-performance operating system environment built entirely in Python. Available as a graphical desktop or terminal interface.
The full graphical experience. Window management, web browser, taskbar, and desktop environment built with Pygame.
The lightweight terminal variant. Pure command-line interface with shell commands, file system, and scripting support.
00 / Variants
kebabOS comes in two flavors. Pick the interface that fits your workflow.
# Launch graphical desktop
python -m kebab_gui
Full window manager, kebabBrowser, clipboard support, and persistent storage. Requires display server.
# Launch terminal interface
python -m kebab_cli
Headless operation, SSH-friendly, minimal dependencies. Perfect for servers or low-resource environments.
01 / Features
A focused set of capabilities designed to deliver a complete desktop experience within Pygame.
Drag, resize, and stack multiple application windows with fluid, responsive interactions. (kebab-gui)
Pin and unpin apps via context menus with real-time running indicators using a teal accent bar. (kebab-gui)
Graphical web rendering via html2image with scroll support and clipboard integration. (kebab-gui)
Full Ctrl+V pasting functionality in text fields across all applications. (kebab-gui)
Saves pinned apps and settings to storage/data.json between sessions. (Both variants)
Built-in command interpreter with piping, redirection, and scripting capabilities. (kebab-cli)
02 / Installation
Clone the repository, install the dependencies, and choose your variant.
git clone https://github.com/kebab-os/kebab-os.git
# For kebab-gui
pip install pygame requests html2image
# For kebab-cli (minimal)
pip install -r requirements-cli.txt
sudo apt-get install xclip
# Requires one of:
Google Chrome
Microsoft Edge
Chromium
03 / Controls
Intuitive controls built around familiar desktop paradigms.
| Action | Control | Variant |
|---|---|---|
| Open Start Menu | Click the kebab icon bottom-left | GUI |
| Pin to Taskbar | Right-click app → Pin to Taskbar | GUI |
| Unpin App | Right-click icon → Unpin | GUI |
| Resize Window | Drag the bottom-right corner handle | GUI |
| Paste URL | Ctrl + V in Browser | GUI |
| Execute Command | Type command + Enter | CLI |
| Auto-complete | Tab | CLI |
| Command History | ↑ / ↓ arrows | CLI |
| Interrupt Process | Ctrl + C | CLI |
04 / Developer
Architecture notes for contributors and app developers.
The kernel automatically sends KEYDOWN and MOUSEWHEEL events to the top-most active window. (GUI)
Content is rendered using surface.set_clip() to prevent UI overlap during resizing or scrolling. (GUI)
Both variants share the same kernel, file system, and persistence layer. Only the interface differs.
kebabOS is released under the MIT License — free for personal and commercial use.