sem is a semantic version control tool that works on top of Git. It parses your code with tree-sitter, extracts every function, class, and method as an entity, and diffs at the entity level instead of lines. This means you see "function blahh was modified" instead of "lines x-y changed." It works in any Git repo with no setup. It can run as the default `git diff` tool; see the WWW for setup instructions.