A modern, GPU-accelerated terminal emulator built with Rust (Tauri) and React. Designed to be lightweight, incredibly fast, and aesthetically pleasing with a "Ghostty-style" translucent UI.
- ⚡ Blazing Fast: Powered by Rust and
portable-ptyfor the backend, withxterm.jsWebGL rendering on the frontend. - 🎨 Modern UI: Sleek, borderless design with a custom title bar and glassmorphism accents.
- 🔀 Multi-Tab & Split Support: Manage multiple sessions effortlessly.
- 📁 Smart Profile Selector: Dropdown to easily switch between Bash, WSL, PowerShell, or CMD based on your OS.
- 🏠 Welcome Hub: A premium landing page that appears when all tabs are closed, providing quick actions for new sessions.
- 🏠 Global Theming: Choose from popular presets (Dracula, Nord, etc.) that apply instantly to the entire application UI.
- 🌐 SSH Profile Manager: Complete CRUD operations for SSH profiles with live UI updates and persistence.
- 📏 Responsive Tabs: Chrome-like tab behavior with equal width distribution and graceful shrinking.
- ⚙️ Dynamic Settings: Manage appearance and profiles through a dedicated, live-updating Settings tab.
- Frontend: React 19, TypeScript, Vanilla CSS.
- Backend: Rust, Tauri v2.
- Terminal Engine: xterm.js + xterm-addon-fit + xterm-addon-web-links.
- Shell Interface: portable-pty (async multi-threaded shell management).
Ensure you have the following installed:
- Rust & Cargo:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - Node.js & npm: v18 or higher.
- System Dependencies:
- Linux:
libwebkit2gtk-4.0-dev,build-essential,libssl-dev,libgtk-3-dev,libayatana-appindicator3-dev. - Windows/Mac: No extra steps usually needed.
- Linux:
-
Clone the repository:
git clone https://github.com/Shabari-K-S/terminon.git cd terminon -
Install Frontend Dependencies:
npm install
-
Run in Development Mode: This starts the React server and the Rust backend simultaneously.
npm run tauri dev
- Click the
+button to open a default terminal tab. - Click the Chevron (⌄) next to it to select a specific profile (e.g., WSL, Bash) or connect via SSH.
- The app automatically detects your OS and offers relevant shells.
- Click the Gear Icon in the title bar to open the Settings Tab.
- Switch between themes (Campbell, Dracula, Catppuccin, etc.) and they will apply instantly across the whole app.
- Manage your SSH profiles with full CRUD support.
If you see "boxes" instead of icons in your prompt:
- The app comes bundled with JetBrains Mono Nerd Font.
- Ensure the file exists in
src/assets/fonts/. - If developing on Linux, you may need to install the font system-wide if the CSS bundling fails:
sudo pacman -S ttf-jetbrains-mono-nerd.
All configurations, including themes and SSH profiles, are now managed directly through the Settings UI and persisted automatically via Tauri's store plugin. No manual CSS or terminal code changes are required for styling.
Pull requests are welcome!
- Fork the repo.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Built with love and:
Made by Shabari K S 🚀
