TerminalOS is a full desktop-like experience within your terminal. Built using Python and the Textual framework, it offers a responsive and visually appealing TUI (Text User Interface) with multiple applications, window management, theme support, and keyboard navigationβall running inside a terminal window.

- Beautiful ASCII desktop with real-time clock and system info
- Window management with modals and multiple screen support
- Theme support: Dark, Light, Matrix, Cyberpunk
- Keyboard shortcuts for quick navigation
| App | Description | Status | Shortcut |
|---|---|---|---|
| π File Manager | Browse directories and file info | β Ready | 1 in launcher |
| π Text Editor | Syntax-highlighted file editing | β Ready | 2 in launcher |
| π’ Calculator | Scientific calculator with history | β Ready | 3 in launcher |
| π System Monitor | CPU, memory, and disk usage | β Ready | 4 in launcher |
| π» Terminal | Built-in CLI emulator | π§ Coming Soon | 5 in launcher |
| π΅ Music Player | Playlist and audio playback | π§ Coming Soon | 6 in launcher |
- Dark, Light, Matrix, and Cyberpunk themes
- Persistent configuration settings
- Responsive layout for different terminal sizes
- ASCII art and Unicode icons
F1: HelpF12: App LauncherCtrl+Q: QuitESC: Close current dialog/appTab: Move between UI elements
[downloade](https://github.com/000xs/terminalos/releases/tag/v1.0.0)and run
terminalos.exe
- Python 3.8+
- Unicode-supported terminal
- Minimum 80x24 (120x40 recommended)
- Cross-platform (Windows, Linux, macOS)
textual>=0.41.0rich>=13.0.0click>=8.1.0psutil>=5.9.0pyfiglet>=0.8.0pygments>=2.14.0
git clone https://github.com/000xs/terminalos.git
cd terminalos
pip install -e .
terminalos
or
tos
terminalos
# Optional flags:
--debug
--no-boot
--version- Boot screen:
Enter - App launcher:
F12 - Return to desktop:
ESC - Help:
F1
- Browse using arrow keys
- View metadata in sidebar
- Syntax highlighting
- Real-time line/word/char count
- Tabs and file operations
- Arithmetic + scientific functions
- Keyboard/mouse input
- Live CPU, memory, and disk usage
- Dark (Default)
- Light
- Matrix
- Cyberpunk
terminalos --theme matrixLocated at:
- Windows:
%USERPROFILE%\.config\terminalos\ - Linux/macOS:
~/.config/terminalos/
Example config.json:
{
"theme": "dark",
"debug": false,
"auto_save": true,
"appearance": {
"show_boot": true,
"animations": true,
"font_size": 12
},
"file_manager": {
"show_hidden": false,
"default_path": "~",
"sort_by": "name"
},
"text_editor": {
"syntax_highlighting": true,
"line_numbers": true,
"tab_size": 4
}
}terminalos/
βββ core/ # App framework
βββ desktop/ # Desktop and taskbar
βββ apps/ # Built-in apps
βββ config/ # Settings and themes
βββ utils/ # Helpers and logging
git clone https://github.com/000xs/terminalos.git
cd terminalos
pip install -e .from textual.screen import Screen
from textual.widgets import Header, Footer, Static
class MyCustomApp(Screen):
def compose(self):
yield Header()
yield Static("Hello from my custom app!")
yield Footer()
def on_key(self, event):
if event.key == "escape":
self.dismiss()Add to launcher in desktop/desktop.py:
from ..apps.my_app import MyCustomApp
self.dismiss()
self.app.push_screen(MyCustomApp())- Bug reports: Include Python version, OS, steps
- Features: Describe use case + mockup if possible
- Pull requests: Follow PEP8, type hints, test coverage
- Initial release
- Desktop, file manager, editor, calculator, system monitor
- 4 themes
- Terminal emulator
- Music player
- Plugin system
- More themes
ModuleNotFoundError: Use direct launcher- Python conflict: Use correct Python version
- Missing deps:
pip install textual rich click psutil pyfiglet pygments - Terminal display issues:
echo $TERM
- Textual, Rich
- Terminalcraft slack channel, josia idea