
# Inspector Rust — Clipboard Manager & Command Palette

> Free, open-source (MIT) desktop utility for macOS, Windows and Linux. Ctrl+Space opens a popup with a searchable, encrypted clipboard history, a text expander and 66 search-bar commands: calculator and unit converter, translation, weather, screenshots with OCR and annotation, screen recording, colour picker, system and audio tools. Data stays in a local SQLite database with AES-256-GCM encryption at rest; there is no account and no telemetry.

This is the Markdown version of https://inspector-rust.celox.io/ for agents and text tools. A short summary with every link lives at https://inspector-rust.celox.io/llms.txt.

## Download

- **Newest release:** https://inspector-rust.celox.io/download (picks the file for your platform; always the current release)
- **Current version:** 0.185.0 · released 2026-09-25
- **Release data as JSON:** https://inspector-rust.celox.io/latest.json
- **Requirements:** macOS: macOS 11+ · Apple silicon; Windows: Windows 10/11 · x64 · installer; Windows .exe: Windows 10/11 · x64 · no install; Linux .deb: Ubuntu 24.04+ / Debian 13 · x86-64; AppImage: Linux x86-64

Files in the current release:

- macOS: https://inspector-rust.celox.io/download/macos (InspectorRust_0.185.0_aarch64.dmg, 35.7 MB)
- Windows: https://inspector-rust.celox.io/download/windows (InspectorRust_0.185.0_x64_en-US.msi, 38.6 MB)
- Windows .exe: https://inspector-rust.celox.io/download/windows-exe (inspector-rust.exe, 61.4 MB)
- Linux .deb: https://inspector-rust.celox.io/download/linux-deb (InspectorRust_0.185.0_amd64.deb, 32.6 MB)
- AppImage: https://inspector-rust.celox.io/download/linux-appimage (InspectorRust_0.185.0_amd64.AppImage, 103.0 MB)

## Features

- **Clipboard history** — Text, images, files and rich text, searchable as you type. Pin what you need often, add a note, and paste with Enter.
- **Text expander** — Type an abbreviation and get the full text — with placeholders for the date, the clipboard or the cursor position. Works in terminals too.
- **66 commands in the search bar** — Calculate, convert units, translate, check the weather, generate passwords or QR codes. Add `?` to any command for its help.
- **Screen tools** — Screenshots with an annotation editor, text recognition (OCR) from any screen region, screen recording to MP4 and a colour picker with a magnifier.
- **System at your fingertips** — Monitor brightness, audio output, disk usage, cache clean-up, live system stats, world clock and calendar — each opens right in the popup.
- **Private by design** — Everything lives in a local database; clipboard contents, snippets and 2FA secrets are encrypted with AES-256-GCM. No account, no telemetry.

### Every feature

The complete feature catalogue, mirrored from the repository:

### Clipboard

- **Clipboard-Verlauf** — konfigurierbares Limit (Settings → Clipboard history, 50–100.000, Standard 1000), SHA-256-Dedup, AES-256 verschlüsselt at rest (Text, Bilder, Dateien, HTML, RTF); angepinnte + mit Notiz versehene Clips zählen nicht gegen das Limit und werden nie geprunt
- **Pinnen** — ★ hält Clips dauerhaft oben, vom Prune ausgenommen
- **Clip-Notizen** — gelbe Markierung, Notiz am Clip, prune-geschützt
- **Suche** — Substring über den Verlauf, live beim Tippen
- **Smart-Actions** — erkannte URL/E-Mail/Telefon/Koordinaten als 1-Klick-Buttons (Öffnen, mailto, tel, Maps, QR)
- **Text-Transformationen** — Cmd/Ctrl+1–9: Case-Varianten, base64, URL-encode/decode, Vokale entfernen; die Vorschau weist mit „Hold ⌘/Ctrl for formatting options“ darauf hin (Klick hält die Optionen offen)
- **Bild speichern** — jeder Bild-Clip hat im Preview einen Save-to-Downloads-Button (Cmd/Ctrl+S); Command-Bilder bekommen sprechende Dateinamen aus dem History-Label (figlet-hello-….png)
- **Bild-Recolor** — einfarbige Logos/Silhouetten umfärben
- **Freisteller (Cut-out)** — ML-Hintergrundentfernung (U2Netp, offline) per Cmd/Ctrl+B
- **Clipboard-Privacy** — App-Ausschlussliste (z. B. Passwortmanager) + Auto-Clear nach N Sekunden
- **Rich-Copy-Treue** — kopiertes Markdown/Rich-Text behält seinen Quelltext (Umbrüche inklusive); Enter fügt MD als MD ein und hebt den Eintrag wieder nach oben
- **Abgeleitete Kopien** — Plain-Text/Transform-Kopien werden ein NEUER Eintrag ganz oben, das Original bleibt unverändert an seiner Position
- **Lineage-Rails** — farbige Pfade links in der Liste verbinden eine Kopie mit ihrem Original (wie eine Commit-History); überstehen Backup/Restore (IDs werden neu zugeordnet); abschaltbar unter Settings → Appearance. Doku docs/clipboard-shapes.md
- **Automatische Backups** — geplante Voll-Sicherungen in einen frei wählbaren Ordner (Settings → Automatische Backups, v0.170.0): Intervall in Minuten, optional AES-256-verschlüsselt (Passwort nur im Schlüsselbund), die neuesten N Zeitstempel-Stände werden behalten (ältere nur EIGENE Dateien gelöscht). Inhalt = Einstellungen + Snippets + Notizen + 2FA, Verlauf und Zeiterfassung abschaltbar; 2FA immer enthalten (Warnung bei unverschlüsselt). Schreibt NUR bei Änderung (Inhalts-Hash ohne Export-Zeitstempel und ohne eigene Heartbeat-Settings — sonst stündlich identische Mehr-MB-Dateien). Wiederherstellen aus den Settings: Stände-Liste, Zusammenführen (Standard) oder Alles-Ersetzen (mit Rückfrage). Format = das bewährte Einzeldatei-Backup, auch über den bestehenden Import-Knopf ladbar. Standardmäßig aus. Doku docs/auto-backup.md
- **Benchmark** — `benchmark` / `performance` (zwei Namen, ein Befehl): sieben CPU-Disziplinen nach Geekbench-Vorbild (Integer-Sortierung, SHA-256, Matrixmultiplikation, N-Koerper, Primzahlsieb, Deflate, Textauswertung), erst einkernig, dann ueber alle Threads. Tippen zeigt nur eine VORSCHAU (Disziplinen, Dauer, Threads, Maschine) - gemessen wird nichts, bis man den Startknopf drueckt (~9 s Volllast). Punkte relativ zu einer festen Referenz (1000 = die im Report benannte Maschine), dazu die Rohwerte je Teiltest. Systemangaben werden AUSGELESEN (Geraet, OS+Version, Kernel, Architektur, CPU, Kerne, RAM); was nicht lesbar ist, steht als „nicht verfuegbar“ - nie als Platzhalterzahl. Laeufe liegen als JSON unter `<Daten>/InspectorRust/benchmarks/` und sind damit das Austauschformat: Lauf eines anderen Macs oder Linux-Rechners einlesen und nebeneinanderstellen, mit Abweichung gegen den ersten. Wiederholte Laeufe streuen ~5 % - kleinere Unterschiede werden als Rauschen gekennzeichnet, nicht als Ergebnis. Export als HTML und PDF im Haus-Report-Design
- **Menüleisten-Icon** — Hut als macOS-Template-Image (Form nur im Alphakanal, RGB einheitlich weiß): macOS tönt ihn selbst für helle/dunkle Leiste und den hervorgehobenen Zustand, deshalb ist NIRGENDS eine Hell/Dunkel-Farbe verdrahtet. 44×44 px = 22 pt @2x (gemessene `NSStatusBar.system.thickness`), Glyph 18 pt breit mit 2 pt Luft je Seite, Krone zu Krempe ~2:1, kein Innendetail. Geometrie gerechnet in `scripts/gen-tray-icon.py`, Eigenschaften per Test gepinnt
- **Menüleisten-Agent** — kein Dock-Icon, kein Dock-Aufblitzen beim Start (LSUIElement in macos/src-tauri/Info.plist, vom Tauri-Bundler gemerged); die App erscheint nur als Hut-Icon in der Menüleiste
- **Capture-Pause** — Erfassung über Tray anhalten

### Snippets & Text-Expander

- **Snippets** — Kürzel→Text-Vorlagen; 27 AI-Prompts + 255 Material-Farben mitgeliefert
- **Snippet direkt aus der Suche bearbeiten** — ✏️ in der Vorschau oder Cmd/Ctrl+E auf der Snippet-Zeile; speichern mit Cmd/Ctrl+Enter, danach fügt Enter sofort die neue Fassung ein
- **Snippet-Gruppen** — Snippets in Gruppen ordnen (Filter-Chips, Gruppen anlegen/umbenennen/sortieren/löschen); vorgruppiert (AI Prompts · Colors); Gruppen sind im Backup enthalten
- **Snippet-Speicheranzeige** — Settings → Snippets zeigt Anzahl + belegten Platz auf der Platte (verschlüsselte Bytes); kein Limit für die Anzahl (das konfigurierbare Limit gilt nur für die Clipboard-History), die Liste ist virtualisiert und bleibt auch bei Tausenden flüssig
- **Expander-Hotkey (Alt+1)** — Kürzel vor dem Cursor ersetzen, funktioniert auch im Terminal
- **Direkt-Hotkey→Snippet** — beliebige Hotkeys fest an einzelne Snippets binden
- **Passive Auto-Expansion** — aText-Stil: Kürzel expandiert beim Tippen ohne Hotkey (opt-in)
- **Platzhalter** — {date}, {time}, {datetime}, {clipboard}, {cursor} werden beim Einfügen gerendert
- **Feedback-Sounds** — mechanischer Klick bei Expansion, Cues für OCR/Screenshot/Recording (abschaltbar); Screenshot-Sound wählbar in den Settings (Snap [Default] / DSLR-Shutter / Schalter-Klick / Aus, aus dem sound-effects-Archiv, Auswahl spielt Vorschau)

### Notes

- **Notizen** — dauerhafte Lesezeichen aus Clips, kategorisierbar, nie geprunt

### 2FA / TOTP

- **2FA-Manager** — `2fa`/`otp`: Live-Codes mit Countdown, Add/Edit/Delete, Drag-Sortierung
- **Import** — Google Authenticator, Aegis, 2FAS, OTPManager, otpauth-URIs (Paste oder Datei-Drop), dedupliziert
- **OTP-Autocomplete** — `otp <anbieter>` / `2fa <anbieter>`: Enter kopiert den aktuellen Code
- **Schnell-Anlegen** — `2fa add [issuer]` (sichtbare Sub-Zeile bei `2fa`) oder ＋-Button in der Preview: öffnet direkt das Add-Formular (Issuer · Login · Secret), Issuer optional vorbefüllt
- **Type-to-Filter** — im Overlay einfach lostippen, Enter kopiert den Top-Treffer
- **Volume/Mute-HUD „Klangaura"** — beim 3-Finger-Swipe/Tap (und Shift+↑/↓): Sonar-Wellen aus dem Lautsprecher-Icon je Trigger (lauter = nach außen blühend, leiser = nach innen kollabierend, Intensität = Pegel), Glüh-Komet an der Federbalken-Spitze + Licht-Streak beim Lauterwerden, rollende Odometer-Ziffern (nur geänderte Stellen), Mute = Power-Dip des Balkens + Wellen-Kollaps, Unmute = Wellen-Bloom; reduced-motion = statisch wie zuvor

### Globale Hotkeys

- **Popup** — Ctrl+Space (+ zweiter Verlaufs-Hotkey Ctrl+Shift+V), beide konfigurierbar
- **OCR-Region** — Ctrl+Shift+O: Bereich markieren → Text ins Clipboard (offline, Vision/WinRT/tesseract)
- **Screenshot-Region** — Ctrl+Shift+S: Bereich → Clipboard + schwebende Vorschau; auch Vollbild/Fenster/Timer (`shot`, `shotfull`, `shotwin`, `shotlast`)
- **Screenshot-Editor** — Pfeile, Text, Formen, Blur, Redact, Schritt-Badges; Pin-to-Screen-Fenster
- **Screen-Recording** — Ctrl+Shift+Alt+S: Region → MP4 (H.264) mit System-Audio/Mikro, Pause/Resume, Multi-Monitor
- **Eyedropper** — Ctrl+Shift+C: Farb-Lupe mit Live-Hex, Ergebnis ins Clipboard
- **Finder-Auswahl** — Ctrl+Shift+F: markierte Dateien im Popup; Bilder resizen/optimieren/freistellen
- **Markdown→PDF** — Ctrl+Shift+M oder `md2pdf [pfad]` (GitHub-Styling)
- **Audio-Swap** — Ctrl+Shift+Alt+M: Tonspur eines Videos ersetzen/mischen (Datei oder YouTube-Quelle)
- **Timesheet** — Ctrl+Shift+T öffnet den Tab; Ctrl+Shift+Alt+T startet/stoppt Tracking von überall
- **Alle Aktions-Hotkeys umbelegbar** — Settings → Global shortcuts, mit Live-Kollisionsprüfung
- **Stats-Animationen** — Live-Werte gleiten statt zu springen (600-ms-Tween über EINE geteilte rAF-Schleife, Ref-Writes, kommt vor dem nächsten 1,5-s-Poll zur Ruhe; Byte-/Raten-Strings bleiben breitenstabil, unveränderte Werte animieren nicht); ausgelastete Ressourcen (≥90 % = die Rot-Schwelle der Balken) glühen wie ein Heizdraht: fließender Glut-Gradient im Balken, atmender Ember-Schein, gerichteter Hitzestrahl aus der Balkenspitze in die leere Spur, Kopfzahl mit Glut-Ton; Glut-Rampe ab 70 % (Amber-Band); reduced-motion = statische Glut ohne Bewegung
- **Report-Signatur** — jeder Export (LoC, PageSpeed, Repo, Benchmark, Bruno, Zeiterfassung; HTML wie PDF) trägt Unterschrift + Stempel nach der portal.celox.io-Vorlage: dieselbe signature.png (eingebettet, Reports bleiben selbstenthalten), der Stempel als wertgetreue SVG-Portierung (Doppelring, 52 Perlen, Guillochenband, Schild mit Haken, Jahr, −8°), Siegel auf der Tinte; Ringtext „DURCHGEFÜHRTE ANALYSE" (ein Scan ist kein Abschluss), bewusst kein „digital signiert" (keine kryptografische Signatur); leere Dokumente bleiben unsigniert; Einbau zentral in report_style::shell — künftige Reports automatisch mit
- **Bruno-Modi + Export** — Tab auf der Bruno-Zeile schaltet Angestellter ↔ Unternehmer um (der Modus lebt allein in der Eingabe: Tab schreibt `bruno selbst <n>` bzw. entfernt das Keyword, ein spezifisches `frei`/`gewerbe`-Pin überlebt den Tab-Flip bewusst nicht; `einnahmen-ausgaben` wird beim Wechsel zu Angestellt als Gewinn aufgelöst); Export der Aufstellung als HTML/PDF im Haus-Report-Design (Kennzahlen, Zusammensetzungs-Balken hell=Netto/gesättigt=Abzüge, Tabellen mit Anteils-Spur; Soli 0 € bleibt als Aussage stehen, § 35-Anrechnung als negative Zeile)
- **Social-Schnitt** — unter den Download-Buttons ein optionaler „Ausschnitt" (QuickTime-Modell: gelbe Griffe, außen verworfen, Bereich verschiebbar, Playhead frei setzbar, Zeitfelder zum Tippen, Anfang/Bereich/Ende-Prüfknöpfe, Pfeiltasten mit ⇧=fein); der Download lädt dann per yt-dlp `--download-sections` NUR die aktive Sequenz, framegenau (`--force-keyframes-at-cuts`; gemessen 20 s aus 83 min = 1,24 MiB statt Hunderter MB); Anhören über einen 48,8-kbit/s-Audio-Proxy aus dem App-Cache (~5 s), da YouTube keine progressiven Formate liefert; zugeklappt = Download byte-identisch wie bisher
- **Bluetooth** — `bluetooth` bzw. `bt` (ein Befehl, zwei Namen; macOS): gekoppelte Geräte mit Live-Status, Trennen/Verbinden je Zeile, Entkoppeln hinter zweistufiger Bestätigung (⌫⌫); zeigt sich beim Tippen, Enter übergibt die Pfeiltasten (↑↓ · ⏎ verbinden/trennen). IOBluetooth per FFI (kein blueutil); die Adresse ist immer sichtbar, weil ein Gerät zweimal gekoppelt sein kann (Classic + LE); LE ohne Geräteklasse = ehrlich „Gerät", Batterie bewusst nicht angezeigt; Verbinden zu einem ausgeschalteten Gerät bricht nach ~10 s ab (macOS-Timeout)
- **Bluetooth-Analyzer** — `btsniff` (Aliasse `btcap`/`btcapture`/`blecap`): kleiner Bluetooth-Protokoll-Analyzer in der Vorschau. Zwei Modi: (1) LIVE-BLE-Scan (macOS, CoreBluetooth) — „Capture starten" loggt jedes werbende Gerät (Identifier, Name, RSSI, Service-UUIDs, Manufacturer-Data-Bytes) als Live-Paket, mit LIVE-Uhr + pulsierendem Punkt, Pause(nur Ansicht friert ein, Backend läuft weiter)/Resume/Stop/Leeren, Auto-Scroll + „↓ N neue Pakete", Setup-Erkennung + Datenschutz-Hinweis, State-Machine (Idle/Starting/Capturing/PausedView/Stopping/Stopped/Error), bounded Buffer mit expliziter Overflow-Strategie (ältestes verwerfen + Zähler, nie stiller Verlust), gebatchte Events; (2) Import von `.pklg` (macOS PacketLogger) · `btsnoop_hci.log` (Android/BlueZ) · `.pcapng` (Wireshark) → HCI/ACL/L2CAP/ATT/GATT/SMP dekodiert. Beide speisen EINE virtualisierte Timeline (Richtung → TX / ← RX, Protokoll, Handle, UUID); Filter (HCI/ACL/L2CAP/ATT/GATT/TX/RX) + Volltextsuche, Paket-Inspektor mit Hex-Dump und **Byte-Diff zum vorherigen Paket desselben Handles** (Reverse-Engineering), deterministische Sitzungs-Zusammenfassung, JSON-Export (Zeitstempel-Dateiname, MAC-Adressen aus Namen entfernt). ⚠️ Live = BLE-Werbe-Scanner, KEIN Wire-Sniffer fremder App-Sessions (macOS hat keine öffentliche promiskuitive HCI-API — für App↔Gerät ein Android-`btsnoop_hci.log` importieren); defensiver Parser (nie Panik bei korrupten Dateien, Fuzz-getestet). Eigenständig vom `bt`-Befehl; Import plattformübergreifend, Live-Scan macOS-only mit sauberer Meldung sonst
- **Dezibel** — `dezibel` bzw. `db` (ein Befehl, zwei Namen): Enter öffnet das Mikrofon und zeigt die Live-Lautstärke in dB (SPL-Schätzung dBFS + 90) in der Vorschau — große Monospace-Zahl, deren Leuchten, Skalierung und Deckkraft dem Pegel folgen, darunter ein Pegelbalken. Attack schnell / Release langsam (`smoothStep 0.5/0.12`), Ableseintervall ~7 Hz, Skala ca. 30…84 dB: dieselbe Mechanik und Formsprache wie die dB-Anzeige des `bpm`-Detektors. Aufnahme ist die geteilte native cpal-Erfassung (`startFedMic`, referenzgezählt) — gleichzeitiges `bpm`/`disco` öffnet keinen zweiten Strom. Bewusst Enter-aktiviert (Hausregel für Mikrofon-Panels); Esc gibt das Mikrofon frei
- **Lumen** — `lumen`: zeigt die live gemessene Umgebungshelligkeit in Lux, sofern das Gerät einen Sensor bereitstellt; logarithmische Farbskala von Dunkelheit bis Tageslicht, native IOKit-Abfrage auf macOS und IIO-Sensoren unter Linux, klarer Nicht-verfügbar-Zustand statt erfundener Werte
- **Mail Check** — `mailcheck <email>` (Aliasse `emailcheck`/`mailverify`/`mxcheck`): geschichtete, EHRLICHE E-Mail-Zustellbarkeitsprüfung in der Vorschau. Stufen: Syntax (robust, kein Voll-RFC-5322) → Domain → DNS/MX (minimaler DNS-über-UDP-Resolver in std, MX nach Präferenz gelistet, A-Record als impliziter MX) → nicht-invasive SMTP-Prüfung (EHLO · `MAIL FROM:<>` · `RCPT TO` · QUIT — sendet NIE eine Mail, keine Auth, keine aggressiven Probes) → Disposable-Domain-Erkennung + Catch-all (EIN zusätzliches RCPT in derselben Session). Gesamtstatus (DELIVERABLE / DELIVERABLE LIKELY / RISKY / UNDELIVERABLE / INVALID) deterministisch aus den TATSÄCHLICH erhaltenen Signalen abgeleitet — behauptet NIE „Mailbox existiert" (viele Server verhindern absichtlich Recipient-Enumeration; Port 25 oft blockiert → Mailbox „Inconclusive"). Alle Netzprüfungen im Rust-Backend mit kurzen Timeouts (`spawn_blocking`, UI blockiert nie), keine Secrets (keine nötig). Defensiver DNS-Parser (nie Panik bei korrupten Antworten, Fuzz-getestet). Plattformübergreifend
- **Sleep-Status im Footer (macOS)** — EIN Indikator statt zweier (v0.152.0), immer sichtbar, nach Ursache priorisiert: rot pulsierend „wake" (Inspector Rusts eigener Wakelock hält den Mac wach) > amber „no-sleep" (aktives pmset-Profil hat sleep 0 — kommt vom Profil bzw. `nosleep`, nicht vom Wakelock) > himmelblau „wach ∞" (Assertion ohne Timeout) > „wach 4:12" (Countdown bis Sleep wieder möglich; tickt lokal sekündlich, Poll alle 10 s nur bei sichtbarem Popup) > gedämpft „sleep" (nichts hält den Mac wach). Tooltip nennt jeweils die Ursache und die Wachhalter (z. B. caffeinate ×4). powerds Display-an-Assertion zählt bewusst NICHT. Aktualisiert sofort bei `wakelock`- und `nosleep`-Wechsel (Ereignisse, nicht erst beim 10-s-Poll)

### Suchleisten-Commands

- **Inline-Hilfe** — `<command>?` / `<präfix>?` zeigt die volle Doku im Preview (Synopsis, Argumente/Flags, ≥3 Beispiele — klickbar → füllen die Suchleiste, Tipps, Caveats, verwandte Befehle, ←-Index-Chip); `?` allein = durchblätterbarer Befehls-Index (linke Liste, ↑↓ + Live-Doku rechts, Enter füllt den Befehl), `? <text>` = Volltext-Suche über alle Docs, `?<command>` OHNE Leerzeichen (z. B. `?snitch`) = direkt die Doku dieses Befehls. Literales `?` (in Templates/Globs/URLs/Argumenten) triggert nicht. Alles aus EINER Registry (commandDocs.ts), die auch die README-Command-Matrix + den Features-Tab generiert (docs/inline-help.md)
- **Suchleiste-Löschen** — ein ×-Knopf am rechten Ende der Eingabe (nur sichtbar, wenn Text da ist) löscht die komplette Eingabe mit einem Klick; der Fokus bleibt im Feld, sodass man sofort weitertippen kann (v0.175.0)
- **Übersetzen** — `tr`, `tren`, `trde`, `trde2it/2sp/2pl` u. a.: Live-Übersetzung in der Preview beim Tippen (keyless Google gtx + MyMemory-Fallback); Enter kopiert die Übersetzung, Shift+Enter öffnet Google Translate; Klick auf Quell-/Zieltext kopiert diesen. Doku docs/translation.md
- **Web-Bangs** — `g`, `ddg`, `gh`, `yt`, `npm`, `crates`, `so`, `mdn`, `wiki` <query>
- **Dev-Tools** — `uuid [n]`, `slug`, `hash` (SHA-256), `json` (pretty-print), `jwt` (decode)
- **Fake-Testdaten** — `faker [gen] [n] [@locale] [--json|csv|sql|ts]`: 70+ Generatoren × 14 Locales, Composites (person/user/address/order), Ranges (`int 1..100`), `--seed=` reproduzierbar, ⌘/Ctrl+R-Reroll, `tpl`-Templates, ehrlicher EN-Fallback; auch `{faker:…}` in Snippets; Settings → Faker
- **Security-Command-Builder** — `sec`/`nmap`/`sqlmap`/`ferox`/`john [preset] [target]`: geführte Pentest-Command-Builder (nmap/sqlmap/feroxbuster/John), Preset-Katalog + Flag-Erklärungstabelle, shell-sicheres Quoting; Enter kopiert, ⌘/Ctrl+Enter Terminal-Hand-off (macOS, opt-in, standardmäßig nicht abgeschickt); scharfe Presets bestätigen; datengetriebene Registry (Tool = Daten, gobuster als Erweiterungs-Beweis); scannt NIE selbst (kein Subprozess/Netzwerk); Settings → Security; nur autorisierte Ziele
- **QR-Code** — `qr <text>`: UTF-8-Live-Vorschau + PNG ins Clipboard, PNG-/STL-Export nach Downloads (Grundplatte + erhabener Code für 3D-Druck)
- **IP-Info** — `ip`: öffentliche IP, ungefähre Geo-/ISP-Informationen, Offline-Weltkarte und OpenStreetMap-Link
- **ASCII-Art-Banner** — `figlet <text>` (Alias `banner`/`ascii`): Live-Monospace-Vorschau + Font-Galerie (jede Zeile zeigt den eigenen Text im jeweiligen Font), `@font` fuzzy-sucht Hunderte gebündelte Fonts, ↑↓ blättert, Tab füllt `@font`, Enter kopiert das volle Banner, Shift+Enter kopiert es als eng zugeschnittenes PNG in Theme-Farben (Clipboard + History), Cmd/Ctrl+Shift+Enter rendert es mit transparentem Hintergrund und speichert es nach ~/Downloads (Finder-Reveal) UND kopiert es ins Clipboard; Chips für Ausrichtung/Breite/Trim/Kommentar-Wrap (`//`,`#`,`/* */`,`<!--`)/Box-Rahmen; nicht-darstellbare Zeichen werden gemeldet statt still verschluckt; Fonts komprimiert eingebettet + lazy dekomprimiert (THIRDPARTY-FONTS); RenderEngine-Trait für spätere ASCII-Styles; Settings → Figlet. Doku docs/figlet.md
- **Bilder** — `rz` skaliert die Finder-Auswahl als Stapel, in Pixeln ODER prozentual (v0.153.0): **eine Zahl ist Prozent** (`rz 50` = halbe Größe), **zwei Zahlen sind Pixel** (`rz 1200x800`, unverändert seit v0.84.72); ein genannter Modus gewinnt immer (`px`/`pixel`/`pixels`, `%`/`pc`/`pct`/`percent`/`prozent`, auch als Nachsilbe `rz 50%`). Prozent skaliert **jedes Bild aus seiner eigenen Größe**, ein gemischter Stapel behält also seine Proportionen; Achsen einzeln möglich (`rz % 150x100`). Tippt man `rz`, zeigt die Vorschau die Modi und für die aktuelle Auswahl die Anzahl, `3024×4032 → 1512×2016 (JPEG)` je Bild und eine Warnung, wenn ein Ziel die 16-MP-Grenze reißt; eine nicht lesbare Auswahl wird benannt statt als „0 Bilder" gezeigt. `optim` (PNG/JPEG komprimieren)
- **Repo-Statistik** — `repo [url|pfad]` (+ `export`): Git-Aktivität wie repo2viz — KPIs (Commits, Mitwirkende, aktive Tage, längste Serie, Zeilen ein/aus), Monats-Sparkline, Wochentag/Stunde-Charts, Commit-Kategorien (Conventional Commits), aktivste Dateien/Dateitypen/Mitwirkende. Quelle: GitHub-URL (read-only bare-Clone), lokaler Pfad, oder im Finder ausgewählter .git-Ordner. `export`/E/⬇ speichert dieselbe Auswertung als self-contained HTML nach ~/Downloads (<owner>-<repo>-activity.html). git-log-Parser pur+getestet (Wochentag via Zeller, Streak, Churn), HTML injection-escaped
- **Repo per GitHub-URL** — eine GitHub-Repo-URL im Suchfeld (ohne Stichwort) zeigt „Repo analysieren · owner/repo"; Zeiträume 30 T/90 T/180 T/1 J/Gesamt ab dem letzten Commit, Heatmap Wochentag×Stunde, Beitragskalender, Hotspots (≤ 2 Autoren), Bus-Faktor gesamt + je Verzeichnis, Co-Change-Paare; ⌘E/⌘P exportieren den gewählten Zeitraum als HTML/PDF; ⌘K klont in den Klon-Ordner (Settings → Repositories), belegte Namen werden zu „name (2)", „name (3)" …; Klon-Cache (max. 5 Repos/2 GB) macht die nächste Analyse zu einem git fetch; private Repos über gh auth oder Token im Schlüsselbund (v0.183.0)
- **Repo-Code-Änderungen** — im `repo`-Panel direkt unter den Zeitraum-Chips: Zeilen +hinzugefügt / −gelöscht / netto mit Balkendiagramm je Zeitschritt (gemeinsame Skala) und kumulativer Netto-Linie; die Zeitachse folgt dem Zeitraum (30 T Tage, 90/180 T Wochen ab Montag, 1 J/Gesamt Monate), Überschrift nennt den Zeitraum statt einer Monatszahl; auch im HTML/PDF-Export ganz oben (v0.184.0)
- **Repo-Aktivität 24 h / 7 Tage** — ganz oben im `repo`-Panel: Commits, Zeilen +/−, Dateien, Mitwirkende, Tags (Git, Commit-Zeitpunkt, rollierende halboffene Fenster) sowie bei GitHub-Repos Pushes, PRs geöffnet/gemergt, Issues geöffnet/geschlossen (API, max. 300 Events → „≥ n“), je mit ↑/↓ zur gleich langen Vorperiode; auch im HTML/PDF-Export ganz oben (v0.185.0)
- **Doku-Text formatiert** — die Markdown-Auszeichnung der Command-Dokus (`code`, **fett**) wird in Preview, `?`-Hilfe, Listenzeilen und Features-Tab als echte Formatierung gerendert statt als Rohtext; Glob-Muster und einzelne Sterne bleiben unangetastet, die Suche findet auch über eine Auszeichnung hinweg (v0.131.0)
- **Panels sofort sichtbar** — vollständig getippte Panel-Commands (clock/stats/weather/hue/adb/tokens/snitch/uptime/brightness/boom/rickroll/nosleep-bare u. a.) rendern ihren Inhalt DIREKT in der Preview, Enter übergibt nur den Tastatur-Fokus; schwere Scans (disk/loc/repo/clean) und Mikrofon (shazam/iris) bleiben bewusst Enter-aktiviert (v0.130.0)
- **X!** — versteckte Trigger `x!` (~60 Fähigkeits-Schlagworte wie TRANSLATOR/RIPPER/SECTOOLS, je Aufruf neu gemischt) und `x!!` (heutige tagesschau-Schlagzeilen, öffentliche API ohne Schlüssel, nur Überschriften mit Quellenangabe; ohne Netz spielt die Eigenschaften-Fassung): Vollbild-Spektakel in sechs Akten (30 s), deckt auf macOS auch Menüleiste und Dock ab; Enter startet, Klick ODER jede Taste bricht ab; Vollflächen-Blitze bleiben unter der WCAG-Reizschwelle
- **Clown-Text** — `clown [text] [@stil]`: verfremdet Text und listet ALLE Stile mit dem eigenen Text als Live-Vorschau (Clown = wechselnde Groß-/Kleinschreibung + gelegentliches Le3t, Mock, Leet, Ｖａｐｏｒｗａｖｅ, 𝔻𝕠𝕦𝕓𝕝𝕖, 𝗙𝗲𝘁𝘁, 𝓢𝓬𝓱𝓻𝓮𝓲𝓫, ᴋᴀᴘɪᴛÄʟᴄʜᴇɴ, Kopfüber, D̶u̶r̶c̶h̶, 👏, G e s p e r r t); ohne Argument aus der Zwischenablage, Enter fügt ein, deterministisch (kein Flackern beim Tippen)
- **Rickroll** — `rickroll`: spielt Rick Astley „Never Gonna Give You Up" mit Ton direkt in der Preview — als GEBÜNDELTER, stark komprimierter Clip (480p, ~5 MB; das YouTube-Embed starb im Webview mit Error 153): kein Netz nötig; Player-Steuerung, Lyric-Marquee, „Nochmal", Browser-Fallback
- **Weltzeituhr** — `clock`: Live-Zeiten wichtiger Städte als Kachelraster (Zeit + Sekundentick, Datum, ±1-Tag-Chip, UTC-Offset, Sonne/Mond je Tag/Nacht); Städte per Autocomplete hinzufügen (Treffer auf Stadt/Land/IANA-tz), × zum Entfernen; Zeiten aus der OS-Zeitzonendatenbank (Sommerzeit korrekt); Auswahl persistiert serverseitig
- **Speicher-Analyse** — `disk [pfad]` (Alias `daisy`): DaisyDisk-Nachbau in der Preview — konzentrisches Sunburst-Diagramm der Ordnergrößen (Ring = Verzeichnisebene, Winkel = belegter On-Disk-Platz), Mitte zeigt Größe/Anteil des gehoverten Elements, Volume-Leiste (frei + Ordner-Anteil am Datenträger), Klick = reinzoomen, Liste der größten Dateien; Löschen über den Sammler (s. eigene Zeile). On-Disk-Größe (Blöcke), folgt keinen Symlinks, bleibt auf einem Dateisystem, Rechte-Fehler übersprungen; Live-Fortschritt beim Scan. Bare `disk` = im Finder ausgewählter Ordner, sonst Home; `disk /` = ganzes Volume (v0.137.0: paralleler Wurzel-Walk)
- **Speicher-Navigation** — Pfadleiste zeigt IMMER den absoluten Pfad des gezeigten Ordners, jedes Segment anklickbar (innerhalb des Baums sofort, oberhalb der Scan-Wurzel per Nachscan); `⌫`/`←`/↑-Knopf = eine Ebene höher, auch über die Scan-Wurzel hinaus; Klick auf einen Ordner an der Prune-Grenze scannt dort neu → praktisch unbegrenzte Tiefe; `R` = aktuellen Ordner neu scannen (v0.138.0)
- **Android-Steuerung** — `adb [remote|apps|wifi]`: Popup-Companion zu ADBOSS mit 5 Ansichten — Info (Live-Dashboard 5-s-Poll: Akku+Temp, RAM, Speicher, WLAN/IP/RSSI, Auflösung; Screenshot → Mac-Clipboard+Verlauf; Screenrecord → ~/Downloads), Steuern (WLAN/BT/Flugmodus/DND, Helligkeit, Lautstärke, Display wecken/aus/sperren), Remote (Nav-Tasten, D-Pad, Text [nur ASCII], Tap/Swipe), Apps (suchen, starten, stoppen, Daten löschen, deinstallieren — mit Bestätigung), WLAN-ADB (tcpip 5555 + IP-Autoerkennung → kabellos; ip:port-Connect, Trennen). Kommandoformen 1:1 aus ADBOSS (erprobt), alle Shell-Werte strikt validiert (POSIX-Quote-Fix, injection-getestet); Setup-Anleitung in Settings → Android (adb)
- **Lines of Code** — `loc [pfad]`: zählt die Finder-Auswahl (oder einen Pfad) mit tokei (~200 Sprachen, echte Syntax-Kenntnis statt Regex): pro Sprache Dateien/Code/Kommentare (inkl. Doku + Python-Docstrings)/Leerzeilen, Totals-Kacheln, GitHub-artiger Sprachbalken + Donut-Chart, Ignore-Toggle (.gitignore gilt nur in Git-Repos!), R = neu zählen; bare `loc` braucht die Finder-Automation-Berechtigung, `loc <pfad>` nicht
- **Settings per Text** — `settings [sektion]` (Alias `config`): öffnet den Settings-Tab, mit Argument Sprung direkt zur Sektion (fuzzy, DE/EN: `settings cue`, `settings hotkeys`, `settings gesten`) inkl. Scroll + Highlight
- **Prozesse** — `kill [-9] [name|pid]`: Live-Prozess-Picker inkl. Inspector Rust selbst (`kill inspector`); Multi-Wort-Filter; native Bestätigung
- **System** — `reboot`, `shutdown`, `lock`, `mute`, Shift+↑/↓ = Lautstärke (5-%-Raster)
- **Input-Lock** — `freeze`: Tastatur+Maus sperren bis zum Entsperr-Akkord
- **Wachhalten** — `wakelock on/off` (Alias `caffeine`); seit v0.116.0 zusätzlich **Dark Wake**: `wakelock dark [on|off]` hält das System wach, lässt aber das **Display schlafen** (`caffeinate -is` — Remote-Verbindungen wie SSH/Claude Code bleiben bei dunklem Bildschirm erreichbar; überlebt KEIN Deckel-Zuklappen). Footer: rote LED = Voll-Modus, klickbarer ☾-Button = Dark-Wake-Toggle (violett + „srv" wenn aktiv; seit v0.130.0 bleibt das Overlay dabei OFFEN — der Animations-Toast ploppt trotzdem, LED + Tooltip aktualisieren live); der System-Sleep-Indikator zeigt dabei folgerichtig „wach ∞" mit caffeinate als Halter
- **Dauerschlaf-Sperre** — `nosleep [on|off]` (macOS): schaltet das DAUERHAFTE AC-Energieprofil (`pmset -c sleep 0`, Admin-Prompt, überlebt Neustarts); Panel zeigt Live-AC-/Batterie-Timeout + Schalter, `off` stellt den überschriebenen Wert wieder her. Unterschied zu `wakelock dark` (nur Sitzung, ohne Admin). Nur System-Sleep, Display schläft normal
- **Alias-Builder** — `alias [name]`: geführtes Anlegen eines Shell-Alias in der Preview (Befehl + Name → exakter Anlege-Befehl je OS: macOS/zsh, Linux/bash, Windows/PowerShell-Funktion; je Kopieren-Button + Direkt-Anlegen auf diesem System; darunter die bestehenden Aliasse der GESAMTEN Shell-Startkette (rc + gesourcte Dateien, je Zeile mit Herkunftsdatei) als durchsuchbare, alphabetische Liste mit Bearbeiten [füllt die Felder, Button wird „Aktualisieren“] und Löschen [Inline-Bestätigung]; Fokus springt bei Enter/Autocomplete ins Befehl-Feld; Quoting wird übernommen; ⚠️ schreibt automatisch eine FUNKTION statt eines Alias, wo eine nötig ist, und sagt warum: `cd` MIT nachfolgendem Befehl → Subshell-Funktion (als Alias bliebe DEINE Shell danach im Zielordner stehen); Befehl liest `$1`/`$@` → Funktion (ein Alias kann Argumente gar nicht empfangen, die Shell hängt das Getippte hinten an). `cd` ALLEIN bleibt ein Alias — der soll ja hinbringen. Beim cd-Fall wird `"$@"` angehängt, weil ein Alias nachgestellte Argumente gratis weiterreicht und eine Funktion nicht. Funktionen werden wie Aliasse aufgelistet/bearbeitet/gelöscht (der Editor zeigt den getippten Befehl, nicht die Hülle); Bearbeiten entscheidet die Form NEU. Windows: für den cd-Fall Push-Location/Pop-Location, weil eine PS-Funktion im Aufrufer-Scope läuft)
- **Datei-Ops** — `touch <name> [> inhalt]`, `mkdir <pfad>`, `terminal` (im aktiven Finder-Ordner)
- **Netto-Rechner** — `bruno <brutto>`: deutscher Brutto→Netto-Rechner (2025); Keyword `frei`/`gewerbe`/`selbst` VOR dem Betrag = Selbständigen-Kalkulation auf den Jahresgewinn (`bruno frei 80000`, `bruno gewerbe 80000`, auch `bruno frei 90000-15000`; `frei`/`gewerbe` pinnen den Betriebstyp inline, `selbst` nutzt den Settings-Default, Legacy-`f`-Suffix bleibt parsebar): freiwillige GKV (Mindest-/Höchstbemessung) oder PKV-Fixbeitrag, volle PV, keine RV/AV, Grund-/Splittingtarif, Gewerbesteuer mit §35-Anrechnung (Freiberufler ohne); Enter fügt das Netto ein, Shift+Enter kopiert die komplette Aufstellung (Annahmen + alle Abzüge) als Text
- **Timer/Wecker** — `timer <n>[s/min]`, `alarm <HH:MM>` mit Vollbild-Alarm · Alias `countdown` (identisch)
- **Passwörter** — `pwgen [länge]`: 4 Modi (alnum/symbols/dict/leet), CSPRNG
- **Kalender** — `calendar [monat jahr]` / `cal`: Monatsansicht, Wochentag-Recherche, ←→↑↓-Navigation
- **Zufall** — `rnd` / `random`: würfelt eine Zahl und zeigt sie direkt im Preview (groß) + „Roll again"-Button zum Neuwürfeln im Bereich; Enter fügt die gezeigte Zahl ein. Bereich: `rnd` (1–6) · `rnd 100` · `rnd 5 500` · `rnd 1-2` (Dash-Range)
- **Vokale** — `rmvvls <text>`: Vokale entfernen → Clipboard
- **Meme-Picker** — `meme [suche]`: GIF/Bild-Bibliothek durchsuchen, animiert kopieren
- **Video-Trim** — `trim`: Datei kürzen (lossless oder frame-genau)
- **Social-Download** — YouTube/Instagram/TikTok/Facebook/Dailymotion-URL erkannt (auch die Kurzform dai.ly) → Video/Audio laden (yt-dlp, Tab wechselt Modus); Dateien heißen `Interpret - Track (Edition).ext` (Musik-Metadaten > Titel-Split > bereinigter Kanalname; Junk-Klammern raus, echte Editionen wie Live/Remaster/feat./Jahr bleiben, Remaster ohne Jahr bekommt das Release-Jahr)
- **Link-Grabber (Stapel-Download)** — unter der Download-/Status-Leiste: beliebigen Text einfügen (Liste, Chatverlauf, E-Mail) → jeder enthaltene YouTube/Instagram/TikTok/Facebook/Dailymotion-Link wird herausgelesen, entdoppelt und der Reihe nach geladen. Satzzeichen und Klammern am Link-Ende werden abgeschnitten (unbalancierte Klammer = Satzzeichen, balancierte gehört zur URL). Ein fehlschlagender Link stoppt die Schlange nicht, er wird in seiner Zeile vermerkt; „Retry" wiederholt nur die Fehlschläge. Audio wird angeboten, wenn ALLE Links YouTube sind. Während des Laufs bleibt das Popup angeheftet (sonst würde ein Fokusverlust die Schlange abwürgen) und der Finder öffnet EINMAL am Ende statt nach jeder Datei
- **Vorschau mit Bild und Beschreibung** — die Download-Vorschau zeigt vor dem Laden Titel, Kanal, Dauer, kleines Vorschaubild und Beschreibung (yt-dlp `--dump-single-json`); bei mehreren Links dieselbe Liste, Zeile für Zeile mit Bildchen und Titel. ⚠️ ~4 s je Link, deshalb: Zwischenspeicher je URL, 600-ms-Entprellung (nicht je Tastendruck) und Deckel von 3 gleichzeitigen Abfragen — eine eingefügte Dreißiger-Liste startete sonst dreißig yt-dlp-Prozesse. `--no-playlist` ist zwingend, sonst zöge ein `watch?v=X&list=Y` die ganze Liste. Das Vorschaubild wird als KLEINSTES ab 160 px gewählt, nicht das oberste Feld (das ist YouTubes 1280-px-maxresdefault)
- **Aufräumen** — `clean`: interaktiver Kategorien-Picker (Caches, Logs, Duplikate, Installer, Docker, Xcode …), s. u.
- **BPM-Detektor** — `bpm`: Live-Mikrofon-Tempoerkennung mit AAA-Visualizer, Enter pinnt (native Aufnahme via cpal → keine Wiedergabe-Aussetzer beim Start)
- **Equalizer** — `equalizer` (Alias `eq`): Live-Mikrofon-Spektrum-Visualizer, 28 log-skalierte vertikale Balken mit Peak-Hold-Markern; zeigt zusätzlich live BPM + dB und reagiert auf Beats (Shockwave, Flash, Bar-Punch, Funken); Enter pinnt (rot, Klick-außerhalb schließt nicht), Esc verlässt; teilt sich die native cpal-Aufnahme mit BPM/Disco (kein extra Permission-Flow), client-seitiges FFT via Web-Audio-AnalyserNode
- **Disco** — `disco`: beat-reaktive Hue-Lichtsteuerung vom Mikro (native Aufnahme via cpal → keine Wiedergabe-Aussetzer beim Start; teilt sich die Aufnahme mit dem BPM-Detektor)
- **Uptime** — `uptime`: animierte Live-Anzeige mit µs-Odometer
- **Wetter** — `weather [stadt]` / `wetter`: aktuelles Wetter, nächste 12 Stunden (3-h-Slots mit Temperatur, Zustand + Regenwahrscheinlichkeit, in der Ortszeit der gesuchten Stadt) + 5-Tage-Vorschau im Preview, mit wetter-passender Animation (Sonne mit rotierenden Strahlen, driftende Wolken, fallender Regen/Schnee, Blitz, Nebel). Standort per IP-Geolokalisierung (oder `weather berlin`); OpenWeatherMap, API-Key in Einstellungen → Wetter (oder Connect-Karte); R aktualisiert, ↑↓ scrollt, alle 10 min Auto-Refresh; metrisch/imperial umschaltbar. Städte-Autovervollständigung beim Tippen (`weather darm` → Darmstadt …): gebündelte Offline-Liste größerer Städte (diakritik-tolerant, nach Einwohnerzahl sortiert), Tab/→ füllt, Enter vervollständigt + zeigt an
- **Netzwerk-Monitor** — `snitch`: Apps mit Live-Verbindungen, Toggle blockt Internet best-effort via pf-Watcher (macOS, ein Admin-Prompt; kein echter Firewall)
- **Verbindungs-Weltkarte** — `snitch map`: laufende Outbound-Verbindungen auf Offline-Weltkarte mit Standort-Bögen von deinem Standort; aktive Transfers leuchten grün mit fließenden Paketen (Live-Durchsatz via nettop); Serverstandorte online per Geo-IP (nur öffentliche IPs). Voll zoom-/verschiebbar (Scrollen zoomt zum Cursor, Ziehen pant, Doppelklick, +/−/Reset, Tastatur), Hover-Infobox, City-Labels. Beim Tippen von `snitch` sind Blocker + Karte als zwei Zeilen sichtbar
- **Song-Erkennung** — `shazam`: nimmt ~10 s vom Mikrofon auf, erzeugt einen Shazam-Fingerprint und identifiziert den Song (Cover, Titel, Künstler, Album, Genre, Jahr) mit Buttons zum Öffnen in Shazam, Spotify oder YouTube; jeder Treffer wird lokal in einer History gespeichert (Listen⇄History-Umschalter, durchsuchbar über Titel/Artist/Album/Genre). Plattform-Buttons als Marken-Icons (Shazam/Spotify/YouTube); Songtext-Button (L) zeigt Lyrics in-app via lrclib.net (Browser-Fallback; Copy-Button / `C` kopiert den sichtbaren Text, Original oder +DE-Paare). `shazam history` öffnet die History direkt. Aufnahme läuft nativ (Rust/cpal, am Webview vorbei → keine Wiedergabe-Aussetzer). Die Erkennung läuft im Backend weiter, wenn man das Overlay schließt/wegnavigiert — sie speichert den Treffer und zeigt bei geschlossenem Panel einen Status-Toast; erneutes Öffnen dockt an die laufende Erkennung an statt neu aufzunehmen. Spotify-Button öffnet den Song in der Spotify-App (falls installiert), sonst im Web-Player. Voll nativ in Rust, keine Datei/Python/ffmpeg
- **Opener** — `opener`: deutsche Anmachsprüche (versteckt)

### Inline-Panels (rechte Vorschau-Spalte)

- **Helligkeit** — `brightness`/`bri`: Slider pro Monitor; auf XDR-Displays über 100 % (EDR-Boost)
- **Audio-Ausgabe** — `sound`/`audio`: Ausgabegerät wechseln + System-Lautstärke-Slider
- **Philips Hue** — `hue`: Lampen steuern (an/aus, Helligkeit, 8 Farben, Tastatur-Navigation), Bridge-Pairing lokal
- **System-Stats** — `stats`: CPU/RAM/Akku/Watt/Temperaturen/Lüfter/Disk/Netz, Live + Verlauf (1h–7d)
- **Claude-Tokenverbrauch** — `tokens` (Alias `usage`): Overview/Kosten, Projekte⇄Sessions und Modelle aus dem lokalen Token Tracker (`localhost:5010`); Default Today (parallel fetch, Sessions lazy); leerer-Today-Hinweis mit Gestern-Peek; Zeitraum 7d/30d wie Tracker; Cache-Tokens ein-/ausblendbar; Hinweis-Card wenn Tracker nicht läuft
- **Iris** — `iris [dB]`: Mikrofon-Pegelwache; Zahl tippen startet sofort (`iris 50`, ohne Enter; Zahl ändern stellt live nach, Zahl löschen schaltet live aus) — über der Schwelle stroboskopieren weiche Lichtflares und Streifen im Randband plus Vollrand-Blitze — **beat-synchron**: ein Rust-Onset-Detektor (portierter BpmAnalyzer-Kern, Kick-Band + SuperFlux-Gate) feuert Salven auf jede erkannte Kick, alle Monitore synchron, stärkere Kicks = härtere Blitze; ohne Beat fällt es auf den Zufallstakt 0,55–1,7 s zurück (Peaks bis 0,98, warme Palette rot→bernstein→weiß) über einem gedämpften Randfeld — die Bildschirmmitte bleibt komplett frei; Schwelle live über die Suchzeile (`iris 60`), `iris`/`iris 0` + Enter schaltet aus; alle Monitore, klick-durchlässig, ohne Text/Fokus, bleibt bei geschlossenem Popup sichtbar. `iris 55` scharf, `iris` togglet, `iris 0` aus; Schwelle in SPL wie raspi5 (dBFS+90), Live-Pegel mit Schwellenmarke zum Kalibrieren, läuft bei geschlossenem Popup weiter
- **boom** — systemweiter 10-Band-EQ + Lautstärke-Boost + 20 Presets + 5 Effekte (virtueller Audio-Treiber); Idle-Gate lässt den Mac schlafen; Mute-Transparenz: boom Audio übernimmt beim (Re-)Bridging den Mute-Zustand des echten Geräts (kein unsichtbares Klebe-Mute mehr), Panel warnt sichtbar „Output is muted“ mit Unmute-Button
- **Clean-Picker** — Verzeichnis-Zeilen (Größe absteigend) unter Kategorie-Überschriften, einzeln abwählbar; zweistufiges Enter löscht nur die Auswahl; Scan/Löschen laufen nach Esc im Hintergrund weiter (Toast bei Fertig; Reopen reconnectet)

### Aufräumen (clean) im Detail

- **Kategorien** — eigener Cache, OS-Temp, Browser-Caches, komplettes ~/Library/Caches, Logs (inkl. System/PM2/npm/Editor), Editor-Caches (VS Code/Cursor), Dev-Caches (npm/pnpm/Gradle/Maven/Cargo/rustup/uv/Android/NuGet), Xcode (DerivedData + iOS DeviceSupport), Duplikate in Downloads (SHA-256, Ältestes bleibt), alte Installer, Papierkorb, Docker-Build-Cache (via docker builder prune)
- **Verwaiste Build-Artefakte** — stale node_modules / Rust-target aus toten Projekten (Projekt-Ordner + Schwelle in Tagen einstellbar; nur wenn package.json bzw. Cargo.toml daneben liegt)
- **JetBrains-Reste** — Support-/Log-Ordner deinstallierter oder überholter IDE-Versionen (neueste Version bleibt immer)
- **Xcode-Archive** — opt-in, mit Warnung: enthalten die dSYMs (danach keine Symbolisierung alter Crash-Reports mehr)
- **Tool-Kategorien** — brew cleanup, pnpm store prune, xcrun simctl delete unavailable (nur wenn installiert, nie mit sudo; Vorschau per Dry-Run)
- **Sicherheit** — Allowlist-only, Canonicalize-Check pro Löschung, keine Symlinks, Altersfilter, Dry-Run + explizite Auswahl

### Zeiterfassung (Timesheet, macOS)

- **Tracking** — `track on/off`: event-basiert nach Fenster-Fokus, Idle-Auto-Pause, überlebt Neustarts
- **Timesheet-Tab** — Tag/Woche, Slots (Default) / By-App / Timeline (Gantt), Bearbeiten/Mergen/Cleanup
- **Slots** — die rohen Fokus-Fragmente (Hunderte à 1–30 s) werden nicht-destruktiv zu wenigen buchbaren Projekt-Blöcken verdichtet: Projekt-Inferenz (expliziter Tag → Claude-cwd → Titel/URL-Token → zeitliche Nachbarschaft), kurze Fremd-Unterbrechungen absorbiert, Lücken gebrückt, auf Viertelstunden gerundet (nächste, nie aufblähend); jeder Slot behält seine Event-IDs zur Rückverfolgung
- **BCS-Übergabe** — „An bcsbook": Slots per Projekt→Shortcut-Map an bcsbooks lokale API (`/api/suggestions/save`) zum Review + Verbuchen in BCS; liest den Tag erst + merged (kollisionsfreie Slots ergänzt, bestehende git/presence/manuelle Zeilen bleiben; Replace nur explizit), ungemappte Projekte werden gemeldet
- **Private-Apps-Filter** — Spotify, WhatsApp, Telegram, Netflix, Instagram, Steam usw. (kuratierte Default-Liste inkl. Browser-Hosts) werden aus Slots + CSV/HTML-Export gefiltert; nicht-destruktiv (Roh-Timeline bleibt), Master-Toggle + editierbare Liste im Slots-⚙ (Zeile entfernen = App wieder erfassen), Einmal-Seed
- **Export mit Konsolidierung** — CSV + HTML enthalten neben den Rohevents eine überlappungsbereinigte Per-Projekt-Konsolidierung (Intervall-Union pro Projekt → korrekt auch bei parallelen Claude-Sessions; HTML-Karte „Consolidated per project", CSV-Block: Datum · Projekt · Stunden · Erste · Letzte · Apps)
- **Projekte** — Zeiträume per Drag zuweisen, Projekt-Export für Kundenabrechnung
- **Claude-Code-Erkennung** — Zeit + Tokens pro Projekt
- **Browser-Extension** — aktiver Tab (Host/Titel) via Loopback-WebSocket, token-authentifiziert
- **Privacy** — Titel/URLs verschlüsselt at rest, Denylist, Retention, CSV- + HTML-Export

### System-Extras

- **Fenster-Snapping** — Fenster an Bildschirmkante ziehen → Hälften/Maximieren (opt-in, macOS); Maximieren merkt das Fenster beim Drag und wendet es beim Loslassen an (nicht erneut per Fokus — sonst blieb der Preview stecken und das Fenster unverändert)
- **Fenster-Palette** — Presets + Hex-Wabengitter zum Aufziehen (opt-in, macOS); Auslöser wählbar: grüner Knopf per Hover (Standard; ab macOS 15 stellt sich die Palette NEBEN das System-Kachelmenü statt darauf — der Weg zur Palette schließt es), Titelleiste + ⌃⌥ oder nur per Kurzbefehl (Ctrl+Shift+Alt+W, wirkt aufs fokussierte Fenster und funktioniert in jedem Modus)
- **Touchpad-Gesten** — 3-Finger-Swipe = Lautstärke (5-%-Raster), 3-Finger-Tap = Mute (Settle-basiert: sequenziell gemeldete Einzel-Touches werden zu EINEM Tap zusammengefasst — toggelt exakt einmal), Tip-Tap (1 Finger liegt, 2. tippt links/rechts) = Tab-Wechsel pro App; Palm-Rejection (opt-in). Tipp-Schutz (Typing Guard, Default an): Lautstärke/Mute werden unterdrückt, wenn beim AUFLEGEN der Finger oder während der Berührung in den letzten 0,5 s eine echte Taste gedrückt wurde (Handballen beim Tippen = häufigste Fehleingabe; Tab-Wechsel ausgenommen) — ein Tastendruck NACH dem Abheben zählt nicht (v0.166.1), und ENTMUTEN wird nie verworfen (ein verworfenes Entmuten ließe dich stumm sitzen). Mute-Toggle entscheidet seit v0.169.1 über den GANZEN Pfad (Standardausgabe ODER ein boom-Bridge-Gerät stumm ⇒ Entmuten), Entmuten löscht alle Geräte, der Zustand wird zurückgelesen — kein Hängenbleiben mehr, das nur die Systemeinstellungen lösen. Lautstärke ändern (rauf ODER runter: Geste, Shift+↑/↓, Slider) hebt ein bestehendes Mute auf (v0.169.2, wie die Hardware-Lautstärketasten) — pfad-bewusst inkl. Mute hinter boom. Einzelschalter je Geste (Lautstärke/Mute/Tip-Tap) in den Settings. Tip-Tap-Fehlauslösungen (v0.167.0): BEIDE Finger werden über die ganze Geste kumulativ auf Bewegung geprüft (vorher nur der Ruhefinger, und der nur Bild-zu-Bild — ein langsamer Zwei-Finger-Scroll rutschte durch, und Daumen-verankertes Ziehen galt als Tap); Ruhe- und Tippfinger im selben Bild abgehoben = Zwei-Finger-Tap (macOS-Sekundärklick) und feuert nicht mehr; Mindestabstand 0,03→0,06 (darunter überlappen die Kontaktflächen) und Höhentoleranz 0,55→0,40. Verworfene Versuche nennen ihren Grund im Debug-Log. Latenz-Pass v0.110.0: entschlossene 3-Finger-Swipes feuern MITTEN in der Bewegung (statt erst beim Abheben), Volume/Mute laufen direkt über CoreAudio (µs statt ~300/600 ms osascript, mit Fallback) — Gesten wirken damit unmittelbar. Tap-vs-Swipe per Richtungs-Kohärenz (nicht nur Magnitude): ≥2 Finger kohärent bewegt = Swipe (auch schwache ~0.08 → Lautstärke statt versehentlichem Mute), Pinch/Spreizen fällt raus, Tap ist quasi stationär (max. 1 driftender Finger) — behebt das versehentliche Muten beim Swipen ohne den Swipe zu brechen Selbstheilung: die Multitouch-Registrierung stirbt bei Kurz-Schlaf/Deckel/Display-Sleep lautlos (Capture läuft weiter, liefert aber nie wieder Frames) — ein Liveness-Wächter erkennt „45 s keine Frames, obwohl der Zeiger benutzt wird“ und baut die Erfassung binnen ~1 min neu auf (Backoff 60 s → max 15 min; kein App-Neustart mehr nötig).
- **Keep-Alive** — App startet bei Login und wird bei Absturz/Quit automatisch neu gestartet (opt-in)
- **Autostart** — Start bei Login (Tray/Settings)
- **Status-Toasts** — schwebende Bestätigungen (Timer, Wakelock, Würfel, Clean, erkannter Song via Shazam) am Cursor-Monitor

### Backup & Einstellungen

- **Voll-Backup** — Export/Import der ganzen App (Verlauf, Snippets, Notes, 2FA, Settings, Timesheet opt-in) als eine Datei
- **Backup-Verschlüsselung** — optional AES-256-GCM + Argon2id-Passwort
- **Snippet-Export** — alle Snippets + Gruppen als JSON-Datei sichern (Snippets-Tab ⬇), um sie in einer anderen App zu bearbeiten
- **Snippet-Import per Drag & Drop** — JSON-Datei auf den Snippets-Tab ziehen; erkennt Snippet-Datei wie auch Voll-Backup (importiert daraus NUR Snippets + Gruppen)
- **Snippet-Roundtrip** — Backup-JSON trägt die Gruppe als Name; beim Import setzt "category":"" ein Snippet explizit auf ungruppiert, fehlendes/null lässt die Gruppe unangetastet
- **Cloud-Sync mit cue** — bidirektionaler Snippet-Sync mit cue.celox.io (Settings → Cloud-Sync): Token aus cue, alle 60 s + nach jeder Änderung; Live-Status-Chips mit Haken (Server erreichbar ✓ · Token gültig ✓ · letzter Sync ✓), Verbindungstest-Button, Status aktualisiert sich per Event nach jedem Sync-Zyklus
- **Snippet-Versionierung** — jedes Snippet hat eine Versionsnummer (vN, cue-kompatibel); zählt nur bei Inhaltsänderung (Kürzel/Titel/Body) hoch, Gruppen-Änderungen nie; Merge per max() beim Import
- **Zuletzt-gewählt überlebt Neustarts** — boom merkt sich das letzte Ausgabegerät (UID) und re-targetet es nach unsauberem Exit statt auf die MacBook-Speaker zu fallen; Helligkeits-/EDR-Level werden pro Display persistiert und beim App-Start wieder angewandt
- **Popup-Verhalten** — Toggle ganz oben in den Settings: „Click outside closes the popup" — aus = Overlay bleibt bei Klick außerhalb offen (Schließen per Esc — ein offenes Inline-Panel schluckt das erste Esc als Zurück, dann 2× — oder Popup-Hotkey); Esc schließt dabei auch OHNE Fokus aufs Overlay (macOS, Escape-Watcher) und wird dabei KONSUMIERT (das schließende Esc erreicht die darunterliegende App nicht; one-shot, spätere Esc gehen normal durch) — unabhängig von der Einstellung: sobald IR sichtbar ist, schluckt es das Esc (bei Einstellung AN greift das in den Momenten, in denen IR noch sichtbar ist, z. B. direkt nach dem Öffnen); wirkt sofort, persistiert. Im „Click outside"-AUS-Modus (Overlay bleibt unfokussiert offen) pastet **Enter** trotzdem den ausgewählten History-Clip / Snippet und schließt das Overlay danach — der Escape-Watcher fängt zusätzlich Return/Enter, aktiviert die markierte Zeile per `popup-activate-selected` und konsumiert die Taste (kein Zeilenumbruch in der App darunter); bei „Click outside"-AN wird Enter nie geschluckt
- **Pin-Filter** — Toggle-Button in der Clipboard-History-Toolbar: zeigt nur die angepinnten Clips (★), blendet Befehle/Snippets/Launcher aus; Suchfeld filtert weiter innerhalb der Pins; zeigt die Pin-Anzahl, leuchtet aktiv in Akzentfarbe, wird beim Schließen des Popups zurückgesetzt
- **Themes** — Dark/Light/System mit MD3-Expressive-Motion (u. a. gleitender Tab-Indikator, gestaffelte Listen-/Settings-Entrances, Preview-Crossfade, Fokus-Halo, atmende Empty-States, Success-Pops — alle reduced-motion-sicher)
- **Popup-Animation** — CRT-Röhren-Einschalt-/Ausschalt-Effekt beim Öffnen/Schließen des Popups (Punkt → Scanline → aufziehen; reduced-motion → sofort). Dauer einstellbar in Settings → Appearance → „Popup animation": Presets (Off/150/250★/400/650) + freies ms-Feld, 0 = aus, sonst 80–900 ms; das Ausschalten wird daraus abgeleitet (76 %, immer kürzer als das Einschalten — das Popup wartet beim Schließen darauf) und wird bewusst NICHT separat eingestellt
- **Popup-Größe** — Small/Medium/Large
- **Features-Tab** — durchsuchbarer In-App-Katalog aller Funktionen mit Live-Shortcuts

### Versteckte Spiele (Suchleiste)

- **`getshaky`** — Pong · `rockthebox` — Snake (Wände töten) · `rockthabox` — Snake (Wrap) · `spacer` — Space Invaders · `learningtofly` — Flappy Bird (alle mit Highscore + Spielstand-Resume)

### Plattformen

- macOS (primär, voll verifiziert) · Windows · Linux (Ubuntu/Debian; einzelne Features OS-gebunden, Commands sind plattform-gegated)
- **Geräte-Sync** — `Einstellungen → Geräte-Sync` (opt-in, Standard AUS): gleicher Datenstand auf mehreren Macs über einen gemeinsamen Ordner (Default iCloud Drive), passwortverschlüsselt, Passwort im Schlüsselbund. Synchronisiert Verlauf, Snippets+Gruppen, Notizen, 2FA nur auf Wunsch; Einstellungen und Zeiterfassung nie. Nur additiv — ein leerer Stand kann einen gefüllten nie überschreiben, Löschungen wandern deshalb bewusst nicht mit (v0.139.0)
- **Speicher-Kinderliste** — unter dem Sunburst listet `disk` JEDES Kind des aktuellen Ordners (größte zuerst, mit Anteil und Größe); das ist der Weg in Ordner, deren Kreissegment zu dünn zum Anklicken ist (2-MB-src neben 20-GB-target). ↑↓ wählen, Enter öffnet (v0.140.0)
- **Speicher-Sammler** — Löschen im `disk`-Panel als DaisyDisk-Sammler, tastaturzentriert (v0.169.0): Leertaste/＋ nimmt die gewählte Zeile (Ordner UND Datei, über Ebenen hinweg) in den Sammler, Leiste zeigt Anzahl + Gesamtgröße, ⌘⌫ (Finder-Geste) verschiebt alles in den Papierkorb — zweistufig (armieren → bestätigen, Esc/Auswahlwechsel/4 s entwaffnen); leerer Sammler ⇒ ⌘⌫ trifft die gewählte Zeile. KEIN Neu-Scan danach: Baum wird lokal geprunt, Drill-Position bleibt (per NAME, nicht Index — ein entferntes Geschwister verschiebt Indizes), Volume-Leiste bleibt (Platz wird erst beim Leeren des Papierkorbs frei). Nur Papierkorb, kein endgültiges Löschen. Fehlgeschlagene Pfade stehen mit Grund unter dem Sammler und bleiben drin. ＋ an Segment/Datei sammelt nur, löscht nie.
- **Speicher-Rechtsklick** — Sekundärklick auf ein Ring-Segment öffnet ein Kontextmenü, das den getroffenen Ordner/die Datei mit vollem Pfad nennt und ihn per Klick sofort in den Papierkorb verschiebt (Finder-Sekundärklick, wiederherstellbar); danach aktualisiert sich die Ansicht. Esc oder Klick daneben schließt das Menü (v0.173.0)
- **Speicher-Sunburst füllt die Preview** — die SVG-viewBox wird aus der Ring-Geometrie ABGELEITET (2×(hubR+rings·ring)+Rand), skaliert linear auf die Preview-Breite und schneidet den äußeren Ring bei keiner Fenstergröße mehr ab (Fix des festen 320er-viewBox, der 28 px je Seite abschnitt; v0.173.0)
- **Speicher-Leerzustand** — ein leerer Ordner zeigt eine klare „Ordner ist leer"-Karte statt eines nackten „0 B"-Rings; `disk /home` (leerer macOS-autofs-Mount) öffnet automatisch den Persönlichen Ordner (~) mit Hinweis; ein NICHT lesbarer Ordner (Full Disk Access fehlt) zeigt eine „Kein Zugriff"-Karte mit Knopf „Full Disk Access öffnen" (öffnet die Systemeinstellungen) + „Erneut scannen" (v0.173.1–v0.174.0)
- **loc-Navigation** — anklickbare Pfadleiste + Unterordner-Reihe zum Tieferzählen, ⌫ eine Ebene höher, R zählt den aktuellen Ordner neu (v0.140.0)
- **loc-Export** — Report als HTML, PDF oder PNG nach ~/Downloads (und im Finder gezeigt); ein einziger HTML-Renderer in Rust speist alle drei Formate, das Dokument ist eigenständig (eingebettetes CSS, kein Skript, keine Netz-Anfrage) (v0.141.0)
- **PageSpeed** — `pagespeed <url>`: Google PageSpeed Insights in der Vorschau, Desktop und Mobil parallel geholt und nebeneinander gezeigt (Performance/Barrierefreiheit/Best Practices/SEO + FCP/LCP/TBT/CLS/Speed Index, Lighthouse-Farbbänder); Export als HTML oder PDF mit BEIDEN Ansichten in einem Dokument; API-Key in Einstellungen → PageSpeed (Kontingent- und IP-Beschränkungs-Fehler werden im Klartext benannt) (v0.142.0)
- **Report-Design** — alle Exporte (loc, pagespeed, repo, Timesheet) teilen EIN Stylesheet: hell und druckorientiert, A4, Zahlen tabellarisch und rechtsbündig, Haarlinien statt Kästen, Anteilsbalken in der Tabellenzeile, kuratierte Serienfarben; PDF behält dank print-color-adjust alle Farbflächen (v0.143.0)
- **Doku-Gewährleistung** — alle Zahlen in README-Abzeichen werden aus dem Repo berechnet (Befehle, Doku-Seiten, Rust-Module, Crates, Test-Zahlen) und in CI gegengeprüft; der Referenz-Index verlinkt nachweislich jede Seite unter docs/ und keine tote (v0.144.0)
- **boom-Adoption** — „boom Audio“ von Hand als Ausgabegerät wählen (Ton-Menü/Systemeinstellungen) SCHALTET boom EIN: ein permanenter Default-Output-Wächter erkennt die Wahl, aktiviert die Brücke und routet zum zuletzt genutzten echten Gerät — vorher war die Wahl bei ausgeschaltetem boom reine Stille ohne Beobachter; ein echtes Gerät wählen bleibt No-op, ein passiver Toast benennt das Zielgerät (v0.160.0)
- **2FA-Markenzeichen** — jeder Eintrag im 2fa-Overlay, jede otp/2fa-<issuer>-Zeile der Hauptliste und die TOTP-Vorschau tragen das Icon ihres Issuers (geteilte selbstladende Komponente TotpBrandIcon) (volles Simple-Icons-Set 16.29.0 als lazy geladener Chunk, Matching über Titel/Slug/Alias/Domain-Label/erstes Wort); unbekannte Issuer bekommen ein deterministisches Monogramm statt eines erfundenen Zeichens, Markenfarbe auf hellem Chip in beiden Themes (fast-weiße Marken kippen auf den dunklen Chip) (v0.161.0)
- **Animations-Stufe** — Settings → Appearance → „Animations": Full / Reduced / Off; Full folgt zusätzlich dem OS-„reduce motion"-Hinweis, Reduced macht alle Übergänge sofort und überspringt die CRT-Röhre, Off deaktiviert jede dekorative Animation im Popup (Countdown-Ringe/Fortschritt laufen weiter — .anim-keep); greift live in allen Fenstern ohne Neustart (Event animation-stage-changed) (v0.163.0)
- **Animations-Layer** — durchgängige, scharfe CSS-Bewegungssprache im Popup (Tokens 80/100/130/200 ms, ease ohne Overshoot): EIN gleitender Selektionsindikator hinter der Liste (rose über Command-Zeilen, sonst Akzent; snapt bei gehaltener Pfeiltaste und bei Neusortierung), gleitende Tab-Pille, Panel-/Preview-Crossfades, 80-ms-Enter-Fade getippter Zeilen (nie Exit), Modals ohne Spring, Banner-Unfold, Settings-Farb-Glides, animierter Theme-Wechsel; @starting-style feature-detected (altes WebKit: sofort statt Halbzustand) (v0.163.0)
- **Settings-Suche** — Einstellungen direkt aus der Hauptsuche erreichen (wie macOS/Android): ab 3 Zeichen erscheinen passende Settings-Sektionen als Sprungzeilen (max 2, nach dem App-Treffer; nur exakte/Präfix-/Wortanfang-Treffer — kein Fuzzy-Rauschen in der Clip-Suche), Enter öffnet den Settings-Tab gescrollt zur Sektion mit kurzem Highlight; DE+EN-Synonyme aus derselben Registry wie der settings-Befehl (v0.164.0)
- **Snap-Verweilzeit** — der Fenster-Snap-Vorschlag erscheint erst, wenn der Cursor am Rand VERWEILT (Default 350 ms; Settings → Window snapping → „Suggestion delay", 0 = sofort wie früher): ein Fenster zügig nahe der Kante zu platzieren löst kein Window-Management mehr aus, erst das bewusste Innehalten; ohne sichtbaren Vorschlag snappt auch das Loslassen nicht (v0.165.0)
- **DB verdichten** — Settings → Clipboard history zeigt Größe + Anteil toter Seiten der history.db und verdichtet per „Compact now" (VACUUM + inkrementelles Auto-Vacuum); automatisch stündlich ab 10 % Totraum, erster Lauf 5 min nach Start — die DB war auf 331 MB mit 39 % Leerraum gewachsen (v0.166.0)
- **Cursor-Wrap („Infinity Monitor")** — der Mauszeiger taucht am gegenüberliegenden äußeren Rand der Bildschirm-Anordnung wieder auf (Pac-Man-Wrap), spart weite Trackpad-Wische über breite/mehrere Displays; per Default AN, in Settings → Cursor wrap-around abschaltbar + konfigurierbar (aktive Ränder, Ecken-Totzone für Hot Corners, Wrap-während-Ziehen). Multi-Monitor-korrekt: es wird NUR an echten Außenrändern gewrappt (ein Pixel dahinter liegt auf keinem Display) — innere Nahtstellen zwischen benachbarten Monitoren nie, macOS führt den Zeiger dort selbst hinüber. macOS-only, braucht Accessibility (v0.182.0)


## Install

1. **Download for your system** — DMG for Macs with Apple silicon, MSI installer or portable exe for Windows, .deb or AppImage for Linux.
2. **Allow the first launch** — On macOS, move the app to Applications and run `xattr -dr com.apple.quarantine /Applications/InspectorRust.app` once. On Windows, SmartScreen may ask — choose *More info → Run anyway*.
3. **Press Ctrl+Space** — The popup opens wherever you are. On macOS, grant Accessibility once so pasting and the expander can type for you.

## Verify

- `InspectorRust_0.185.0_aarch64.dmg` — SHA-256 `07e7349b04fe08ee6519716c10621c7e026341bd9de825679d8f22aee6deebc2`
- `InspectorRust_0.185.0_x64_en-US.msi` — SHA-256 `58fb17d95d29fef0f67734f330a45b7bf203604d2718b71b00766fdfad33acc3`
- `inspector-rust.exe` — SHA-256 `64c92c28cff308f1b1012081e2b533a013bc50af9ed57457d887195c199e7dc5`
- `InspectorRust_0.185.0_amd64.deb` — SHA-256 `d4d1590caa4617fdda3c46724c8c74d23e41b61732cafd9e4ff4c88b030bb548`
- `InspectorRust_0.185.0_amd64.AppImage` — SHA-256 `554f4d17ca7d2468d1185665d560620b4f8b52826448c9fe8277aede145490c4`

- Compare the file with the SHA-256 shown here: `shasum -a 256` on macOS and Linux, `Get-FileHash` in PowerShell.

## FAQ

**Is Inspector Rust free?** Yes. It is free and open source under the MIT licence, with no account, no ads and no telemetry.

**Does it send my clipboard anywhere?** No. The history stays in a local SQLite database, and its contents are encrypted at rest. The app only goes online for commands that need it, such as weather or translation, and only when you run them.

**Which systems does it run on?** macOS 11 or later on Apple silicon, Windows 10 and 11 (x64), and Linux x86-64 (.deb for Ubuntu 24.04+ and Debian 13, or the AppImage). There is no build for Intel Macs, because the on-device background-removal model's runtime has no Intel macOS binary.

**macOS says the app is damaged. What now?** It is not. The release is not notarized, so macOS marks the download as quarantined. Move the app to Applications and run xattr -dr com.apple.quarantine /Applications/InspectorRust.app once in Terminal.

**Can I change the hotkey?** Yes. Ctrl+Space is the default; the popup hotkey, a second clipboard-history hotkey and the feature hotkeys for OCR, screenshots, colour picker and recording can all be changed in the settings.

**How do I back up my data?** Settings has a password-protected export and import of history, snippets, notes, 2FA entries and settings, plus optional scheduled backups into a folder of your choice.

## Limits

- macOS builds are Apple silicon only and not notarized; the first launch needs one Terminal command.
- Some features are macOS-only (for example the network monitor and touchpad gestures).
- Linux: global shortcuts may need to be bound in the desktop settings under Wayland.

## Links

- Source code: https://github.com/pepperonas/inspector-rust
- Changelog: https://inspector-rust.celox.io/changelog.md
- Licence (MIT): https://github.com/pepperonas/inspector-rust/blob/main/LICENSE
- Support the project: https://www.paypal.com/donate/?business=martin.pfeffer@celox.io&currency_code=EUR&item_name=Inspector%20Rust
- Author: Martin Pfeffer, https://celox.io — Imprint https://celox.io/impressum/ · Privacy https://celox.io/datenschutz/
