Normale Ansicht

Emacs als Markdown-Editor

03. Juni 2026 um 12:54

Wer mein Linux-Buch gelesen hat weiß, dass ich nicht im Vi-Lager zuhause bin, sondern zu den Emacs-Fans zähle. Beim Programmieren verwende ich diverse Editoren und IDEs, von VSCode über IntelliJ bis hin zu Xcode. Aber längere Texte (sprich: Bücher) schreibe ich seit Jahrzehnten ausschließlich mit dem Emacs. Ich habe ein paar halbherzige Versuche mit anderen Editoren gemacht, aber ich bin immer wieder zurückgekommen.

Meine Emacs-Liebe hat weniger mit der Großartigkeit dieses Programms zu tun als viel mehr damit, dass ich mir im Laufe der Zeit ein eigenes Setup mit Tastenkürzeln und Zusatzfunktionen gebastelt habe. Davon bin ich jetzt abhängig, meine Finger wollen sich nicht mehr umgewöhnen.

Eine Markdown-Datei aus meinem Scripting-Buch im Emacs. Beachten Sie, dass die Listenpunkte intern zwar sehr lange Textzeilen sind, dass diese aber umbrochen und richtig eingerückt angezeigt werden. Der Umbruch ist auf max. 100 Zeichen limitiert, passt sich aber automatisch an eine kleinere Fensterbreite an.

Die Motivation für diesen Blogbeitrag ist die immer wiederkehrende Frage, womit ich meine Markdown-Texte verfasse. Vielleicht finden andere Emacs-Fans in der nachfolgenden .emacs-Datei Ideen, die sie noch nicht kennen; vielleicht schreibt mir auch jemand im Forum, welches Feature ich bisher übersehen habe.

Dieser Beitrag ist aber keinesfalls ein Versuch, Sie vom Emacs zu überzeugen. Ein Neustart heute bei Null — da würde ich höchstwahrscheinlich bei einem deutlich moderneren Programm landen (möglicherweise bei zed). Dieser Text will Ihnen auch nicht meine Tastenkürzel aufzwingen. Die sind im Laufe der Zeit eher zufällig entstanden. Aber dieser Teil von .emacs lässt sich ja am einfachsten anpassen.

Die Datei .emacs

Die Konfiguration des Emacs erfolgt in der Datei .emacs. Die Anweisungen dort müssen in der Programmiersprache Elisp formuliert werden. Das ist die Emacs-Variante der heute ansonsten kaum noch gebräuchlichen Sprache Lisp. Früher war Elisp eine Hürde für viele Emacs-Einsteiger, und in einigen frühen Auflagen meines Linux-Buchs hatte ich sogar ein kurzes Elisp-Kapitel untergebracht. Heute sagen Sie Claude oder einem anderen KI-Tool, was Sie erreichen wollen, schon bekommen Sie den erforderlichen Code. (Manchmal klappt es erst im zweiten oder dritten Versuch.) Dank KI ist die Elisp-Syntaxhürde also überwunden.

Der Emacs liest .emacs automatisch beim Start. Spätere Änderungen gelten daher erst mit dem nächsten Start oder indem Sie die geänderten Zeilen markieren und mit Alt+X eval-region Return ausführen.

Meine Konfiguration

Die ersten Zeilen im folgenden Listing aktivieren einige allgemeine Einstellungen. cua-mode erlaubt die vertrauten Tastenkürzel Strg+C, Strg+X und Strg+V für Kopieren, Ausschneiden und Einfügen. Im originalen Emacs gibt es dafür andere Kürzel, die parallel aktiv bleiben. save-place-mode bewirkt, dass der Emacs die letzte Cursor-Position in jeder geöffneten Datei dauerhaft speichert. Damit das Arbeitsverzeichnis nicht mit Backup-Dateien übersät wird, landen Emacs-Backups gesammelt in ~/.emacs.d/backups/.

Moderne Emacs-Konfigurationen laden Erweiterungspakete über package.el nach. Das Standard-Repository des Emacs enthält nur wenige Pakete; deshalb binde ich MELPA ein, das mit Abstand größte Community-Repository mit Tausenden von Erweiterungen. Beim ersten Start auf einem neuen Rechner aktualisiert der Emacs automatisch die Paketliste (package-refresh-contents), sodass alle benötigten Pakete sofort installiert werden können.

Das Makro use-package bündelt je ein Paket zusammen mit seiner Konfiguration, Hooks und Tastenkürzel-Bindungen in einem einzigen Block. Die Einstellung use-package-always-ensure t sorgt dafür, dass fehlende Pakete automatisch nachinstalliert werden, ohne manuelles Eingreifen.

Der markdown-mode aus dem gleichnamigen Paket steht im Zentrum des Setups. Der Modus hebt Markdown-Syntax farbig hervor und aktiviert über Hooks mehrere Begleitmodi: visual-line-mode sorgt für weiche Zeilenumbrüche ohne harte Zeilenenden in der Datei, display-line-numbers-mode blendet Zeilennummern ein, und visual-fill-column-mode begrenzt die Textbreite auf 100 Zeichen.

adaptive-wrap ist ein kleines, aber feines Detail: Wenn eine Zeile weich umgebrochen wird, rückt die Folgezeile so ein, dass Listenelemente (* oder -) korrekt untereinander ausgerichtet bleiben. unfill ergänzt den eingebauten Befehl fill-paragraph (bei mir F4): Statt einen Absatz auf mehrere kurze Zeilen zu verteilen, fasst unfill-paragraph alle Zeilen eines Absatzes wieder zu einer einzigen langen Zeile zusammen. Das ist hilfreich, wenn Markdown-Quellen von anderen Tools weiterverarbeitet werden.

Das Paket vertico erweitert den Emacs-Minibuffer um eine vertikale Auswahlliste (siehe den folgenden Screenshot). Beim Wechsel zwischen Buffern (F1) sehe ich alle offenen Dateien auf einen Blick inklusive Dateigröße, Modus und Pfad — letzteres dank marginalia, das die Listeneinträge um nützliche Zusatzinformationen ergänzt. orderless macht die Suche komfortabler: Ich kann mehrere Suchbegriffe mit Leerzeichen trennen und in beliebiger Reihenfolge eingeben.

Die benutzerdefinierte vertico-sort-override-function ändert die Sortierreihenfolge im Buffer-Switcher: Statt alphabetischer Reihenfolge erscheinen die zuletzt verwendeten Buffer ganz oben in der Liste. Bei vielen Dateien finde ich die zuletzt verwendeten Datei schneller.

swap-char (F11) vertauscht die zwei Zeichen an der Cursor-Position. Tippfehler wie getsern statt gestern lassen sich damit sofort korrigieren: Cursor auf das erste falsche Zeichen, einmal F11, fertig.

change-case (F12) wechselt die Groß- bzw. Kleinschreibung des Zeichens unter dem Cursor. change-word-case (F9) tut dasselbe für den ersten Buchstaben des aktuellen Worts, unabhängig davon, wo im Wort der Cursor gerade steht.

point-to-register-1 (F5) / jump-to-register-1 (F6): Mit F5 speichere ich die aktuelle Position, mit F6 springe ich dorthin zurück. Beim Sprung wird gleichzeitig die neue Position gespeichert, sodass ich mit wiederholten F6-Drücken zwischen zwei weit entfernten Textstellen hin- und herspringen kann. Ich finde das praktisch, wenn ich parallel an zwei Stellen eines langen Dokuments arbeite.

expand-abbrev-or-dabbrev (F3) versucht zunächst, eine gespeicherte Abkürzung zu expandieren. In .abbrevs_defs habe ich einige solche Abkürzungen gespeichert, z.B. ms für »Microsoft« oder rhel für »Red Hat Enterprise Linux«. Falls keine passt, greift dabbrev-expand und vervollständigt das angefangene Wort anhand von Vorkommen im selben Buffer. Praktisch für lange Schlüsselwörter.

Beim Einlesen der .emacs-Datei lädt der Editor automatisch alle erforderlichen Pakete herunter. Wenn dabei Download-Fehler auftreten, müssen Sie eventuell den MELPA-Cache aktualisieren. Dazu führen Sie Alt+X package-refresh-contents Return aus und starten den Emacs dann neu.

;; Datei ~/.emacs

;; ======== Grundeinstellungen ====================================

(cua-mode 1)                               ;Cut&Paste mit Strg+C/X/V
(setq inhibit-startup-message t)           ;kein Emacs-Startbildschirm
(setq screen-preserve-screen-position t)   ;zurück zur letzten Zeile
(setq scroll-step 5)                       ;bei Scrollen Sprünge von 5 Zeilen
(column-number-mode 1)                     ; ... Spaltennummern in der Statusleiste
(abbrev-mode 0)                            ;kein automatisches expand-abbrev
(setq require-final-newline t)             ;letzte Zeile automatisch mit Return abschließen
(save-place-mode)                          ;Cursor-Position innerhalb der Datei merken

;; automatische Backups nicht im lokalen Verzeichnis, sondern in ~/.emacs.d/backups/
(setq backup-directory-alist
      `(("." . ,(concat user-emacs-directory "backups"))))
(setq auto-save-file-name-transforms
      `((".*" ,(concat user-emacs-directory "backups/") t)))

;; Spaltenbreite für Zeilennummern (nur Markdown)
(setq-default display-line-numbers-width 4)

;; Abkürzungstabelle automatisch laden und speichern
;; Falls ~/.abbrev_defs nicht existiert, leere Datei anlegen (kein Fehler)
(let ((abbrev-file "~/.abbrev_defs"))
  (unless (file-exists-p abbrev-file)
    (write-region "" nil abbrev-file))
  (read-abbrev-file abbrev-file))
(setq save-abbrevs t)                      ;automat. speichern


;; ======== Packages ================================================

;; package.el initialisieren und MELPA-Repo hinzufügen (falls erforderlich)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)

;; Paket-Repo aktualisieren (first run / new machine)
(when (not package-archive-contents)
  (package-refresh-contents))

;; alle erforderlichen Pakete automatisch laden
(unless (package-installed-p 'use-package)
  (package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)

;; scratch-Buffer automatisch speichern (https://github.com/Fanael/persistent-scratch)
(use-package persistent-scratch
  :config
  (persistent-scratch-setup-default))

;; weiche Zeilenumbrüche mit Einrückung bei Listen etc.
(use-package adaptive-wrap
  :hook (visual-line-mode . adaptive-wrap-prefix-mode))

;; Spalte mit Zeilennummern / zentrierter Text
(use-package visual-fill-column
  :hook (markdown-mode . visual-fill-column-mode)
  :config
  (setq-default visual-fill-column-width 100)
  (setq visual-fill-column-width 100))

;; Markdown-Modus
(use-package markdown-mode
  :mode (("\\.text\\'" . markdown-mode)
         ("\\.md\\'"   . markdown-mode))
  :hook ((markdown-mode . visual-line-mode)          ; soft-wrap long lines
         (markdown-mode . display-line-numbers-mode) ; show line numbers
         (markdown-mode . visual-fill-column-mode)   ; center text within column width
         (markdown-mode . (lambda () (setq fill-column 79))))) ; hard-wrap at 79 chars

;; Unfill: mehrzeilige Absätze zu einer langen Zeile verbinden (Shift+F4)
(use-package unfill)

;; mehr Komfort im Minibuffer
(use-package vertico
  :config
  (vertico-mode 1)
  ; sort buffer list by 'recently shown'
  (setq vertico-sort-override-function
        (lambda (candidates)
          (if (eq minibuffer-history-variable 'buffer-name-history)
              (let ((hist (symbol-value minibuffer-history-variable)))
                (sort candidates
                      (lambda (a b)
                        (let ((pa (or (cl-position a hist :test #'equal) most-positive-fixnum))
                              (pb (or (cl-position b hist :test #'equal) most-positive-fixnum)))
                          (< pa pb)))))
            candidates))))

(use-package orderless
  :config
  (setq completion-styles '(orderless basic)))
(use-package marginalia
  :config
  (marginalia-mode 1))


;; schönere Statuszeile (setzt voraus, dass die JetBrains Nerd Fonts
;; installiert und als Emacs-Font verwendet werden)
(use-package nerd-icons
  :config
  (setq nerd-icons-font-family "JetBrainsMono Nerd Font"))
(use-package doom-modeline
  :after nerd-icons
  :config
  (doom-modeline-mode 1)
  (setq doom-modeline-height 25)
  (setq doom-modeline-icon t))

;; Ligaturen (setzt ebenfalls einen Nerd Font voraus)
(use-package ligature
  :config
  (ligature-set-ligatures 't '("!=" "!==" "->" "<-" "=>" "<=>" ">=" "<=" "//"))
  (global-ligature-mode t))


;; ======== Farben ================================================

(set-face-attribute 'line-number nil
                    :height 0.8 :foreground "#ffffff" :background "#dddddd")
(set-face-attribute 'link nil
                    :foreground "RoyalBlue3" :underline nil)

;; für Markdown-Modus
(with-eval-after-load 'markdown-mode
  (set-face-attribute 'markdown-italic-face nil
                      :inherit 'italic :foreground "dark magenta" :slant 'italic)
  (set-face-attribute 'markdown-pre-face nil
                      :inherit 'font-lock-constant-face))

(with-eval-after-load 'doom-modeline
  (set-face-attribute 'doom-modeline-buffer-modified nil
                      :foreground "firebrick" :weight 'bold))


;; ======== eigene Funktionen ===================================================

(defun expand-abbrev-or-dabbrev ()    ;Expansion von Abkürzung: F3
  (interactive)
  (unless (expand-abbrev)             ;falls keine Abkürzung existiert
    (dabbrev-expand nil)))            ;dynamische Expansion

(defvar my-point-register 1
  "Hilfsvariable für jump-to-register-1: merkt sich, welches Register aktiv ist.")

(defun point-to-register-1 ()         ;Position in Reg. 1 speichern: F5
  (interactive)
  (setq my-point-register 1)
  (point-to-register 1))

(defun jump-to-register-1 ()          ;Position wechseln: F6
  (interactive)                       ;springt zur Position, die mit F5
  (if (= my-point-register 1)         ; gespeichert wurde ...
      (progn
        (setq my-point-register 2)
        (point-to-register 2)
        (jump-to-register 1))
    (progn
      (setq my-point-register 1)
      (point-to-register 1)
      (jump-to-register 2))))

(defun swap-char ()                   ;zwei Buchstaben an der Cursor-Position
  (interactive)                       ;vertauschen: F11
  (save-excursion
    (forward-char)
    (transpose-chars 1)))

(defun change-case ()                 ;Groß- und Kleinschreibung des Zeichens
  (interactive)                       ;an der Cursorposition ändern: F12
  (let ((zeichen (char-after (point))))
    (if (> zeichen 64)
        (progn
          (setq zeichen (logxor zeichen 32))
          (insert-char zeichen 1)
          (delete-char 1))
      (forward-char 1))))

(defun change-word-case ()            ;Groß- und Kleinschreibung des ersten
  (interactive)                       ;Zeichens eines Worts verändern: F9
  (point-to-register 2)
  (backward-word 1)
  (change-case)
  (jump-to-register 2))

(defun unfill-paragraph-and-advance () ;Absatz zusammenfügen und zum nächsten springen: S-F4
  (interactive)
  (unfill-paragraph)
  (forward-paragraph)
  (skip-chars-forward "\n")
  (recenter))

(defun toggle-fill-column-width ()     ;Zeilenumbruch zwischen 100 und 1000 Zeichen wechseln
  (interactive)
  (setq-local visual-fill-column-width
              (if (eq visual-fill-column-width 100) 1000 100))
  (visual-fill-column-mode 1))



;; ======== Tastenkürzel ======================================================

(global-set-key [f1]    'switch-to-buffer)             ;F1  Buffer wechseln
(global-set-key [f2]    'other-window)                 ;F2  Fenster wechseln
(global-set-key [f3]    'expand-abbrev-or-dabbrev)     ;F3  Abkürzung erweitern
(global-set-key [f4]    'fill-paragraph)               ;F4  Absatz umbrechen
(global-set-key [S-f4]  'unfill-paragraph-and-advance) ;S-F4 Absatz zusammenfügen + nächster
(global-set-key [f5]    'point-to-register-1)          ;F5  Position speichern
(global-set-key [f6]    'jump-to-register-1)           ;F6  zu Position springen
(global-set-key [f7]    'goto-line)                    ;F7  goto line
(global-set-key [f8]    'toggle-fill-column-width)     ;F8 kurze/lange Zeilen
(global-set-key [f9]    'change-word-case)             ;F9  Groß/Klein Wort
(global-set-key [f10]   'undo)                         ;F10 Undo
(global-set-key [f11]   'swap-char)                    ;F11 Buchst. vertauschen
(global-set-key [f12]   'change-case)                  ;F12 Groß-/Klein ändern

;; Mac-Tastatur: fn+ctrl+cursor to start/end of buffer
(global-set-key [C-prior] 'beginning-of-buffer)   
(global-set-key [C-next]  'end-of-buffer)

;; Guillemets-Eingabe mit Alt+Q / Shift+Alt+Q
(defun insert-guillemot1 ()
  (interactive)
  (insert "«"))
(defun insert-guillemot2 ()
  (interactive)
  (insert "»"))
(global-set-key [?\M-q] 'insert-guillemot1)            ;Alt+Q:       «
(global-set-key [?\M-Q] 'insert-guillemot2)            ;Shift+Alt+Q: »

;; macOS: rechte Alt-Taste zur Eingabe von Sonderzeichen wie @ oder € verwenden
(when (eq system-type 'darwin)
  (setq mac-right-option-modifier nil)                 ; LeftAlt + L -> @ etc.
  )

Quellen / Links

Die oben abgedruckte Datei können Sie als dotemacs.txt herunterladen.

Andere .emacs-Beispiele

KDE Plasma setzt klar auf Wayland

Von: MK
03. Juni 2026 um 06:00

KDE treibt den Wechsel zu Wayland voran und bestätigt den Abschied von X11 in Plasma 6.8. Die aktuelle Nutzung zeigt eine deutliche Tendenz. Die Entwickler bereiten Plasma 6.7 als letzte Version mit X11 Unterstützung vor. Danach beginnt die Entfernung des alten Codes und die Optimierung der modernen Umgebung. Der Schritt soll die Wartung vereinfachen und […]

Der Beitrag KDE Plasma setzt klar auf Wayland erschien zuerst auf fosstopia.

COSMIC zeigt Vorschau auf Frosted‑Glass Design

Von: MK
02. Juni 2026 um 13:00

Das COSMIC Team arbeitet an einem neuen Frosted Glass Effekt, der bald im Desktop landen könnte. Die Optik erinnert an frühere transparente Designs und wirkt bereits erstaunlich ausgereift. System76 Chef Carl Richell gab auf X einen kurzen Einblick in den aktuellen Stand. Er erklärte, dass der Effekt bewusst dezent startet. Nutzer können die Intensität später […]

Der Beitrag COSMIC zeigt Vorschau auf Frosted‑Glass Design erschien zuerst auf fosstopia.

Projekt Lightwell: IBM und Red Hat investieren in sichere Open Source Software

Von: MK
02. Juni 2026 um 10:00

IBM und Red Hat starten mit Project Lightwell eine große Sicherheitsinitiative. Das Vorhaben soll offene Software besser schützen und Unternehmen verlässliche Updates liefern. Im Zentrum steht ein vertrauenswürdiges Clearinghouse, das sensible Sicherheitsmeldungen bündelt. Firmen können dort entdeckte Schwachstellen einreichen. IBM prüft gemeldete Fehler mit KI Unterstützung und erstellt geprüfte Korrekturen. Diese Patches decken nicht nur […]

Der Beitrag Projekt Lightwell: IBM und Red Hat investieren in sichere Open Source Software erschien zuerst auf fosstopia.

SCS Summit 2026: Digitale Souveränität – angekommen in der Praxis

02. Juni 2026 um 09:51

200 Menschen, zwei Bühnen, ein gemeinsames Ziel: Am 21. Mai 2026 kam die Sovereign Cloud Stack (SCS)-Community im bUm Berlin zusammen – und der diesjährige SCS Summit machte deutlicher als je zuvor, dass digitale Souveränität keine Zukunftsvision mehr ist, sondern gelebter Alltag. Im Auditorium lief das Hauptprogramm mit Panels, Keynotes und politischen Impulsen; parallel dazu füllte die bUm Box den ganzen Tag mit technisch tiefgehenden Praxisvorträgen. Die Energie im Raum war spürbar: Diese Community bewegt wirklich etwas.

Quelle

Euro Office startet im Juni und setzt Segel für Europas digitale Unabhängigkeit

Von: MK
01. Juni 2026 um 12:35

Euro Office steht kurz vor dem offiziellen Start und erscheint am 9. Juni als stabile Version. Das Projekt soll Europas Abhängigkeit von großen US Diensten verringern. Nextcloud und IONOS treiben die Entwicklung gemeinsam voran. Beide wollen eine verlässliche Office Lösung bieten, die sich gut in bestehende Plattformen einfügt. Die Suite wird direkt in Nextcloud Hub […]

Der Beitrag Euro Office startet im Juni und setzt Segel für Europas digitale Unabhängigkeit erschien zuerst auf fosstopia.

KDE Linux: Abkehr von Zen Kernel und AUR

Von: MK
01. Juni 2026 um 08:00

KDE Linux konnte im Mai spürbare Schritte nach vorne machen und gewinnt an Struktur. Das Projekt stärkt seine Grundlagen und bringt mehr Kontrolle in Aufbau und Pflege des Systems. Die Entwickler setzen nun auf den eigenen kde‑builder, um KDE Software direkt zu kompilieren. Das frühere Erstellen von Arch‑Paketen entfällt damit. Die Distribution bleibt zwar technisch […]

Der Beitrag KDE Linux: Abkehr von Zen Kernel und AUR erschien zuerst auf fosstopia.

Vorstellung von 2,5 großartigen Open-Source-Projekten

01. Juni 2026 um 05:00

Getreu dem Motto „Nutze Gutes und schreibe darüber“ stelle ich im heutigen Beitrag die Open-Source-Projekte lab-toolbox, kcli und kcli-toolbox vor.

Lab-toolbox

Die lab-toolbox ist ein Projekt von meinem TAM-Kollegen Chris Huang. Es handelt sich dabei um ein Python-Skript, welches die Erstellung von virtuellen Maschinen (VM) mit Red Hat Enterprise Linux (RHEL) unter KVM/QUEMU vereinfacht und beschleunigt.

Hinter der Idee zu diesem Projekt steckt dieser Anwendungsfall:

Als Plattform-TAMs müssen wir regelmäßig Dinge unter verschiedenen RHEL-Versionen testen. Häufig muss hierzu eine frische VM auf unserem Laptop herhalten, die nach dem Test auch direkt wieder entsorgt werden kann. Dies kann nun bspw. mit dem folgenden Kommando erledigt werden:

./create_vm.py --rhel 10 --hostname rhel10-1 --memory 4096 --vcpus 2

Mit diesem einen Befehl werden folgende Aufgaben ausgeführt:

  1. Es wird das aktuelle RHEL 10 Image auf der lokalen Festplatte genutzt, um eine RHEL 10 VM mit 4 GB RAM und 2 vCPU zu erstellen
  2. Das Skript fragt nach einem Passwort für den Konsolen-Login oder bietet an, sich ausschließlich per SSH einzuloggen
  3. Es generiert automatisch die Konfiguration für cloud-init, um:
    • den aktuellen Benutzer innerhalb der neuen VM zu erstellen
    • den SSH-Public-Key des Benutzers hinzuzufügen (automatisch oder per Option)

Ist die VM erstellt, können wir uns direkt mit unserem Benutzer und dessen SSH-Schlüssel einloggen.

Es gibt im Internet viele Wrapper-Skripte, welche die Einrichtung von lokalen VMs vereinfachen sollen. Mir gefällt an diesem besonders, dass es einen meiner häufigsten Anwendungsfälle auf den Punkt bedient. Dazu gibt es ein ausführliches README.md mit einer ausführlichen Dokumentation und einigen Beispielen.

Danke Chris, dass du dieses tolle Projekt mit uns teilst.

Kcli

Wenn es ein bischen mehr sein darf und z.B. folgende Funktionen gewünscht sind:

  • Deplyoment von Cloud-Images bei verschiedenen Providern (z.B. libvirt, KubeVirt, oVirt, OpenStack, VMware vSphere, AWS, Azure, GCP, IBM cloud and Hcloud) mit einem einzigen Werkzeug
  • Profile, um VMs mit der gleichen Hardware-Charakteristik zu starten
  • Komplette Labor-Umgebungen in YAML deklarieren und ausrollen
  • Große Auswahl an Cloud-Images verschiedener Linux-Distributionen
  • Einfache Verteilung und Integration von SSH-Schlüsseln
  • Automatische Registrierung von RHEL-VMs

Dann ist das Projekt kcli von meinem Kollegen Karim Boumedhel und vielen weiteren Beitragenden vielleicht etwas für euch. Wenn ihr jetzt neugierig geworden seid, werft für weitere Informationen einen Blick in die Dokumentation.

Als TAM und Sysadmin möchte ich auch komplexe Systeme testen, welche häufig aus mehreren VMs bestehen. Da mein Laptop hier schnell an seine Grenzen stößt, möchte ich diese Laborumgebungen auch bei anderen Anbietern bereitstellen können. Hierfür scheint mir dieses Projekt gut geeignet zu sein.

Kcli-toolbox

Dies ist der 0,5-Anteil der Vorstellungen in diesem Artikel. Damit ist nicht gemeint, dass es erst zur Hälfte fertig ist. Es ist vielmehr kein richtiges Projekt, sondern lediglich ein Containerfile und ein Custom-Toolbox-Build.

Toolbx ist ein Werkzeug für Linux, welches ein CLI für Softwareentwicklung und Troubleshooting bereitstellt, ohne dass ihr dafür alle notwendigen Werkzeuge auf eurem Host-System installieren müsst. Eine Toolbox basiert auf einem OCI-Container-Image. Es gibt sie in verschiedenen Geschmacksrichtungen. Bitte schaut für weitere Informationen in die Dokumentation.

Bei kcli-toolbox handelt es sich um ein Toolbox-Container-Image, bei dem kcli schon vorinstalliert ist. Das Image wird jeden Dienstag um 03:42 Uhr Ortszeit neu gebaut, um es auf einem aktuellen Stand zu halten.

Mir enthält der Abschnitt „Container Install“ der kcli-Dokumentation zu viele Optionen und aliases, die ich mir nicht merken möchte. Die Builds für EPEL-9 schlagen seit einiger Zeit fehl, so dass ich unter RHEL 9 nicht die letzte Version als RPM nutzen kann. Daher kam mir die Idee zu kcli-toolbox. Ich habe hiermit die aktuellste Version für Fedora 44 und kann diese so natürlich nutzen, als wäre sie als RPM-Paket installiert.

Probiert es doch gerne selbst einmal aus. Hinweise dazu findet ihr in der README.md.

Wer bleibt, trägt mehr

31. Mai 2026 um 21:00

Als Black Swan bezeichnet man Ereignisse, die erst unvorstellbar erscheinen, dann die Welt verändern und im Nachhinein unvermeidlich wirken: Man hätte es doch wissen müssen.

LLMs in der Softwareentwicklung fühlen sich wie so ein Ereignis an, wenn man sich die Geschwindigkeit und Breite der Adaption und ihre Auswirkungen anschaut. Die Erwartung war: Robotik übernimmt erst körperlich schwerere Aufgaben, Automatisierung übernimmt dann die mühsamen, repetitiven Aufgaben und irgendwann wird Programmierung durch No-Code-Werkzeuge verborgen. Was stattdessen passiert, ist das Gegenteil von No-Code: eine Maschine, die unendlich viel Code ausspuckt und den Programmierer als quasi „den“ White-Collar-Beruf imitiert. Aus No-Code wird More-Code. Dadurch wird ausgerechnet zuerst der Programmierer zur Zielscheibe: Die teuren Positionen geraten unter Druck - und das auch noch zuerst.

Anders gefordert

Wer mit diesen Tools arbeitet, merkt schnell: Man kommt schneller zu Ergebnissen. Auch bei komplexen Anfragen, auch auf bestehenden Codebases.

Die kognitive Arbeit verschiebt sich dabei, sie verschwindet nicht. Früher hat man während des Schreibens ein mentales Modell aufgebaut und die Lösung entstand beim Denken in Code.

Heute bekommt man Code, den etwas anderes gedacht hat. Man muss dieses fremde Modell verstehen, beurteilen und einordnen. Das fordert nicht weniger, nur anders.

Vicki Boykis beschreibt es gut: es wird immer wichtiger, „in Form“ zu bleiben. Datenstrukturen, Pattern, Basics, weil das Urteilsvermögen über Code wichtiger wird als das Schreiben von Code. Wer die Grundlagen versteht, kann bewerten, und wer nur prompten kann, navigiert blind.

Beschleunigung in alle Richtungen

Die zweite Auswirkung ist einfacher zu beschreiben: Mehr. Von allem.

Das gilt nicht nur für die produktive Seite: Softwareprojekte werden zunehmend von KI-generierten Security-Reports und Exploits überschwemmt, weil – Überraschung – LLMs sich auch für die Schwachstellensuche einsetzen lassen. Kombiniert man das noch mit einem finanziellen Anreiz, entstehen Auswüchse, die jetzt wieder mühselig eingefangen werden müssen.

Das ist kein Randphänomen, Daniel Stenberg beschreibt es ganz gut. Zusammen mit den beobachteten Lieferkettenangriffen sind die AI Reports vermutlich eines der dominantesten Themen der IT-Sicherheit und des Open-Source-Ökosystems dieses Jahr. Die Beschleunigung trifft nicht nur die produktive und konstruktive Seite.

Wer LLMs als Werkzeug demokratisiert, demokratisiert auch Angriffsfähigkeit. Das ist keine Nebenwirkung. Das ist dasselbe Werkzeug, dasselbe Tempo. Die Last tragen die sowieso schon wenigen Maintainer, Entwickler und Admins, die das verarbeiten müssen.

Die Messlatte steigt

Entwickler waren teuer. Nicht aus Willkür, sondern weil die Arbeit schwer und das Angebot knapp ist. Die naive Annahme wäre: Wenn das Werkzeug die Arbeit erleichtert, sinkt der Druck. Das Gegenteil passiert.

Coding-Agents senken nicht die Schwierigkeit der Kernarbeit. Verstehen, beurteilen, verantworten – das bleibt schwer. Was sie verschieben, ist die Erwartung. Du hast doch jetzt die Werkzeuge. Die Benchmark ist nicht mehr der gute Entwickler, sondern der gute Entwickler mit Agenten. Also muss jeder für mehr getane Arbeit geradestehen. Gleiche kognitive Last, höheres Volumen obendrauf. Das ist kein neues Muster: Werkzeuge entlasten selten, sie heben die Norm.

Und genau deshalb heizt es sich an. Die Arbeit verdichtet sich auf weniger Schultern. Hiervon kann man fast schon täglich an vielen Stellen lesen, auch wenn KI dabei eher als Korrelation denn als Kausalität erscheint. Trotzdem setzt sich eine Erzählung fest: Jetzt gebe es KI und wer was reißen wolle, müsse jetzt mehr umsetzen. Näher ans Produkt, näher an den Kunden, näher an die Verantwortung.

Und teuer bleibt es ohnehin. Die Ersparnis, die man sich von den Werkzeugen versprach, taucht als neue Rechnung wieder auf: Was an Stellen wegfällt, fließt ins Token-Budget. „Tokenmaxxing“ nennt man das. Nur schrumpft diese Stelle nicht, sie wächst – weil billiger pro Anfrage eben nicht weniger Anfragen heißt, sondern mehr. Das Unternehmen spart nicht, es zahlt woanders, und meist mehr. Der Druck, der dabei entsteht, landet wieder bei denen, die noch da sind.

Was bleibt: die eigentliche Arbeit

Die eigentliche Frage ist nicht, was Maschinen übernehmen. Die Frage ist, was danach noch zählt. Bei Open Source zum Beispiel kann es nicht mehr nur die Verfügbarkeit von Funktionalität oder Alternativen zu proprietären Lösungen sein. Code generieren kann man sich selber. Was bleibt, ist das Projekt als kuriertes Ganzes: konsistentes Design, wenig Bugs, eine klare Vision, Vertrauen in die Maintainer. Das sind Gründe, warum man zu einem Projekt greift.

Und das gilt auch für den Beruf selbst. Die Essenz der Informatik war nie das Tippen. Sie war die Transformation: Ein Problem verstehen, eine Lösung entwerfen, die Umsetzung verantworten. Requirements Engineering und Implementierung sind zwei Seiten davon. Anforderungsanalyse erzeugt den erwarteten Zielzustand, der implementiert werden soll: aus Widersprüchen, impliziten Erwartungen und organisatorischen Realitäten. Das ist schwer zu formalisieren.

Wer erkennt die Anforderungen? Wer definiert das Problem, bevor es gelöst werden kann? Wer prüft, ob die Lösung das richtige Problem löst?

Das wird weiterhin Menschen brauchen. Doch sie werden viel mehr umsetzen müssen, daher stellt sich die Frage: Zu welchem Preis? Den werden wir in den nächsten Monaten sehen.

Mozilla VPN 2.37 entfernt Telemetrie und bringt viele Neuerungen für Apple-Nutzer

31. Mai 2026 um 17:58

Mozilla hat Version 2.37 seiner VPN-Clients für das Mozilla VPN veröffentlicht. Neben der Entfernung von Telemetrie in allen Clients bringt die neue Version vor allem für Apple-Nutzer einige Neuerungen.

Mit dem Mozilla VPN bietet Mozilla in Zusammenarbeit mit Mullvad sein eigenes Virtual Private Network an und verspricht neben einer sehr einfachen Bedienung eine durch das moderne und schlanke WireGuard-Protokoll schnelle Performance, Sicherheit sowie Privatsphäre: Weder werden Nutzungsdaten geloggt noch mit einer externen Analysefirma zusammengearbeitet, um Nutzungsprofile zu erstellen.

Jetzt Mozilla VPN nutzen

Die Neuerungen vom Mozilla VPN 2.37

Mit dem Mozilla VPN 2.37 hat Mozilla Telemetrie aus seinen VPN-Clients weitestgehend entfernt. Übrig geblieben ist lediglich eine Diagnostik für Programmabstürze, wofür die bisherige Option weiterhin bestehen bleibt.

Auf iOS kann das Mozilla VPN jetzt via Siri aktiviert und deaktiviert werden. Außerdem kann das Ein- und Ausschalten über die Shortcuts-App von iOS automatisiert werden.

Außerdem auf iOS möglich ist es nun, einen Schalter zum Kontrollzentrum oder dem Sperrbildschirm hinzuzufügen. Auf den neuesten iPhones ist es möglich, das Mozilla VPN als Funktion der Aktionsschaltfläche zu wählen.

Auf macOS werden jetzt auch Nur-IPv6-Netzwerke unterstützt.

Unter Linux mit Gnome und Wayland wurde ein Problem mit den Fensterdekorationen behoben. Ebenso unter Linux behoben wurden Probleme, die in Nur-IPV6-Netzwerken während der Verwendung von Multi-Hop auftreten konnten.

Ansonsten bringt das Update auch wieder Fehlerbehebungen und Verbesserungen unter der Haube.

Der Beitrag Mozilla VPN 2.37 entfernt Telemetrie und bringt viele Neuerungen für Apple-Nutzer erschien zuerst auf soeren-hentzschel.at.

Linux Coffee Talk 5/2026

Von: MK
30. Mai 2026 um 08:00

Der Linux Coffee Talk, das lockere Format rund um Linux, Open Source und Technik im Alltag. Ohne Hype, ohne Clickbait, dafür mit echten Einordnungen der Meldungen, Meinungen und einem Überblick über die wichtigsten FOSS-/Linux-News aus Mai 2026. Wir sprechen über Distributionen, Tools, Datenschutz, Nerd-Themen und alles, was uns Linux-User bewegt. Perfekt für alle, die stets […]

Der Beitrag Linux Coffee Talk 5/2026 erschien zuerst auf fosstopia.

Podcast: Linux Coffee Talk 5/2026

Von: MK
30. Mai 2026 um 08:00

Der Linux Coffee Talk ist das entspannte Monatsformat bei fosstopia. Hier fassen wir die spannendsten Ereignisse und Entwicklungen der letzten Wochen für Euch zusammen und ordnen sie bestmöglich ein. Also schnappt euch einen Kaffee, Tee oder Euer Lieblingsgetränk, macht es euch gemütlich und lasst uns den Mai 2026 Revue passieren.

Der Beitrag Podcast: Linux Coffee Talk 5/2026 erschien zuerst auf fosstopia.

Mozilla veröffentlicht Firefox 151 für Apple iOS mit „KI Kill Switch”

29. Mai 2026 um 20:54

Mozilla hat Firefox 151 für Apple iOS veröffentlicht. Dieser Artikel beschreibt die Neuerungen von Firefox 151.

Die Neuerungen von Firefox 151 für iOS

Mozilla hat Firefox 151 für das iPhone, iPad sowie iPod touch veröffentlicht. Die neue Version steht im Apple App Store zum Download bereit.

„Kill Switch” für KI-Funktionen

Künstliche Intelligenz (KI) ist ein Thema, welches mittlerweile omnipräsent ist. Die einen lieben es, andere möchten am liebsten gar nichts damit zu tun haben. Um die Verwaltung von KI-Funktionen einfacher zu machen, hat Mozilla die Firefox-Einstellungen um einen zusätzlichen Bereich mit der Bezeichnung „KI-Einstellungen” erweitert. Dieser neue Bereich bietet einen Ort, um KI-Funktionen zentral zu steuern. Darüber hinaus bietet Firefox einen globalen Schalter zum Ein- und Ausschalten von KI-Funktionen an – welcher auch zukünftige KI-Features abschaltet.

KI-Einstellungen in Firefox 151 für Apple iOS

Sonstige Neuerungen von Firefox 151 für iOS

Ansonsten bringt das Update auf Firefox 151 wie imme Detail-Verbesserungen, Fehlerbehebungen sowie Optimierungen unter der Haube. Auch Sicherheitslücken wurden behoben.

Der Beitrag Mozilla veröffentlicht Firefox 151 für Apple iOS mit „KI Kill Switch” erschien zuerst auf soeren-hentzschel.at.

Flatpak Entwickler planen tiefere systemd Einbindung

Von: MK
29. Mai 2026 um 06:00

Flatpak könnte künftig stärker auf systemd Services setzen. Diese mögliche Richtung sorgt bei vielen Nutzern für Diskussionen. Besonders betroffen wären Distributionen ohne systemd Unterstützung. Die Entwickler arbeiten derzeit an einer neuen Architektur. Sie nennen das Konzept „Flatpak Next-Generation Sandboxing“ und prüfen grundlegende Änderungen. Ziel ist eine stabilere Verwaltung laufender Anwendungen. Auch die Integration moderner Desktop […]

Der Beitrag Flatpak Entwickler planen tiefere systemd Einbindung erschien zuerst auf fosstopia.

Updates zu lokalen Sprachmodelle: MTP, APEX, Qwopus

28. Mai 2026 um 13:54

Unser Buch Coding mit KI ist gerade erst erschienen, schon gibt es spannende Neuigkeiten rund um die Ausführung lokaler Modelle:

  • Multi-Token Prediction (MTP) ist ein ganz neues Feature in llama.cpp. Seit ein paar Tagen steht es auch in LM Studio zur Verfügung. Durch einen »Trick« (Details folgen gleich) kann mit MTP die Output-Token-Geschwindigkeit deutlich vergrößert werden: laut diversen Benchmarktests im Internet bis auf das Doppelte, in meinen Tests immerhin um ca. 60 bis 70 Prozent.
  • Adaptive Precision for EXpert Models (APEX) ist ein neues Verfahren zur besonders platzsparenden Quantisierung von MoE-Modellen. Der Platzbedarf sinkt je nach Qualitätsstufe auf die Hälfte gegenüber der herkömmlichen 4-Bit-Darstellungen (Q4_x_x).

  • Qwopus ist eine neue Variante zu den Qwen-Modellen, bei denen das Fine Tuning mit Claude Opus verbessert wurde.

Von Speculative Decoding zur Multi-Token Prediction

In Coding mit KI gehe ich kurz auf das Vorgängerkonzept zu MTP ein, auf Speculative Decoding: Dabei führt die Engine (z.B. llama.cpp) zwei Sprachmodelle aus. Das kleinere (schnellere) dient als Draft Model. Während der Token-Generierung macht das Draft Model Vorschläge für die folgenden Token. Das größere, qualitativ bessere Modell überprüft anschließend eine Sequenz mehrerer vorgeschlagener Token auf einmal. Im Idealfall wird die ganze Sequenz akzeptiert. Der Geschwindigkeitsvorteil ergibt sich durch die parallele Verifizierung eines ganzen Token-Blocks. Dazu sind weniger Speicher-Transfers vom VRAM in die GPU notwendig, als wenn jedes Token für sich generiert wird. (Die Token-Generierung wird durch zwei Faktoren limitiert: die Rechenleistung der GPU und die Speicherbandbreite vom VRAM in die GPU-Cores. Speculative Decoding setzt beim zweiten Punkt ein, der oft der limitierende Faktor ist.)

In der Praxis funktioniert das nur mäßig gut: Zum einen ist es schwierig, ein geeignetes Draft Model zu finden. Es muss aus der gleichen »Familie« stammen, aber deutlich kleiner sein, idealerweise etwa um den Faktor zehn. Zum anderen funktioniert Speculative Decoding für Dense Models besser als für Mixture of Experts Models (MoE). Das Problem bei MoE besteht darin, dass bei jedem Token andere »Experten« zum Einsatz kommen können, was den Geschwindigkeitsvorteil von Speculative Decoding teilweise zunichtemacht. Kleinere MoE-Modelle für den Draft-Einsatz haben zudem oft eine andere Experten-Aufteilung, was die Acceptance Rate verringert.

Multi-Token Prediction (MTP) greift die Idee des Speculative Decoding auf. Der entscheidende Unterschied besteht darin, dass ein Modell ausreicht. Ein in das Modell integrierter Layer ist dafür zuständig, rasch ein paar Tokens (üblicherweise 2 bis 4) vorherzusagen. Das Gesamtmodell überprüft dann alle Token auf einmal, was nur unwesentlich mehr Zeit kostet, als ein Token zu berechnen. MTP erspart damit das umständliche Handling mit zwei Modellen.

Speculative Decoding und Multi-Token Prediction sind mit keinerlei Qualitätsverlust verbunden! Es werden exakt die gleichen Ergebnisse erzielt, weil jede Token-Sequenz vollständig kontrolliert und bei Abweichungen verworfen wird. Werfen Sie diesbezüglich einen Blick in das Video von Donata Capitella, das diesen Umstand anschaulich erklärt.

Für den erzielten Geschwindigkeitsgewinn ist der Prozentsatz der akzeptierten Draft Tokens entscheidend. Dieser variiert je Aufgabenstellung: Bei kreativem Text ist die Akzeptanzrate nur mittelmäßig, bei Code hingegen deutlich höher — ganz einfach deswegen, weil Code strengen Regeln folgt und weniger Spielraum als menschliche Sprachen bietet.

Leider ist auch MTP mit Nachteilen verbunden:

  • Das Modell muss für MTP konzipiert sein. MTP muss schon beim Training berücksichtigt werden. Das Modell benötigt einen zusätzlichen Layer für die Token Prediction. Aktuell gibt es nur eine einzige »freie« Modellfamilie mit MTP, nämlich Qwen 3.6 und dessen Variante Qwopus. Gemma-4-Modelle sollten demnächst folgen. In Zukunft wird MTP wohl zu einem Standard-Feature für freie Modelle.
  • Natürlich muss auch die Software MTP unterstützen. Weil viele Programme intern llama.cpp verwenden, wird MTP rasch weite Verbreitung finden.

  • Schließlich teilt sich MTP einen Nachteil mit Speculative Decoding: Es funktioniert bei herkömmlichen Dense-Modellen besser als bei MoE-Modellen (Mixture of Experts). Die ohnedies schon schnellen MoE-Modelle werden also nur geringfügig schneller oder, wie bei einigen meiner Tests, sogar langsamer. Bei den Dense-Modellen ist dagegen eine spürbare Verbesserung zu bemerken. Bei meinen Tests ca. +65%, bei einigen Benchmarks im Internet bis zu +100%, also eine Verdoppelung der Output-Token-Rate.

  • MTP ändert nichts an der Input-Verarbeitung (dem Prompt Processing, pp). Schneller wird nur der Output (die Token Generation, tg).

Dense versus Mixture of Experts (MoE): MoE ist schneller, kann aber qualitativ bei gleicher Modellgröße nicht ganz mithalten. Während bei Dense-Modellen immer alle Parameter aktiv sind, nutzen MoE-Modelle nur wenige, stets wechselnde »Experten«, also Subsets mit viel weniger Parametern. Das spart Zeit, aber kein »Experte« ist so gut wie das volle Modell. Dementsprechend sinkt die Qualität der Antworten, nicht massiv, aber spürbar.)

Praktische Erfahrungen

Ich habe MTP mit LM Studio 0.4.14 auf meinem Framework Desktop ausprobiert (AMD Ryzen Max 395 CPU/GPU). Mein Mini-Benchmarktests lautete: »Explain Python dictionaries«. Die getesteten Modelle denken über diese Frage eine Weile nach und produzieren dann einen mehrseitigen, qualitativ sehr hochwertigen Text mit eingebauten Code-Schnipseln.

LM Studio mit dem Modell Qwen 3.6 und Multi-Token Prediction (MTP)

Ich habe alle Tests mit einem Kontextfenster von 128.000 Token ausgeführt. Bei den MTP-Modellen habe ich die Einstellung MTP Max Tokens = 3 verwendet, also immer drei Tokens auf einmal erzeugt. Alle getesteten Modelle weisen eine 4-Bit-Quantisierung auf (Ausnahme: das APEX-Modell, siehe unten). Als Backend kommt llama.cpp mit Vulkan zum Einsatz.

                                                            Draft Token 
Modell                     MoE   APEX  MTP   Output (tg)    Acceptance
-----------------          ----  ----  ----  ------------   ------------------
qwen-3.6-27b               nein  nein  nein  12,3 Token/s
qwen-3.6-27b-mtp           nein  nein  ja    20,1 Token/s   66,3 %
qwopus-3.6-27b-v2-mtp      nein  nein  ja    19,0 Token/s   63,7 %

qwen-3.6-35b-a3b           ja    nein  nein  69,7 Token/s
qwen-3.6-35b-a3b-mtp       ja    nein  ja    67,1 Token/s   66,6 %
qwen-3.6-35b-a3b-apex-mtp  ja    ja    ja    71,5 Token/s   63,3 %
qwopus-3.6-35b-a3b-mtp     ja    nein  ja    74,2 Token/s   68,2 %

Professionellere Benchmark-Tests hat Donata Capitella durchgeführt (siehe die ersten zwei Links in den Übersicht der Quellen am Ende des Artikels). Interessanterweise ist dort auch bei MoE-Modellen ein spürbarer Geschwindigkeitszuwachs von etwa 30% zu sehen, den ich bei meinen Tests aber nicht nachvollziehen kann.

Qwopus-Modelle

Die neuen Qwopus-Modelle basieren auf Qwen-Modellen, erhalten aber ein zusätzliches Fine-Tuning mit Claude Opus. Dieses soll den Nachdenkprozess beschleunigen und eine bessere Antwortqualität mit sich bringen. Die erste Versprechung trifft definitiv zu, aber ich bin nicht in der Lage, die Qualität des Modells im Detail zu beurteilen. Subjektiv hatte ich den Eindruck, dass die Unterschiede zu den Qwen-Originalen gering sind.

Zum Denkprozess: Beim Prompt »write a Sudoku solver in Python« denkt qwen-3.6-27b-mtp ca. 1:30 Minuten nach, qwopus-3.6-27b-v2-mtp aber ca. nur 1:00 Minuten. (Die Denkzeit hat eine relativ starke Varianz, weswegen hier genaue Angaben sinnlos sind.) Die resultierende Antwort samt Code ist mehr oder weniger gleichwertig (Backtracking-Algorithmus).

APEX Quantisierung

Die Verkleinerung von Modellen bei möglichst geringen Qualitätsverlust ist zu einer eigenen KI-Disziplin geworden. Die Grundidee besteht darin, Milliarden von Parametern (also eigentlich Fließkommazahlen) mit möglichst wenigen Bits darzustellen, ohne dass die Qualität der Ergebnisse allzu sehr leidet.

Der geringere Platzbedarf von Modellen ist insbesondere dann wichtig, wenn der Speicher (VRAM) limitiert ist. Mit einer geschickten Quantisierung läuft ein Modell vielleicht gerade noch auf einer GPU mit 16 GiB VRAM.

Vor ein paar Monaten machte Google mit dem neuen Turbo-Quant-Verfahren Furore. Bei der Recherche für diesen Artikel bin ich nun auf das neue Verfahren Adaptive Precision for EXpert Models (APEX) gestoßen. Das von Local AI entwickelte Verfahren ist speziell für MoE-Modelle optimiert und kompatibel zu aktuellen llama.cpp-Versionen. Die Grundidee besteht darin, dass für jede Parametergruppe eine andere, für den Wertebereich und die Wichtigkeit angepasste Quantisierung verwendet wird. Insofern ist eine klare Bit-Angabe (4 Bit pro Parameter) unmöglich. Technische Details und Benchmarks finden Sie auf der GitHub-Projektseite. Local AI arbeitet daran, Modelle lokal auf Smartphones auszuführen; da ist die möglichst platzsparende Darstellung natürlich wichtig.

Konkret sind APEX-Modelle zum Teil wirklich erheblich kleiner als vergleichbare Modelle mit Q4-Quantisierung, wie sie bei der lokalen Ausführung von Modellen üblich ist. Die folgende Tabelle zeigt lauter Qwen-3.6-Modelle mit jeweils 35 Milliarden Parameter. Das APEX-MTP-Modell benötigt nur halb so viel Platz wie das MTP-Modell mit einer herkömmlichen Q4-Quantisierung.

Überblick der heruntergeladenen Modelle in LM Studio

Leider verrät die Huggingface-Seite des Modells nicht, welche Variante der APEX-Quantisierung verwendet wurde. Es existieren verschiedene Qualitätsstufen, z.B. Quality, Balanced, Compact und Mini. Ich würde vermuten, das Modell ist eher bei Mini als bei Quality angesiedelt.

Modell                      Quantisierung   Größe (Disk)
------------------------    -------------   ------------
qwen-3.6-35b-a3b            Q4_K_M          22,0 GB
qwen-3.6-35b-a3b-mtp        Q4_K_S          23,0 GB
qwen-3.6-35b-a3b-apex-mtp   APEX            11,7 GB (!)

Bei der Ausführung des Modells waren für mich keine nennenswerten Unterschiede erkennbar, weder in der Geschwindigkeit noch qualitativ. Aber nochmals: Das sind subjektive Feststellungen anhand einiger Tests, keine objektiven Benchmark-Tests. Dazu fehlt mir ganz einfach die Zeit.

Quellen/Links

Ausgewählte Modelle mit MTP und/oder APEX

Technisch/Wissenschaftliche Grundlagen

Weichenstellung für Jahrzehnte: Europa definiert digitale Souveränität neu – OSBA warnt vor Verwässerung

28. Mai 2026 um 09:18

Die deutsch-französische „Taskforce für die Digitale Souveränität Europas", ins Leben gerufen beim Gipfel zur Europäischen Digitalen Souveränität am 18. November 2025 in Berlin, erarbeitet derzeit eine verbindliche Definition digitaler Souveränität. Diese soll künftig die Grundlage für deutsche und europäische Gesetzgebung sowie für Förder- und Beschaffungsprozesse bilden.

Quelle

❌