PulseGate
PulseGate ist ein neon-inspiriertes SSH Control Center als TUI-Anwendung für dein Terminal.
Die App verwaltet gespeicherte Server, unterstützt Key- und Passwort-Login, Quick Commands, Statuschecks und Kitty/TERM-Fixes für saubere SSH-Sessions unter Hyprland/Kitty.
Features
- Server aus
config.yamlladen - Server hinzufügen, bearbeiten und löschen
- SSH-Verbindung per Key oder Passwort
- Passwortspeicherung über den Linux-Keyring
- Quick Commands pro ausgewähltem Server ausführen
- Command-Output in der TUI anzeigen
- SSH-Port-Statuscheck mit Refresh
- Kitty-Fix über
TERM=xterm-256color - Vollbild-TUI mit Navigation, Settings und Help-View
Voraussetzungen
Arch / CachyOS
sudo pacman -S go git sshpass gnome-keyring libsecret seahorse
Optional, aber empfohlen:
sudo pacman -S openssh
Installation
Repository klonen oder Projektordner öffnen:
cd ~/Projects/pulsegate
Go-Abhängigkeiten installieren:
go mod tidy
Falls du die Dependencies manuell installieren möchtest:
go get github.com/charmbracelet/bubbletea
go get github.com/charmbracelet/lipgloss
go get github.com/charmbracelet/bubbles/textinput
go get gopkg.in/yaml.v3
go get github.com/99designs/keyring
go get golang.org/x/term
Konfiguration
Lege im Projektordner eine config.yaml an:
settings:
theme: neon-green
terminal:
term: xterm-256color
enable_kitty_fix: true
servers:
- name: Unraid
host: 10.0.0.15
user: root
port: 22
group: Homelab
auth: password
password_id: unraid-root
kitty_fix: true
- name: Webhost
host: 10.0.0.23
user: administrator
port: 22
group: Homelab
auth: key
key: ~/.ssh/id_ed25519
kitty_fix: true
quick_commands:
- name: Docker PS
command: docker ps
- name: Disk Usage
command: df -h
- name: RAM Usage
command: free -h
- name: Uptime
command: uptime
Starten
Während der Entwicklung:
go run .
Als Binary bauen:
go build -o pulsegate
./pulsegate
Optional global installieren:
sudo cp pulsegate /usr/local/bin/
pulsegate
Bedienung
| Taste | Funktion |
|---|---|
↑ / ↓ oder k / j |
Auswahl bewegen |
Enter |
Server verbinden oder Command ausführen |
a |
Server hinzufügen |
e |
Server bearbeiten |
d |
Server löschen |
c |
Quick Commands öffnen |
r |
SSH-Port-Status aktualisieren |
Tab |
Ansicht wechseln |
s |
Settings öffnen |
h |
Hilfe öffnen |
q |
Zurück oder beenden |
Passwort-Login
PulseGate speichert Passwörter nicht in der config.yaml, sondern über den Linux-Keyring.
Beim ersten Verbindungsaufbau mit auth: password fragt PulseGate nach dem Passwort und speichert es unter der angegebenen password_id.
Beispiel:
auth: password
password_id: unraid-root
Zum Anzeigen oder Löschen gespeicherter Passwörter kannst du Seahorse verwenden:
seahorse
Dort nach pulsegate oder der jeweiligen password_id suchen.
SSH-Key-Login
Beispielkonfiguration:
auth: key
key: ~/.ssh/id_ed25519
Public Key auf den Server kopieren:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip
Kitty / TERM Fix
Wenn du über Kitty per SSH auf Server gehst, kann es zu Fehlern kommen wie:
Error opening terminal: xterm-kitty
PulseGate kann für solche Server automatisch setzen:
TERM=xterm-256color
Aktivierung global:
settings:
terminal:
term: xterm-256color
enable_kitty_fix: true
Aktivierung pro Server:
kitty_fix: true
Roadmap
Mögliche nächste Features:
- Suche und Filter mit
/ - Scrollbarer Command-Output
- Servergruppen / Tags
- Import aus
~/.ssh/config - Passwort ändern/löschen direkt in der TUI
- Themes wie
neon-green,neon-cyan,orange-authentik - Quick Commands pro Servergruppe
