Kerminal: Modern Terminal Emulator & SSH Manager
A powerful, feature-rich terminal emulator with advanced SSH management, multi-device sync, and enterprise-grade encryption built with Tauri + Vue 3.
๐ Description
Kerminal is a modern, high-performance terminal emulator that combines the power of a full-featured local terminal with advanced SSH connection management. Built with security-first architecture using Tauri (Rust) for native performance and Vue 3 for a responsive UI, Kerminal offers everything from basic terminal operations to complex SSH workflows with encrypted profile management, tunneling, and multi-device synchronizationโall in a beautiful native desktop application.
Perfect for developers, DevOps engineers, system administrators, and anyone who lives in tโฆ
Kerminal: Modern Terminal Emulator & SSH Manager
A powerful, feature-rich terminal emulator with advanced SSH management, multi-device sync, and enterprise-grade encryption built with Tauri + Vue 3.
๐ Description
Kerminal is a modern, high-performance terminal emulator that combines the power of a full-featured local terminal with advanced SSH connection management. Built with security-first architecture using Tauri (Rust) for native performance and Vue 3 for a responsive UI, Kerminal offers everything from basic terminal operations to complex SSH workflows with encrypted profile management, tunneling, and multi-device synchronizationโall in a beautiful native desktop application.
Perfect for developers, DevOps engineers, system administrators, and anyone who lives in the terminal and values security, organization, and productivity.
๐ Table Of Content
๐ธ Screenshots
Dashboard
Main Interface
โจ Features
๐ป Terminal Emulator
- Multiple tabs and split panes, native shell integration (bash, zsh, fish, PowerShell, etc.)
- WebGL-accelerated rendering with Unicode 11 support
- Search, clickable links, clipboard integration
๐ก SSH Management & Tunneling
- Profile organization with groups, colors, and descriptions
- Authentication: password and keys (certificate, Kerberos, PKCS11, agent coming soon)
- SSH key manager with import/export, connection testing, proxy support (HTTP, SOCKS4/5)
- Port forwarding (Local/Remote/Dynamic) with auto-start and status monitoring
๐พ Saved Commands & Session Recording
- Command library with groups, usage tracking, favorites, and variable substitution
- Record sessions in
asciicastformat with playback controls and export capabilities
๐ Multi-Device Sync & Security
- Sync via MySQL/PostgreSQL/MongoDB with AES-256-GCM encryption
- Conflict resolution strategies, device management, auto-sync
- Master password protection, device-specific keys, keychain integration, auto-lock sessions
๐จ User Interface
- Modern dark theme, keyboard shortcuts, customizable colors, real-time status indicators
Installation Guide
Arch Linux (install from AUR)
- Using an AUR helper (e.g., yay):
yay -S kerminal # or kerminal-bin
- Manually:
git clone https://aur.archlinux.org/kerminal.git # or kerminal-bin.git
cd kerminal
makepkg -si
Other Platforms (Windows, macOS, Linux)
- Download the latest release from the Releases page
- Follow the installation instructions for your operating system
๐ Development
Prerequisites
- Node.js (v20 or higher)
- Rust (latest stable)
- Tauri CLI:
cargo install tauri-cli
Installation
- Clone the repository
git clone https://github.com/klpod221/kerminal.git
cd kerminal
- Install dependencies
npm install
- Run in development mode
npm run tauri dev
- Build for production
npm run tauri build
The application will be available in src-tauri/target/release/bundle/.
Project Structure
- Frontend: Vue 3 with Composition API, Pinia stores, TypeScript
- Backend: Rust with Tauri v2, async/await with Tokio
- Terminal: xterm.js with WebGL renderer and addons
- Recording: asciicast v2 format with asciinema-player for playback
- SSH: russh library for SSH protocol implementation
- Database: SQLx for SQL databases, MongoDB driver for NoSQL
- Encryption: AES-GCM with Argon2 key derivation
Key Technologies
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Vue 3 + TypeScript | Reactive UI framework |
| State | Pinia | Centralized state management |
| Backend | Rust + Tauri v2 | Native performance and security |
| SSH | russh | SSH protocol implementation |
| Terminal | xterm.js | Terminal emulation |
| Recording | asciinema-player | Session playback |
| Database | SQLite, MySQL, PostgreSQL, MongoDB | Local and sync storage |
| Encryption | AES-256-GCM + Argon2 | Data encryption and key derivation |
๐ Security Considerations
- All sensitive data encrypted at rest with AES-256-GCM
- Master password never stored, only verification hash
- Device-specific encryption keys prevent data access from other devices
- SSH private keys never leave the device unencrypted
- Sync data encrypted before transmission
- Automatic session locking after inactivity
- Platform keychain integration for secure auto-unlock
๐ค Contributing
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
โ Known Issues
- Limited support for some SSH authentication methods
- MacOS version is not signed/notarized yet due to Apple Developer Program restrictions (it takes 99 USD/year!) So please build from source if you want to use on MacOS or run unsigned app with
xattr -rd com.apple.quarantine /path/to/Kerminal.appafter first launch. - Android version is currently not working (some how it works on my device (Xiaomi Redmi Note 12) but not on other devices).
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ค Author
Bรนi Thanh Xuรขn (klpod221)
- Website: klpod221.com
- GitHub: @klpod221
- Email: klpod221@gmail.com
๐ Acknowledgments
- Tauri - For the amazing Rust-based desktop framework
- Vue 3 - For the reactive and performant frontend framework
- xterm.js - For the excellent terminal emulator
- asciinema-player - For the powerful terminal session player
- russh - For the robust SSH implementation in Rust
- Lucide - For the beautiful icon set
๐ฎ Support
If you encounter any issues or have questions:
- Check existing Issues
- Create a new issue with detailed information
- Contact via email: klpod221@gmail.com
๐บ๏ธ Roadmap
- Custom terminal themes and color schemes
- Custom terminal font settings
- Syntax highlighting for saved commands
- Session recording and playback (asciicast format)
- SFTP file transfer integration
- More SSH Authentication Methods
- Plugin system for extensions
- Cloud backup integration
- Web-based version
- Mobile app companion
See TODO.md for more details.
Made with โค๏ธ by klpod221
โญ Star this repository if you find it helpful!