noisemap

command module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2026 License: MIT Imports: 4 Imported by: 0

README ΒΆ

 β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
 β–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—
 β–ˆβ–ˆβ•”β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
 β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•
 β–ˆβ–ˆβ•‘ β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘
 β•šβ•β•  β•šβ•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•     β•šβ•β•β•šβ•β•  β•šβ•β•β•šβ•β•

Codebase complexity heatmap for your terminal.

Visualize which files in your project are the riskiest β€” directly from the command line.

Go Version License Go CI Go Release Go Report Card Downloads Built with Bubble Tea

demo


What is noisemap?

noisemap scans any codebase and assigns every source file a risk score by combining two signals:

  • 🧠 Cyclomatic Complexity β€” how many decision branches exist in each file
  • πŸ”„ Git Churn β€” how many times each file has been changed in version history

The result is a color-coded heatmap: 🟒 Low β†’ 🟑 Medium β†’ 🟠 High β†’ πŸ”΄ Critical

High-churn + high-complexity files are your most dangerous files β€” the ones most likely to contain bugs and technical debt. noisemap makes them instantly visible.


Installation

Using go install

go install github.com/meetsoni15/noisemap@latest

Requires Go 1.24+. Make sure $GOPATH/bin is in your $PATH.

Build from Source

git clone https://github.com/meetsoni15/noisemap
cd noisemap
go build -o noisemap .

Usage

# Scan the current directory
noisemap

# Scan a specific project
noisemap ./path/to/your/project

# Show help & all keybindings
noisemap --help

# Show version
noisemap --version

Features

πŸ—Ί Heatmap View

  • Every source file is rendered as a colored β–ˆβ–ˆ block
  • Color intensity reflects the composite risk score
  • Navigate with j/k, selected file details shown below the grid
  • Toggle between list and heatmap views with v

πŸ“ File List View

  • Sortable list with β–ˆβ–ˆ risk color badges beside each file
  • Directory path shown in dim, filename in full
  • Score displayed inline
  • Scrollable with viewport tracking

πŸ” File Detail Pane

  • Full stats for the selected file: language, risk score, complexity, churn
  • 12-month sparkline of git activity β€” see if churn is increasing or stable
  • Top 5 most complex functions (Go files only, via AST analysis)
  • Risk band label: 🟒 Low / 🟑 Medium / 🟠 High / πŸ”΄ Critical

🧠 Complexity Analysis

Language Method
Go Full AST analysis β€” counts if, for, range, select, case, &&, `
JS / TS / Python / Java / Rust / C / C++ / Ruby / PHP Line-based keyword heuristics

πŸ”„ Git Churn Analysis

  • Runs git log --follow --oneline per file
  • Counts total commits touching each file
  • Builds 12-month monthly buckets for the sparkline chart
  • Gracefully handles non-git directories (churn = 0)

πŸ“Š Risk Scoring

Risk Score = 0.6 Γ— complexity_normalized + 0.4 Γ— churn_normalized
Score Band Color
0 – 30 Low 🟒 Green
30 – 60 Medium 🟑 Yellow
60 – 80 High 🟠 Orange
80 – 100 Critical πŸ”΄ Red

Keyboard Shortcuts

Global

Key Action
q / Ctrl+C Quit
v Toggle list / heatmap view
s Cycle sort: Risk β†’ Complexity β†’ Churn β†’ Name
r Re-scan the directory

Navigation

Key Action
j / ↓ Move down
k / ↑ Move up
g Jump to top
G Jump to bottom
Tab Switch pane (list ↔ detail)

Terminal Compatibility

noisemap works in any modern terminal emulator. For the best experience with full color rendering, use one of:


Built With

Library Purpose
Bubble Tea TUI framework (Elm architecture)
Lipgloss Styling, borders, color palette
Bubbles UI components

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request.

  1. Fork the repo
  2. Create a branch: git checkout -b feat/my-feature
  3. Commit your changes: git commit -m "feat: add my feature"
  4. Push and open a PR

License

MIT β€” see LICENSE for details.

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
internal
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL