Es ist ein vertrautes Szenario: Ein neues Tool oder eine Anwendung verspricht Effizienz oder Spaß, doch plötzlich wird klar – es läuft nur auf macOS. Noch vor ein paar Jahren hätte das oft bedeutet, die Idee fallen zu lassen. Heute jedoch denken viele Entwicklerinnen und Entwickler anders: Vielleicht kann ich das einfach forken und anpassen.
Genau das passierte mir kürzlich, als ein Kollege mir eine kleine, aber nützliche macOS-Menüleisten-App vorstellte. Sie listet lokale Entwicklungsserver auf – ideal für alle, die tagsüber mit Vite, Rails, Django, Flask oder Next.js arbeiten. Statt sich durch Terminal-Tabs zu kämpfen, zeigt die App die aktiven Ports an, zu welchem Projekt sie gehören, und ermöglicht sogar das Öffnen oder Beenden der Server. Ein kluges Konzept. Leider nur für macOS.
Doch ich nutze Fedora mit KDE Plasma als Hauptbetriebssystem. Also begann ich, nach einer Alternative zu suchen – oder besser gesagt: eine neue Version zu erschaffen. Der erste Schritt war eine einfache Frage an ein KI-Entwicklungstool:
Diese App scheint nur für macOS verfügbar zu sein. Wie aufwendig wäre eine Portierung auf Linux?
Die Machbarkeit klären: Was lässt sich übertragen?
Die erste Antwort war optimistisch, wie es bei KI-gestützten Entwicklertools oft der Fall ist. Die Kernfunktionalität – das Scannen aktiver Ports – ist tatsächlich gut übertragbar. Linux bietet mit Befehlen wie ss, lsof, /proc//cwd und Tools wie git oder kill alle notwendigen Werkzeuge. Doch hier lag der Haken: Die ursprüngliche App war in SwiftUI und AppKit geschrieben. Ein direkter Port auf Linux wäre kein einfaches Kopieren gewesen.
Stattdessen wurde schnell klar, dass eine Neuentwicklung nötig war. Das Ziel? Ein KDE-Plasma-Widget, das die gleiche Aufgabe erfüllt, aber optimal in die KDE-Oberfläche integriert ist. Das bedeutete:
- Eine neue Architektur mit einem kleinen Helferprogramm, das JSON ausgibt.
- Ein Plasma-Widget, das die Daten visualisiert und Benutzerinteraktionen ermöglicht.
- Kein Versuch, den Swift-Code wiederzuverwenden – stattdessen eine vollständige Neuschreibung.
Strukturierte Planung mit KI-Unterstützung
Der nächste logische Schritt war eine detaillierte Planung. Dafür nutzte ich das Tool ticket (kurz tk), das mir half, die Arbeit in klare Abschnitte zu unterteilen. Mein KI-Assistent erstellte fünf Haupt-Epen:
- Kern-Scanner für Linux: Implementierung der Port-Scan-Funktionalität.
- MVP des Plasma-Widgets: Grundlegende Oberfläche mit Anzeige und ersten Aktionen.
- Benutzeraktionen und Sicherheit: Funktionen wie „Öffnen“, „URL kopieren“ und „Prozess beenden“.
- Verpackung und lokale Installation: Bereitstellung als installierbares Paket.
- Polieren, Zuverlässigkeit und Release-Vorbereitung: Feinabstimmung und Fehlerbehebung.
Insgesamt entstanden 38 konkrete Aufgaben, die in einer sinnvollen Reihenfolge abgearbeitet werden konnten. Als nächstes übertrug ich meinem KI-Assistenten die Umsetzung – mit einer klaren Anweisung: Arbeite weiter, bis alle Aufgaben erledigt sind.
Vom Konzept zur funktionierenden Anwendung
Das Ergebnis war beeindruckend. Der KI-Assistent baute die Anwendung in einer separaten linux/-Struktur auf, sodass der ursprüngliche macOS-Code unangetastet blieb. Dies war die richtige Entscheidung: Die Idee blieb erhalten, ohne dass versucht wurde, veralteten Code mitzuschleppen.
Die wichtigsten Komponenten waren:
- Ein Python-Scanner, der aktive Ports erkennt und Metadaten wie Prozessname, Arbeitsverzeichnis und URL sammelt.
- Ein JSON-basiertes Protokoll, das diese Daten an das Widget übermittelt.
- Ein Plasma-Widget, das die Informationen in einem Panel-Popup anzeigt und interaktiv macht.
Die ersten unterstützten Aktionen waren:
- Server öffnen
- URL kopieren
- Port kopieren
- Prozess beenden
Allerdings zeigte sich schnell, dass einige dieser Funktionen nicht optimal umsetzbar waren – etwa das separate Kopieren des Ports, das in der KDE-Umgebung redundant wirkte.
Qualitätskontrolle: Wo die KI an Grenzen stößt
Obwohl der KI-Assistent alle Aufgaben abschloss, war die Arbeit damit noch nicht beendet. Ich führte eine manuelle Prüfung durch und entdeckte mehrere Probleme:
- Die Verpackung des Pakets war zu fragil und führte bei der Installation zu Fehlern.
- Der Scanner konnte bei Zeitüberschreitungen das JSON-Protokoll brechen.
- Das Plasma-Widget hatte runtime-spezifische Eigenheiten, die erst bei der tatsächlichen Nutzung auffielen.
Dies unterstreicht eine wichtige Erkenntnis: KI-Tools sind hervorragend für die Implementierung, aber menschliche Kontrolle bleibt entscheidend. Besonders bei der Benutzerfreundlichkeit und dem Feinschliff sind menschliche Intuition und Erfahrung unverzichtbar.
Praxistest: Vom Konzept zur echten Nutzung
Nach der technischen Fertigstellung folgte der Praxistest. Zunächst fehlten mir lokale Entwicklungsserver – doch das war kein Problem. Mein KI-Assistent startete kurzerhand einen kleinen Flask-Server, um die Erkennung zu testen. Der Scanner lieferte prompt die gewünschten Daten:
{
"port": 5000,
"processName": "python",
"cwd": "/tmp/opencode",
"projectName": "opencode",
"url": "
}Plötzlich wurde die abstrakte Idee greifbar. Die App funktionierte, der Server wurde erkannt – und nun ging es darum, die Benutzererfahrung zu verfeinern. Ein Problem fiel sofort auf: Eine Schaltfläche war leer, weil das verwendete Symbol nicht im Plasma-Theme vorhanden war. Die Beschriftung für „Port kopieren“ war zwar vorhanden, aber das Icon fehlte.
Nach Rücksprache mit dem KI-Assistenten wurde die Oberfläche vereinfacht:
- Öffnen: Startet den Standard-Browser mit der Server-URL.
- URL kopieren: Kopiert die vollständige Adresse in die Zwischenablage.
- Beenden: Beendet den Prozess sofort (entspricht der roten „X“-Schaltfläche).
Ein neuer Name und ein neues Projekt entsteht
Während der KI-Assistent noch an den letzten Feinheiten arbeitete, hatte ich Zeit für eine wichtige Aufgabe: die Namensfindung. Portmanteau klang nicht nur ähnlich wie Port Menu, sondern ist selbst ein Portmanteau – ein Wortspiel aus zwei Begriffen. Zudem gefiel mir die Idee, ein Schiffssymbol (englisch: ship) als Icon zu verwenden, was perfekt zur Schifffahrtsmetapher von Ports passt.
Die eigentliche Lektion: Effizienz durch KI-gestützte Entwicklung
Dieses Projekt war kein klassischer Open-Source-Beitrag oder ein großes Software-Release. Es handelte sich um eine kleine, persönliche Lösung für ein konkretes Problem. Doch genau darin liegt der Charme moderner Entwicklung: Mit einigen wenigen Befehlen und KI-Unterstützung entsteht innerhalb kürzester Zeit eine funktionierende Anwendung.
Die Produktivitätsschleife war einfach, aber effektiv:
- Eine Idee formulieren.
- Planung und Struktur schaffen.
- Implementierung durch KI.
- Manuelle Prüfung und Anpassung.
- Testen und iterieren.
Dieser Ansatz zeigt, wie sich Softwareentwicklung heute verändert: Nicht mehr stundenlanges Recherchieren und manuelles Codieren, sondern ein interaktiver Dialog mit intelligenten Tools. Das Ergebnis? Eine Anwendung, die genau das tut, was ich brauche – und das auf einer Plattform, die ich täglich nutze.
KI-Zusammenfassung
macOS’e özel geliştirilen Port Menu aracını Linux’e uyarlamanın adımlarını keşfedin. Portmanteau adlı KDE Plasma widget’ıyla yerel port yönetimini kolaylaştırın.