← Retour au blog
tech 7 June 2026

Sem: A New Approach for Code Understanding – Beyond LSPs, Entities on Git

Explore how Sem revolutionizes code understanding by offering a semantic approach based on Git, surpassing the limitations of traditional LSPs.

Article inspired by the original source
Sem: New primitive for code understanding – not LSPs, but entities on top of Git ↗ ataraxy-labs.github.io

Introduction

In the world of software development, understanding code is crucial for maintaining and evolving projects efficiently. Language Server Protocols (LSPs) have long been the tool of choice for analyzing and navigating code. However, a promising new approach is emerging: Sem, a primitive that offers semantic code understanding based on Git, transcending simple lines of code to focus on entities.

Sem: What Is It?

Sem is a tool that integrates with any Git repository without configuration or plugins. It consists of six main commands that allow you to analyze code through the lens of entities such as functions, classes, and methods. This provides a more nuanced and accurate perspective on changes and code evolution.

Key Differences with LSPs

Unlike LSPs, which generally focus on the syntactic structure of the code, Sem emphasizes entities and their relationships. For example, during a git diff, Sem presents additions, modifications, and deletions at a semantic level, detecting renames and offering word-level highlights. This improves AI agents' accuracy by 2.3 times compared to traditional diffs.

Sem Features

sem diff

This command allows you to view differences semantically. Imagine a scenario where you add a new function or modify existing logic. Sem shows you exactly what has changed at the entity level, not just lines of code.

sem blame

Who changed what? This command displays the last commit that touched each function or class, offering improved traceability.

sem impact

Understanding the impact of a modification is essential for risk assessment. Sem generates a dependency graph that shows which entities depend on a given function and which tests are affected.

sem log

View the Git history of a single entity. This means you can see every commit that modified a specific function, making code evolution analysis easier.

sem entities

Lists all functions, classes, methods, and types in a given file with their line ranges. This offers a quick overview of the entities present in a file.

Use Cases

Let's take a concrete example: a company developing an authentication management API. With Sem, they can quickly identify changes in critical functions like authenticateUser or validateToken, understand who made these changes, and assess their impact on other modules and tests.

Why Adopt Sem?

Sem's ability to provide precise and rapid semantic code understanding makes it indispensable for development teams looking to improve their productivity and code quality. With support for 26 languages and 5 data formats, Sem easily integrates into any tech stack.

Conclusion

Sem represents a significant advancement in code understanding. By emphasizing entities rather than lines of code, it offers a more detailed and relevant view of changes in the source code. Ready to transform how you understand code? Let's discuss your project in 15 minutes.

code understanding Git Sem software development LSPs
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call