Skip to content
symtrace logo

symtrace

See what actually changed in your code. symtrace understands code structure: showing you moved functions, renamed variables, and real logic changes instead of noisy line diffs.

What makes symtrace different from git diff?

Section titled “What makes symtrace different from git diff?”

Standard git diff only sees raw lines of text. When you move a function down a few lines or reformat spacing, git diff shows a confusing wall of red deletions and green additions.

Here is what happens when you move a 10-line helper function inside a file:

--- a/src/handler.rs
+++ b/src/handler.rs
@@ -10,8 +10,0 @@
-fn helper(user_id: u64) -> bool {
- let active = check_status(user_id);
- log_access(user_id);
- active
-}
@@ -30,8 +22,8 @@
+fn helper(user_id: u64) -> bool {
+ let active = check_status(user_id);
+ log_access(user_id);
+ active
+}
━━━ src/handler.rs
↔ [MOVE] function 'helper' moved (L10 -> L22) [100% match, safe]

git diff makes it look like 16 lines were rewritten from scratch. symtrace shows that the function was simply moved, with 0 logic changes.

Smart Compact Diffs

Get clean 1 to 3 line summaries for small edits using —compact. Removes over 85% of visual noise.

Impact & Caller Tracking

See which other functions and files will be affected when you change a function or parameter.

Safety & Guard Alerts

Warns you if a null check, array bounds check, or thread lock was accidentally removed.

Custom Code Rules (Linter)

Run custom rule checks with symtrace lint and catch policy violations directly in CI.

AI Prompt Optimization

Creates ultra-compact diff summaries for AI tools (Gemini, Claude, GPT), saving up to 80% of tokens.

Instant Speed Cache

Lightning-fast results in under 0.004 ms by instantly reusing results for unchanged files.

13 Languages Supported

Works out of the box with Rust, JavaScript, TypeScript, Python, Java, C, C++, Go, C#, Ruby, PHP, and JSON.

Terminal Inspector & Smart Merging

Browse changes interactively with symtrace tui, and resolve Git rebase conflicts automatically.

LanguageExtensions
Rust.rs (Rust 2021 & 2024 Edition)
JavaScript.js, .jsx, .mjs, .cjs
TypeScript.ts, .tsx
Python.py, .pyi
Java.java
C.c, .h
C++.cpp, .hpp, .cc, .cxx, .h++
Go.go
C#.cs
Ruby.rb
PHP.php
JSON.json, .jsonc
Terminal window
# Compare working directory against HEAD in your terminal
symtrace
# Show simple 1-line changes for quick review
symtrace --compact
# Check your code against custom project rules
symtrace lint . --max-warnings 0
# Export compact summary for AI coding assistants
symtrace . HEAD~1 HEAD --format prompt
# Open the visual terminal browser
symtrace tui
# Print a high-level summary table of changes
symtrace . HEAD --stat
# Check for code changes in CI or pre-commit hooks
symtrace . HEAD --check
# Export as Markdown or a standalone HTML report
symtrace . HEAD~1 HEAD --format markdown

See Quick Start Guide → or Installation Options →.