Cross-platform drop-down terminal for Windows, macOS, and Linux. It can float down from the top of the screen like Guake or run as a normal terminal window.
We wanted to just fork Guake, but the Linux-first codebase proved too difficult to adapt across platforms. A Qt6 + winpty core worked immediately on Windows, so we built a new app that follows Guake's spirit while targeting all major desktops.
- Drop-down quake-style terminal or standard windowed terminal
- PyQt6 UI with tabs and configurable shortcuts
- Truecolor/TERM export and scrollback via pyte + platform-appropriate PTY backend
- Global hotkey for toggling the quake window (Windows only)
- Settings dialog for fonts, themes, quake behavior, and shortcuts
- Command execution capabilities
- Command history with up/down arrow navigation
- Keyboard shortcuts (Ctrl+C for interrupt, Ctrl+L to clear)
- Proper terminal I/O handling through winpty
- Threading for asynchronous operations
- Python 3.8+
- PyQt6
- pywinpty (Windows only)
- ptyprocess (Unix-like systems)
# UCRT64
pacman -S mingw-w64-ucrt-x86_64-python-pyqt6 mingw-w64-ucrt-x86_64-python-pywinpty
# CLANG64
pacman -S mingw-w64-clang-x86_64-python-pyqt6 mingw-w64-clang-x86_64-python-pywinptypip install -r requirements.txt./install_macos.shRun the app:
python gui_shell.py- Default behavior follows Guake: quake-style drop-down when enabled, otherwise a standard window.
- On Windows the PTY layer uses winpty; on Unix-like systems it uses ptyprocess for cross-platform PTY support.
- Global hotkey functionality is now available cross-platform using the keyboard library.
- On macOS, you may need to grant accessibility permissions for global hotkeys to work. Go to System Preferences > Security & Privacy > Privacy > Accessibility, and add your Python application or terminal.
- In MSYS2/MinGW environments, pywinpty is installed as 'winpty'
- The winpty module has a different API than standard pywinpty:
- Uses
pywinpty.ptyprocess.PtyProcessinstead ofpywinpty.spawn_process - Read and write methods have different signatures
- Uses
- Terminal might close prematurely under certain conditions
- The winpty API doesn't directly support resizing
- Reading from the terminal requires careful handling of timing and availability
