Lese-Ansicht

Graphify

Unser Buch Coding mit KI ist gerade erschienen, da taucht schon wieder ein neues Tool auf, das mehr Effizienz verspricht. Graphify erstellt einen sogenannten Knowledge Graph, also eine interne Datenbank über die Verknüpfungen zwischen Komponenten (Text, Code, Bilder, was auch immer) eines Projekts. In der Folge können KI-Tools wie Claude Code auf diese Datenbank zugreifen und sich damit rascher und vor allem Token-sparender im Projekt orientieren. Graphify funktioniert besonders gut für ungeordnete Verzeichnisse, in denen Sie PDFs, Screenshots etc. zu einem Thema ablegen, um diese Informationen später wieder zu nutzen.

Installation

Graphify ist ein Python-Programm (Open Source, MIT-Lizenz), das Sie am besten mit uv tool install auf Ihrem Rechner einrichten. (uv ist ein moderner Python-Modulmanager, über den ich demnächst hier schreiben will.) Beachten Sie, dass der Paketname graphifyy mit Doppel-Y lautet, während das Kommando graphify heißt.

uv tool install graphifyy installiert das Programm. Sofern PATH das Verzeichnis .local/bin enthält, kann graphify anschließend sofort gestartet werden. graphify install richtet Skill-Dateien für die auf Ihrem Rechner gefundenen KI-Tools (in meinem Fall: Claude) ein.

$ uv tool install graphifyy

$ graphify install
  skill installed  ->  /Users/kofler/.claude/skills/graphify/SKILL.md
  CLAUDE.md        ->  created at /Users/kofler/.claude/CLAUDE.md

  Done. Open your AI coding assistant and type:

  /graphify .

Verwendung

Im Projektverzeichnis starten Sie nun das KI-Tool Ihrer Wahl (in meinem Fall: Claude Code). Dort steht Graphify jetzt als Skill zur Verfügung. Einfach

/graphify .

analysiert das Projektverzeichnis und erstellt nach vielen Rückfragen das Verzeichnis graphify_out. Das dauert geraume Zeit und verbrennt etliche Tokens. Das Verzeichnis enthält die folgenden Dateien:

ls -l graphify-out/

drwxr-xr-x  4 kofler  staff     128  7 Mai  09:54 cache/
-rw-r--r--  1 kofler  staff     213  7 Mai  10:10 cost.json
-rw-r--r--  1 kofler  staff    8523  7 Mai  10:10 GRAPH_REPORT.md
-rw-r--r--  1 kofler  staff  139973  7 Mai  10:10 graph.html
-rw-r--r--  1 kofler  staff  137091  7 Mai  10:09 graph.json
-rw-r--r--  1 kofler  staff    7912  7 Mai  10:10 manifest.json

Ich habe meine Tests anhand einer Swift-App mit ca. 2000 Zeilen Code in diversen Dateien durchgeführt. Die Ergebnisse sehen eindrucksvoll aus, der unmittelbare Erkenntnisgewinn war aber — zumindest bei diesem Projekt — überschaubar.

Der anklickbare »Knowledge Graph«
Kurzfassung der Projektzusammenhänge im Markdown-Format

Wenn Sie Änderungen in der Code-Basis oder in Ihren Dateien durchführen, aktualisieren Sie den Knowledge Graph:

/graphify . --update        # merge changed content into existing graph

Der Knowledge Graph kann jetzt die Grundlage für Analysen mit /graphify explain oder graphiy query sein (Ausgabe etwas gekürzt):

/graphify explain "the sync process"

  Here's what the graph tells us about the sync process, grounded in the
  extracted edges:

  The sync process is orchestrated by ShoppingViewModel.pullMergePushSave
  (RestShopping.swift:125-175), which implements the Pull-Merge-Push lifecycle
  documented in CLAUDE.md. The graph found 16 nodes directly connected to this
  concept.

  The three phases (all EXTRACTED edges):

  1. Pull — apiPullItems (RestShopping.swift:62-93) fetches items from the
     remote REST API since the last sync timestamp.
  2. Merge — mergeItems (RestShopping.swift:178-193) resolves conflicts using
     Timestamp-Wins: whichever version of an item has the newer updatedAt
     wins. Two design rationale nodes connect here:
    - Timestamp-Wins Conflict Resolution → mergeItems [EXTRACTED]
    - Soft Delete Pattern → ShoppingItem [EXTRACTED] — items are never truly
      removed; isDeleted = true propagates deletions to other devices through
      the sync
  3. Push — apiPushItems (RestShopping.swift:96-120) uploads the merged state
     back to the server.
  4. Persist — saveLocally (ViewModel.swift:172-178) writes the final state to
     the local JSON file. mergeItems then calls replaceItem to update the
     ViewModel's live state.

  Wire format bridge: ItemDTO (RestShopping.swift:9-53) shares data with
   ShoppingItem [EXTRACTED] — it translates between the app's model and the
   API's integer-boolean/ISO 8601 wire format.

  Trigger points: ContentView and StatusView both connect to pullMergePushSave
  in the graph. ContentView runs it via .task, .onChange(scenePhase), and a
  40-second timer. StatusView (in Settings) provides a manual
  trigger. setupNewFamily and joinFamily also call pullMergePushSave as a final
  step after family registration.

  The most interesting angle here: the Soft Delete pattern is the load-bearing
  coupling between ShoppingItem (the model) and the sync logic — if you ever
  changed ShoppingItem to hard-delete, mergeItems would silently stop
  propagating deletions. Want me to trace the path from ShoppingItem.isDeleted
  through to what happens when a remote device pulls?

/graphify query "Where in code is the Category class used? 
                 Could we drop the @Observable attribute?"

  Here's what the graph found — and where its limits are:

  Where Category is used (from the graph):

  The BFS found 10 nodes. The confirmed connections [EXTRACTED]:
  - Category → shares_data_with → ShoppingViewModel (ViewModel.swift:1-181) —
    the ViewModel holds the categories: [Category] array
  - Category.predefinedCategories (Category.swift:24-37) ↔ ShoppingViewModel —
    the ViewModel calls this at init to populate its categories
  - .predefinedCategories() → calls → Color — each category has a color
    assigned

  What the graph is missing: There are no direct edges from Category to the
  view layer (CategoriesView, CategoryButton, EditItemView,
  CategoryRadioButton). Those views access categories through vm.categories and
  mutate category.isSelected/category.isExpanded directly — but the graph
  didn't capture these view→Category property access edges since they go
  through the ViewModel and aren't explicit call-site imports.

  On dropping @Observable:

  The graph can't answer this definitively — it would require the actual
  property mutation sites. But from the CLAUDE.md rationale node captured in
  the graph: "Mutable reference-type state (isSelected, isExpanded) is mutated
  directly from views." That design decision is precisely why @Observable is
  needed. Without it, those direct mutations on the reference type wouldn't
  trigger SwiftUI view updates — CategoriesView and EditItemView would stop
  reacting to category selection changes.

  Verdict from the graph: @Observable cannot be safely dropped without a larger
  refactor (e.g., moving isSelected/isExpanded into the ViewModel as @State or
  @Published backing). The graph confirms the coupling exists; reading
  Category.swift:4-112 directly would show exactly which properties are var vs
  let.

Die Website preist den größten Vorteil von Graphify an, dass derartige Abfragen auf der Basis des lokalen Knowledge Graphs nun wesentlich weniger Token verbrauchen als wenn das KI-Tool mit find und grep die Codebasis durchsucht und (immer wieder neu) analysiert. Bei meinen Tests ließ sich das Ausmaß der Ersparnis schwer messen. Die Grundidee ist aber gut, die Implementierung sieht sehr vielversprechend aus.

Quellen/Links

  •  

DI.DAY - Zwei neue Rezepte

Beim monatlichen Tag für die digitale Unabhängigkeit gibt es zwei neue Rezepte. Ihr könnt euch Alternativen zu KI-Chatbots schmecken lassen oder faire Musik-Streamer kosten. Ich wünsche einen guten Appetit.

  •  

Union bringt frischen Stil in KDE Plasma 6.7

Mit Plasma 6.7 rückt ein lange vorbereitetes Projekt ins Rampenlicht. Union soll das neue Herzstück für Oberflächenstil und Themen in KDE werden. Die Entwickler haben in den vergangenen Monaten große Fortschritte erzielt und bereiten nun die erste Veröffentlichung vor. Union setzt künftig auf CSS als Eingabeformat. Das alte SVG‑System war für Designer oft mühsam und […]

Der Beitrag Union bringt frischen Stil in KDE Plasma 6.7 erschien zuerst auf fosstopia.

  •  

COSMIC Desktop 1.0.12 bringt wichtige Verbesserungen für den Alltag

System76 liefert mit COSMIC Desktop 1.0.12 ein kompaktes Update, das viele kleine Schwächen ausräumt. Die neue Version setzt auf Rust 1.93 und aktualisiert zahlreiche Bibliotheken im gesamten COSMIC Stackl. Dadurch wirkt der Desktop stabiler und reagiert zuverlässiger. Der Compositor erhält eine modernisierte Smithay Basis. Diese Änderung behebt Probleme beim Ziehen von Dateien und verbessert das […]

Der Beitrag COSMIC Desktop 1.0.12 bringt wichtige Verbesserungen für den Alltag erschien zuerst auf fosstopia.

  •  

Flatpak 1.17.7 bringt spürbare Tempo Vorteile für Linux Apps

Die neue Flatpak Version 1.17.7 steht bereit und liefert mehrere Verbesserungen für den Linux Desktop. Der Fokus liegt klar auf effizienterer Verwaltung von App Daten und einem schnelleren Startverhalten verschiedener Werkzeuge. Dazu erscheint auch eine aktualisierte Ausgabe des XDG Desktop Portals. Eine zentrale Neuerung betrifft die Abfrage des Alters der Konfiguration. Flatpak kann nun erkennen, […]

Der Beitrag Flatpak 1.17.7 bringt spürbare Tempo Vorteile für Linux Apps erschien zuerst auf fosstopia.

  •  

Decades-long victory, bold Apple survey findings, legal workshop success & our 50th podcast episode

Decades-long victory, bold Apple survey findings, legal workshop success & our 50th podcast episode

April brought LLW, where we gathered with Legal Network members to discuss a wide range of legal and licensing topics. One of them was the DMA, legislation that is keeping us busy: we are exposing how Apple keeps blocking third-party developers, denying their interoperability requests. On a brighter note, over ten years of advocacy paid off: the EC is protecting users' right to install any software on radio devices. And we reached episode 50 in our SFP!

"I spent all of my training budget this year on coming to LLW, but just the networking itself has already paid off!" LLW 2026 participant

European policy news: RED and DMA interoperability

We are starting this new month with great news: after more than ten years of persistent advocacy, we have a significant win to celebrate. The European Commission has decided to protect users' right to install any software on their radio devices, abandoning the article in the Radio Equipment Directive that threatened to undermine this freedom. This decision shows that persistent, evidence-based engagement with EU policy processes can achieve, and protect, software freedom. But this is also only possible when we have the long-term resources and stability to stay in the room, follow the process, and act at the right moment. That is exactly why we need your continued support.

Meanwhile, we have monitored how Apple is implementing its interoperability obligations under the DMA. Our recently released report “The challenges of regulating interoperability: Analysing Apple’s request-based approach under the Digital Markets Act” sheds light on how Apple has handled those requests in practice. Our analysis shows how 56 interoperability requests under the Digital Markets Act have produced no concrete solutions by Apple, and how their refusals contradict their own official documentation, leaving third-party developers locked out of iOS and iPadOS, despite the European Commission’s latest specification decision.

Following our publication, we published a summary of the report in the Tagesspiegel Background (DE). In the contribution, we explain how interoperability can be a powerful tool to break tech monopolies in the mobile market, and how its enforcement in the DMA is needed to empower Free Software developers.

Software Freedom Podcast: episode 50 about NGI

And more European news! Did you know that the FSFE is a partner of the European initiative Next Generation Internet Zero? Under this umbrella, the FSFE supports NGI0 grantee projects on legal and licensing issues, as well as helping them to become REUSE compliant. Although this project is ending next year, we are also happy to announce the new initiative that will follow in its steps: the EU project Restack. Listen to the latest episode of our podcast in which Bonnie and Gabriel discuss NGI0, introduce Restack, and explain why we need sustainable long term funding for fostering the Free Software ecosystem. If you know a Free Software project, or you have an idea that can contribute to an open, resilient, trustworthy, sustainable, and human-centered internet, you can apply for NGI0 funding:https://nlnet.nl/funding.html.

By the way, this is episode 50 of our podcast! We want to take a moment to thank every single one of you on the other side, listening to the Software Freedom Podcast. Fifty episodes in, and it is your curiosity, your support, and your commitment to software freedom that keep this going. We are truly grateful to our community and our listeners! And if you are a newcomer, you can find all our episodes here.

From the stages: LLW and more!

But that is not all that has happened in the last weeks! A few weeks ago the Free Software Legal & Licensing Workshop 2026 took place in Berlin, bringing together over 100 legal and compliance professionals, technologists, and policy experts from all over the globe. The LLW, organised by the FSFE, continued to explore the evolving legal landscapes impacting Free Software, with many discussions focusing on how software licensing is impacted by the advent of large language models and AI. Ths event was, once again, possible thanks to our 2026 sponsors: our Diamond sponsors Mercedes and Red Hat; the Sapphire sponsors Amazon (AWS), Microsoft, and Siemens; Topaz sponsors Bosch, Ericsson, and Google; and our Ruby sponsors Bird & Bird, Eclipse Foundation, and Liferay.

Not only at LLW did we learn about legal topics. Check out our Mastodon handle, where we regularly post poll questions on legal topics. They can come in handy in unexpected places: thanks to one of those polls, this editor actually knew an answer at the Pub Quiz during OggCamp 2026!

Speaking of which, these past weeks have been busy on the events front. After seven years, we were thrilled to return to OggCamp, where we ran an information booth and gave presentations. We also attended FOSS North, and last weekend joined the Augsburger Linux Info Day, where we delivered a keynote and a workshop.

In the coming weeks, our volunteers will be at the Festival de Tecnologia Popular de Setúbal, the Tübingen Digital Freedom Days, and more! Check events.fsfe.org.

From the Ada workshop

The illustrated story of ‘Ada & Zangemann’ continues reaching kids (and adults) worldwide. Recently, the Austrian Ministry of Education released an online course about ‘Ada & Zangemann’ with really cool exercises (and for students of German it can also be a great way to practice their German skills with Ada).

Your support helps us move our work forward

We may be behind the wheel, but you’re the ones keeping us moving forward. You can also support us, contribute to our work, and join our community. Are you using social media? If so, do not forget to follow us there! You can also follow the FSFE news in your RSS Reader.

Your editor, Ana

Support FSFE

  •  

YouPlayTx

Die aktuelle Version des YouTube-Players und Downloaders glänzt mit einer schnellen und funktionalen TUI-Oberfläche. Mit den Zusatzfunktionen macht das Hören Spass.

  •  

Ubuntu sortiert sich neu: Weniger offizielle Flavors für mehr Fokus

Ubuntu steht vor einem spürbaren Wandel. Die Zahl der offiziellen Varianten / Flavors schrumpft und genau das sorgt für neue Diskussionen in der Community. Viele Nutzer lieben die große Auswahl, doch immer mehr Projekte kämpfen mit knappen Ressourcen und fehlenden Maintainern. Die Vielfalt bleibt ein Kernstück der Linux Welt, doch Ubuntu muss klarer zeigen, welche […]

Der Beitrag Ubuntu sortiert sich neu: Weniger offizielle Flavors für mehr Fokus erschien zuerst auf fosstopia.

  •  

Europas neue souveräne Cloud Offensive startet mit vier Großprojekten

Die EU Kommission versucht erneut, eine eigene Cloudlandschaft zu formen. Nach einem Bericht von Security Insider soll ein neues Programm nun zeigen, dass Europa mehr kann als große Worte. Vier frisch vergebene Verträge markieren den Beginn eines Projekts, das echte digitale Unabhängigkeit schaffen soll. Im Zentrum steht ein europäischer Standard für Datensouveränität. Die meisten beteiligten […]

Der Beitrag Europas neue souveräne Cloud Offensive startet mit vier Großprojekten erschien zuerst auf fosstopia.

  •  
❌