sem – Semantisches Versionsverwaltungs-Tool, das Git Änderungsverfolgung auf Funktions-/Klassenebene hinzufügt
(github.com/Ataraxy-Labs)- Vergleicht Code-Entitäten statt Zeilen und zeigt, welche Funktionen/Methoden/Klassen hinzugefügt, geändert, gelöscht, verschoben oder umbenannt wurden
- „Zeilen x–y wurden geändert“ → „Funktion
blahwurde geändert“
- „Zeilen x–y wurden geändert“ → „Funktion
- Funktioniert ohne Konfiguration in jedem Git-Repository und kann auch außerhalb von Git beliebige Dateien vergleichen
- Der in SQLite gespeicherte Entitäts-Cache liegt im OS-Cache-Verzeichnis außerhalb des Repositorys und verschmutzt den Working Tree nicht
- Parst Code mit tree-sitter und verknüpft Code vor und nach Änderungen in der Reihenfolge Entitäts-ID → AST-Struktur-Hash → über 80 % Token-Ähnlichkeit, um Renames und Verschiebungen zu erkennen
-
Unterstützte Befehle
sem diff: Vergleicht Working Tree/Staging/Commits/Commit-Bereiche/zwei beliebige Dateien und unterstützt Ausgabe als Plain Text/Markdown/JSONsem impact: Findet abhängigen Code/Caller/Tests, die bei der Änderung einer bestimmten Funktion betroffen sindsem blame: Zeigt den letzten Bearbeiter auf Entitätsebene für eine Funktion/Klasse/Methodesem log: Verfolgt über die Git-History, wie sich eine einzelne Entität verändert hat- Wenn keine Entität angegeben wird, analysiert es Hotspots (häufig geänderte Elemente) / Co-change Pairs (Paare, die wiederholt gemeinsam geändert wurden) im Repository („Wenn du das eine anfasst, vergiss auch das hier nicht“)
sem entities: Zeigt alle Entitäten unterhalb des aktuellen Ordners ansem context: Stellt nur den für einen Agenten benötigten umgebenden Code passend zum Token-Budget zusammensem setup: Nach der Ausführung wird das bestehendegit diffauf Ausgabe auf Entitätsebene umgestellt; außerdem wird ein Pre-commit-Hook installiert, der den Impact von staged Änderungen zeigt- Unter macOS und Linux bindet es in Claude Code einen residenten Abhängigkeitsgraphen und einen Kontext-Hook beim Prompt-Start ein, um den Aufwand zu reduzieren, jedes Mal das Repository neu zu analysieren oder Code zu suchen
sem mcp: Stelltdiff,impact,context,entities,blame,logals MCP-Tools bereit, damit Coding-Agenten statt ganzer Dateien nur die benötigten Funktionen und Abhängigkeiten abfragen
- Wenn eine GitHub Action hinzugefügt wird, werden bei jedem PR die geänderten Funktionen/Klassen/Methoden in einem einzelnen fixierten Kommentar aktualisiert; auch PRs, bei denen nur Formatierung/Kommentare geändert wurden, werden unterschieden
- Unterstützt 32 Sprachen, darunter TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++, sowie JSON/YAML/TOML/CSV/Markdown
- Nicht unterstützte Dateien werden als Diff auf Chunk-Ebene behandelt
- Lizenz: MIT OR Apache-2.0
Noch keine Kommentare.