Bitdoze-Logo

Fish-Shell-Themes & Prompts (2026): Tide, Starship, Pure

Die besten Fish-Shell-Prompts und -Themes 2026 im Vergleich: Tide, Starship, Pure und Hydro. Install-Schritte, Fish-4-Kompatibilität und wie du den richtigen wählst.

Dragos

Aktualisiert Veröffentlicht 13 Min. Lesezeit

Fish-Shell-Terminal mit den Prompt-Themes Tide, Starship, Pure und Hydro nebeneinander

Die besten Fish-Shell-Prompts 2026 sind Tide, Starship, Pure und Hydro – plus die Themes, die Fish von Haus aus mitbringt. Fish kommt mit einem brauchbaren Standard-Prompt, aber die meisten tauschen ihn gegen etwas mit mehr Informationen: Git-Branch, Befehlsdauer, Sprachversionen. Dieser Guide behandelt Installation und Konfiguration jedes einzelnen, Hinweise zur Fish-4.x-Kompatibilität und wie du den richtigen Prompt für deinen Workflow wählst.

Getestet mit Fish 4.9.3, Tide 6.2.1, Starship 1.27.0, Pure 4.19.2 (November 2026).

Was du vor dem Start brauchst:

  • Fish Shell installiert (3.x oder 4.x; siehe die Fish-4-Hinweise unten). Neu bei Fish? Schau dir zuerst unseren Fish-vs.-Bash-vs.-Zsh-Vergleich an.
  • Fisher Plugin-Manager (nötig für Tide, Pure und Hydro)
  • Nerd Font in deinem Terminal-Emulator gesetzt (empfohlen für Tide- und Starship-Icons; optional für Pure und Hydro)

Über den Prompt hinaus sind Fish-Shell-Autocomplete und -Suggestions die halbe UX und lohnt es zu tunen, sobald dein Prompt gut aussieht.

Eingebaute Fish-Shell-Themes

Bevor du irgendetwas installierst: Fish hat ein eigenes Theme-System. Führe aus:

fish
fish_config theme show

Das gibt die verfügbaren Farb-Themes direkt in deinem Terminal aus. Um eins anzuwenden:

fish
fish_config theme choose dracula
fish_config theme save

Du kannst eine dunkle oder helle Variante erzwingen mit fish_config theme choose THEME --color-theme=(dark|light).

Speziell für Prompts:

fish
fish_config prompt show
fish_config prompt choose informative
fish_config prompt save

Führe fish_config prompt list aus, um alles Verfügbare zu sehen. Der genaue Satz variiert je nach Fish-Version. Diese eingebauten Prompts sind feature-arm (kein Async-Rendering, keine Spracherkennung), aber sie laden sofort und brauchen keine externen Abhängigkeiten.

Du kannst auch fish_config ohne Argumente ausführen, um ein browserbasiertes Konfigurations-Tool zu öffnen, in dem du alles visuell in der Vorschau siehst. Wenn du Farben über den Prompt hinaus anpassen willst, siehe unseren Fish-Shell-Syntax-Highlighting-Guide.

Tide: der Fish-native Power-Prompt

Tide ist der feature-reichste Fish-native Prompt. Er ist für Fish das, was Powerlevel10k für Zsh ist: Async-Rendering, ein Konfigurations-Wizard, tiefe Git-Integration und ein Transient-Prompt, der alte Prompts zusammenklappt, um Scrollback zu sparen. Er wird aktiv gepflegt (v6.2.1, November 2026, 4.3k Stars).

Tide installieren

Du brauchst zuerst Fisher. Dann:

fish
fisher install IlanCosman/tide@v6
tide configure

Installation verifizieren:

fish
fisher list | grep tide

Der Prompt ändert sich sofort nach der Installation.

Fish-4.x-Voraussetzung

Auf Fish 4.3 oder neuer: stelle sicher, dass du Tide ≥ 6.2.1 hast. Frühere v6-Releases haben Vi-Mode- und Resize-Bugs auf Fish 4.x; v6.2.1 (November 2026) hat beide behoben.

Tide konfigurieren

Der tide configure-Wizard führt dich durch:

  • Powerline-Stil vs. schlichter Text
  • Ein- oder zweizeiliger Prompt
  • Icon-Stil (Nerd Font nötig für Icons)
  • Farben und Abstände

Es dauert etwa 30 Sekunden und gibt dir einen polierten Prompt ohne manuelles Editieren.

Interaktiver Wizard

Führe tide configure aus und beantworte die Prompts. Das ist der normale Weg. Du siehst eine Live-Vorschau bei jeder Wahl.

Automatisiert (Dotfiles)

Führe tide configure --auto für nicht-interaktive Setups aus. Es wendet ein Standard-Preset ohne Nachfragen an – genau das, was du in Dotfiles-Bootstrap-Scripts oder CI-Umgebungen willst, wo es kein TTY zum Antworten gibt.

Über den Wizard hinaus kannst du Tide erweitern, indem du eigene Fish-Shell-Funktionen erstellst, die Items in den Prompt injizieren.

Was Tide anzeigt

Standardmäßig zeigt Tide:

  • Aktuelles Verzeichnis (smarte Kürzung auf das kürzeste eindeutige Präfix)
  • Git-Branch und -Status (untracked, modified, staged, ahead/behind)
  • Befehlsdauer (für langsame Befehle)
  • Sprachversionen (Node, Python, Rust, Go, Bun, etc.), wenn du in einem relevanten Projekt bist. Für Node kannst du Node-Versionen mit nvm.fish verwalten. Das go-Item triggert auch auf go.work-Workspaces (v6.2.1).
  • Zeit, Jobs und Exit-Status im rechten Prompt

Nerd Font empfohlen: Installiere MesloLGS NF oder irgendeine Nerd Font für den besten Icon-Support. Ohne fällt Tide auf einen reinen Text-Modus zurück, der immer noch gut aussieht. Sowohl das Ghostty-Terminal-Setup als auch WezTerm auf macOS rendern Nerd Fonts gut.

Tide anpassen

Nach dem Wizard einzelne Einstellungen feintunen:

fish
# Change which items appear on the left and right
set --universal tide_left_prompt_items pwd git newline character
set --universal tide_right_prompt_items status cmd_duration context jobs node

# Change git status symbols
set --universal tide_git_icon ""

# Apply changes without restarting the shell
tide reload

Änderungen sofort anwenden

Nach jeder set --universal-Änderung führe tide reload aus, um sie sofort zu sehen. Kein Shell-Neustart nötig.

Führe set --universal | grep tide aus, um alle Tide-Variablen zu sehen. Nützliche:

  • tide_jobs_number_threshold: Job-Anzahl nur oberhalb von N Hintergrundjobs anzeigen
  • tide_transient_prompt: steuert, ob alte Prompts zusammenklappen, um Scrollback zu sparen

Tide auf Fish 4.x

Fish 4.x (aktuell 4.9.3) ist seit dem 4.0-Rewrite Rust-basiert. Tide v6.2.1 (November 2026) ist vor allem ein Fish-4-Kompatibilitäts-Release. Es behebt:

  • Vi-Mode-Prompt-Zeichen, das unter Standard-Bindings auf Fish 4.3+ ❮ zeigt, und vi_mode, das D zeigt
  • Broken pipe-Panic bei Terminal-Resize
  • Prompt bricht in laufenden Shells nach einem Fish-Upgrade via Homebrew
  • Tastatureingaben gehen verloren, während der Prompt im Hintergrund rendert

Fish-4.3+-Nutzer

Wenn du auf Fish 4.3+ bist und merkwürdige Vi-Mode-Zeichen oder Resize-Panics siehst, aktualisiere Tide zuerst auf v6.2.1+, bevor du irgendetwas anderes debuggst. Führe fisher update IlanCosman/tide für die neueste Version aus.

Starship: der Cross-Shell-Prompt

Starship ist ein Cross-Shell-Prompt, geschrieben in Rust. Er funktioniert mit Fish, Zsh, Bash, PowerShell und mehr. Mit über 60k GitHub-Stars und aktiver Pflege ist er die praktische Wahl, wenn du mehrere Shells nutzt oder eine Prompt-Config mit Teamkollegen auf anderen Shells teilen willst.

Starship installieren

bash
curl -sS https://starship.rs/install.sh | sh

Zu deiner Fish-Config hinzufügen:

fish
# ~/.config/fish/config.fish
starship init fish | source

Verifizieren:

bash
starship --version   # should be >= 1.27.0

Security-Update

Starship v1.27.0 (Oktober 2026) hat zwei mittelschwere Security-Advisories gepatcht: GHSA-x486-6jjc-phfp (Symlink-DoS während des Prompt-Renderns) und GHSA-679r-jwc5-r5m3 (Git-Ownership-Check-Bypass). Wenn du Starship vor Oktober 2026 installiert hast, aktualisiere es: starship update (für install.sh-Installationen) oder dein Paketmanager.

Ich habe einen eigenen Guide zum Einrichten von Starship mit Fish Shell mit Konfigurationsbeispielen und Preset-Auswahl. Wenn du es bereits mit Zsh eingerichtet hast (vielleicht nach meinem Starship-und-Ghostty-Guide), überträgt sich die TOML-Config-Datei.

Starship-Presets

Starship hat ein Preset-System für schnelles Theming. Aktuelle Presets umfassen bracketed-segments, catppuccin-powerline, gruvbox-rainbow, jetpack, nerd-font, no-empty-icons, no-nerd-font, no-runtimes, pastel-powerline, plain-text, pure-preset und tokyo-night.

Eines verdient Erwähnung: pure-preset gibt dir Pures minimalistischen Look in Starship. Nützlich, wenn du Pures Ästhetik willst, aber Cross-Shell-Support brauchst.

bash
starship preset tokyo-night -o ~/.config/starship.toml
starship preset pure-preset -o ~/.config/starship.toml   # Pure look, cross-shell
  • Du willst Pures Look? → pure-preset
  • Powerline-Stil? → catppuccin-powerline oder pastel-powerline
  • Keine Nerd Font? → no-nerd-font oder plain-text
  • Alles anzeigen? → nerd-font

v1.27.0 hat außerdem Jujutsu-VCS-Module hinzugefügt (jj_status, jj_change und andere; nicht im Standard-Format – manuell oder via vcs-Modul hinzufügen) sowie OpenTofu-.tofu-Erkennung im Terraform-Modul.

Starship vs. Tide

Starship hat kein Async-Rendering, ist aber schnell genug, dass es auf normal großen Repos selten zählt. Die Konfiguration ist eine einzige TOML-Datei (~/.config/starship.toml) statt universeller Variablen – manche finden das leichter zu versionieren. Wenn Git-Status in riesigen Repos langsam ist, ist command_timeout in starship.toml (Standard 500 ms) der Regler. Starship gibt bei langsamen Befehlen auf, statt unendlich zu hängen.

Eine weitere Cross-Shell-Option, die man kennen sollte: Oh My Posh (23k+ Stars, aktiv gepflegt). Die Config ist JSON/YAML statt TOML. Wenn du dieses Format bevorzugst oder seine spezifischen Features brauchst, ist es eine solide Alternative zu Starship.

Pure: der minimale Fish-Prompt

Pure ist ein Port des beliebten Zsh-Pure-Prompts (siehe die besten Oh-My-Zsh-Plugins, falls du aus dieser Welt kommst). Er ist minimal: nur dein Verzeichnis, Git-Branch und ein ❯-Zeichen, das nach einem fehlgeschlagenen Befehl rot wird. Aktuell v4.19.2 (Oktober 2026), unterstützt Fish 3.x und 4.x.

Pure installieren

fish
fisher install pure-fish/pure

Kein Konfigurations-Wizard. Funktioniert sofort mit vernünftigen Defaults. Verifiziere mit fisher list | grep pure. Der neue Prompt erscheint sofort.

Was Pure anzeigt

  • Aktuelles Verzeichnis
  • Git-Branch und Dirty/Clean-Status
  • Befehlsdauer (für lange Befehle)
  • Username und Hostname über SSH
  • Python-Virtualenv-Name, wenn aktiv
  • Das ❯-Prompt-Zeichen

Wenn du einen sauberen, ruhigen Prompt magst, der aus dem Weg bleibt, ist das der richtige. Pure zeigt keine Sprachversionen oder rechte Informationen, es sei denn, du aktivierst sie. Er ist für Leute, die weniger auf dem Bildschirm wollen, nicht mehr.

Pure anpassen

Pure nutzt Fish-Variablen zur Konfiguration:

fish
set --universal pure_show_system_time true
set --universal pure_enable_single_line_prompt true
set --universal pure_show_jobs true

# Sub-second command duration (new in v4.19.2)
set --universal pure_threshold_command_duration 0
set --universal pure_show_subsecond_command_duration true

v4.19.2 (Oktober 2026) hat die Sub-Sekunden-Dauer-Variablen hinzugefügt. Nützlich, wenn du das Timing auch für schnelle Befehle sehen willst, nicht nur für langsame.

Hydro: Async-Git, null Config

Hydro ist noch minimaler als Pure. Es stammt vom Autor von Fisher und zeigt Git-Branch, Befehlsdauer und Exit-Status. Das war’s im Wesentlichen.

fish
fisher install jorgebucaran/hydro

Hydros Stärke ist null Konfiguration und nahezu null Overhead. Der Git-Status aktualisiert asynchron: Der Prompt zeichnet sofort neu und die Branch-Info füllt sich einen Moment später – derselbe Ansatz wie bei Tide. Wenn du einfach einen Git-Branch in deinem Prompt willst, ohne darüber nachzudenken, macht Hydro genau das.

Wartungsstatus

Hydro ist stabile, wenig veränderte Software. Der Autor betrachtet es als fertig, nicht als verlassen. Letzter Commit war Februar 2026 (“Fix CJK branch name truncation”). Keine getaggten Releases; Fisher trackt das Repo direkt.

Fish-Shell-Prompt-Vergleich

Tide Starship Pure Hydro Eingebaut
Async-Rendering Ja Nein Teilweise Ja (Async-Git-Status-Repaint) Nein
Config-Wizard Ja Nein Nein Nein Web-UI
Cross-Shell Nein (nur Fish) Ja Nein (nur Fish) Nein (nur Fish) Nein
Config-Format Universelle Variablen TOML-Datei Universelle Variablen Minimal Web-UI / Variablen
Nerd Font nötig Empfohlen Empfohlen Nein Nein Nein
Sprachversionen Ja Ja Nein Nein Nein
Git-Integration Tief Gut Basis Basis Keine
Transient Prompt Ja Nein Nein Nein Nein
Setup-Zeit 1 Minute 2–3 Minuten 30 Sekunden 10 Sekunden 30 Sekunden

Welchen Fish-Shell-Prompt solltest du nutzen?

Tide, wenn Fish deine einzige Shell ist und du den am besten aussehenden, informativsten Prompt ohne Lag willst. Der Wizard macht das Setup einfach.

Starship, wenn du mehrere Shells nutzt oder eine TOML-Config-Datei willst, die du versionieren kannst. Ich habe das ausführlich in meinem Starship-+-Fish-Guide behandelt.

Pure, wenn du Minimalismus und ein bewährtes Design bevorzugst (es ist in der Zsh-Welt seit Jahren beliebt).

Hydro, wenn du den absolut minimalen brauchbaren Prompt willst.

Eingebaut, wenn du nichts extra installieren willst und die Standard-Prompts gut genug sind.

Ich persönlich nutze Starship, weil ich auf verschiedenen Maschinen zwischen Fish und Zsh wechsle. Wenn ich nur Fish nutzen würde, würde ich vermutlich Tide nehmen.

  • Nur Fish, maximale Features? → Tide
  • Mehrere Shells oder versionierbare Config? → Starship
  • Minimaler, ruhiger Prompt? → Pure
  • Absolutes Minimum, null Config? → Hydro
  • Willst nichts installieren? → Eingebaute Themes

Fish-Shell-Prompt-Entscheidungsflussdiagramm: So wählst du zwischen Tide, Starship, Pure und Hydro

Deinen Prompt verifizieren und zurückrollen

Wechseln ist sicher

Prompts zu wechseln ist sicher. Nichts berührt deine Shell-Config über eine Zeile in config.fish oder Fishers Plugin-Liste hinaus. So prüfst du, was aktiv ist, und machst es rückgängig.

Verifiziere, was deinen Prompt rendert:

fish
type fish_prompt
fish --version
starship --version
fisher --version

type fish_prompt sagt dir, welche Funktion deinen Prompt rendert. Wenn du starship siehst, ist Starship aktiv. Wenn du fish_prompt von Tide oder Pure definiert siehst, läuft das.

Zurück zum Standard-Fish-Prompt:

fish
fisher remove IlanCosman/tide    # or pure-fish/pure or jorgebucaran/hydro
fish_config prompt choose default
fish_config prompt save

Für Starship lösche die Zeile starship init fish | source aus ~/.config/fish/config.fish und öffne dann eine neue Shell.

Wenn du über den Prompt hinausgehen und eigene Fish-Shell-Funktionen erstellen willst, ist das der natürliche nächste Schritt, sobald dein Prompt gut aussieht.

Häufige Fehlermodi:

Tofu-Boxen / seltsame Glyphen

Fehlende Nerd Font. Tide und Starship nutzen Nerd-Font-Glyphen für Icons. Ohne siehst du Boxen oder Fragezeichen. Fix: Installiere MesloLGS NF (oder eine beliebige Nerd Font) und setze sie in deinem Terminal-Emulator. Hydro und Pure nutzen einfache Glyphen und sind nicht betroffen.

Zwei Prompts bekämpfen sich

Sowohl Starship-Init als auch Tide gleichzeitig installiert. Der zuletzt geladene gewinnt, und das ist verwirrend zu debuggen. Fix: Entferne einen. Führe fisher remove IlanCosman/tide aus oder lösche die Zeile starship init fish | source aus config.fish. Dann öffne eine neue Shell.

Prompt hängt bei großen Repos

Starship rendert synchron. In riesigen Repos kann Git-Status den Prompt bis zu command_timeout (Standard 500 ms) blockieren. Fix: Erhöhe command_timeout in ~/.config/starship.toml oder wechsle zu Tide (Async-Rendering; Prompt rendert zuerst, Git-Info füllt sich nach).

macOS/WSL-Pfadfehler nach Upgrade

Case-mismatched Pfade haben ältere Tide-Versionen gebrochen (set: --erase-Fehler). Tide v6.2.1 (#630) hat das behoben. Fix: fisher update IlanCosman/tide.

Verwandte Guides

Hat diese Anleitung bei dir funktioniert?

Brauchst du Hilfe bei Astro, VPS oder einer Self-hosted-App? Services ansehen →