Normalize
Code intelligence CLI for navigating and analyzing codebases.
Normalize understands code structure (functions, classes, imports) rather than treating code as text. This enables precise navigation, accurate analysis, and structural modifications.
Quick Start
# Build from source
git clone https://github.com/rhi-zone/normalize
cd normalize
cargo build --release
# Or with Nix
nix develop
cargo build --release
# View a file's structure
normalize view src/main.rs
# Analyze codebase health
normalize analyze health
# Search for a symbol by name
normalize view MyClassCore Commands
| Command | Purpose | Example |
|---|---|---|
view | Navigate structure | normalize view src/ or normalize view MyClass |
analyze | Quality metrics | normalize analyze health or normalize analyze complexity |
tools | Run linters | normalize tools lint or normalize tools test |
What It Does
Navigate code structure - Browse directories, files, and symbols as a unified tree. Find any function or class by name across the entire codebase.
Analyze code quality - Health metrics, cyclomatic complexity, function length, duplicate detection, and security scanning.
Run ecosystem tools - Unified interface to linters (ruff, clippy, eslint, oxlint), formatters, and type checkers with consistent output.
98 language support - Tree-sitter grammars for Python, Rust, TypeScript, JavaScript, Go, Java, C, C++, and many more.
Configuration
Create .normalize/config.toml:
[index]
enabled = true
[view]
depth = 1
line_numbers = false
[filter.aliases]
tests = ["**/test_*.py", "**/*_test.go"]Documentation
- CLI Reference - All commands and options
- Language Support - 98 supported languages
- Philosophy - Design tenets and principles