Skip to content

Soujiro0/TermHub

Repository files navigation

TermHub Logo

TermHub

The modern multi-terminal manager desktop application built with Electron, React, and xterm.js.


📸 Screenshots

Welcome & Project Management

Welcome Screen

Keyboard Shortcuts Overlay

Keyboard Shortcuts

Split Pane View

Split Pane View

Git Bash Session

Git Bash Session

❓ Why TermHub?

TermHub was created to radically improve your developer workflow by eliminating terminal management friction.

Instead of manually typing cd commands into a generic terminal, waiting for an entire heavy IDE to load just to use its embedded terminal, or constantly copy-pasting paths from your file manager, TermHub acts as your central command center. You simply save your project paths to the app once. From then on, you can instantly switch between different project workspaces with a single click, without waiting for an IDE to boot up.

Even better, TermHub features persistent memory. It stores the layout and metadata of your terminal sessions on a per-project basis. For example, if you have a Laravel project that requires multiple terminal windows running simultaneously (e.g., php artisan serve, queue:work, custom watcher commands, and npm run dev), TermHub remembers this configuration. If you close the app and open it the next day, it will instantly reload all of those exact terminals for that specific project. You can even rename the terminal tabs so you always know exactly which background process is running in which pane.

✨ Features and Capabilities

  • Persistent Project Workspaces: Workspace layouts are saved per-project. Pick up exactly where you left off with the same tabs and panes you used in your previous session.
  • Tab Renaming: Double click any terminal tab to rename it, helping you logically organize running commands like "Frontend", "Database", or "Queue Worker".
  • Run as Administrator: Launch native, elevated Windows terminals (PowerShell or Command Prompt) directly from the UI and track their background processes.
  • Multi-Terminal Management: Manage an unlimited number of terminal sessions within a single unified window.
  • Auto-Detection: Automatically detects and loads local shells including PowerShell, Command Prompt, Git Bash, and WSL.
  • Split Panes: Split panes horizontally and vertically to view multiple processes side-by-side, perfectly tailored for complex development workflows.
  • Standard Shortcuts: Terminal copy/paste functionality using standard Ctrl+C / Ctrl+V.
  • Dynamic UI: Beautiful, dark-themed, and highly responsive UI with smooth interactions.

🛠 Tech Stack

  • Electron: Cross-platform desktop application framework.
  • React: Modern component-based UI library.
  • TypeScript: Strictly typed JavaScript for scalable development.
  • Vite: Next-generation frontend tooling for fast builds and hot-module replacement.
  • xterm.js: Full-featured terminal emulator for the web.
  • node-pty: Node.js pty module for native terminal interactions.
  • Lucide React: Beautiful and consistent iconography.
  • Electron Store: Persistent storage for user settings and workspace data.

🚀 Installation

Go to the Releases page and download the latest setup or portable executable for Windows.

⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl+Shift+~ New Terminal
Ctrl+W Close Active Terminal
Ctrl+Tab Next Terminal
Ctrl+Shift+Tab Previous Terminal
Double Click Tab Rename Terminal Tab

💻 Development

Clone the repository and install dependencies:

npm install

Start the development server:

npm run dev

🏗 Build

To build the executable for Windows (requires Node.js and node-gyp for native compilation):

npm run build:win

📝 Changelog

See CHANGELOG.md for a history of changes.

🤝 Contributing

Contributions, issues and feature requests are welcome! Feel free to check the issues page.

📄 License

This project is licensed under the MIT License.