Skip to content

klpod221/kerminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

โœจ 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 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

  • 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
  • Support graphic protocol
  • More SSH Authentication Methods
  • Plugin system for extensions
  • AI Agent for auto-completion, suggestion, chat and automation tasks
  • Cloud backup integration
  • Web-based version
  • Mobile app companion

Made with โค๏ธ by klpod221

โญ Star this repository if you find it helpful!