Thanks to visit codestin.com
Credit goes to github.com

Skip to content

klpod221/kerminal

Repository files navigation

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.

Last Commit GitHub Stars Repo Size License
GitHub Sponsors Buy Me a Coffee

📝 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

Dashboard

Main Interface

Kerminal Main Interface

Demo

basic.webm

✨ 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)
  • Jump Host Chain: Connect through multiple bastion hosts with automatic authentication
  • 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 asciicast format 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)

  1. Download the latest release from the Releases page
  2. 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

  1. Clone the repository
git clone https://github.com/klpod221/kerminal.git
cd kerminal
  1. Install dependencies
npm install
  1. Run in development mode
npm run tauri dev
  1. 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:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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.app after 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)

🙏 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:

  1. Check existing Issues
  2. Create a new issue with detailed information
  3. Contact via email: [email protected]

🗺️ Roadmap

Completed

  • Multiple tabs and split panes terminal
  • WebGL-accelerated rendering with Unicode support
  • AES-256-GCM encryption with master password
  • SSH profile management with groups and colors
  • SSH key manager with import/export
  • Proxy support (HTTP, SOCKS4/5)
  • Port forwarding (Local/Remote/Dynamic SOCKS)
  • Multi-device sync (MySQL/PostgreSQL/MongoDB)
  • Custom terminal themes and color schemes
  • Custom terminal font settings
  • Saved commands with syntax highlighting
  • Session recording and playback (asciicast format)
  • SFTP file transfer integration
  • Auto-lock sessions and keychain integration
  • Jump host chain support for SSH connections
  • Support Sixel graphics protocol for inline images
  • First user tour

In Progress

  • AI Agent for auto-completion, suggestion, chat and automation

Planned

  • Pin Drawer as sidebar
  • More SSH Authentication Methods (Agent, PKCS11, Kerberos)
  • Plugin system for extensions
  • Cloud backup integration
  • Homebrew install for macOS
  • Web-based version
  • Mobile app companion

👥 Contributors

Thanks to all the amazing people who have contributed to this project! 🎉

klpod221
Bùi Thanh Xuân
vthuan1889
Thuan Vo

Made with ❤️ by klpod221

⭐ Star this repository if you find it helpful!