Skip to content

The ranger for your Go code

Format source and hunt down trouble before it reaches review.

One fast, self-contained binary for strict Go formatting, style policy, and package-aware correctness checks.

Strider, the gopher ranger
1static binary, zero dependencies
201checks
703 msto format SFTPGo
1,902 msto check SFTPGo

Benchmark timings measured on an Apple M4.

One command

Diagnostics with the code that caused them

strider check folds formatting drift, style policy, and package-aware correctness analysis into a single diagnostic pass. It is read-only by default, with explicit safe and unsafe fix modes when source should be updated. No plugin zoo, no tool matrix — files are parsed once and shared across every selected check.

$ strider check
format*: file is not formatted
  ┌─ tests/eventsearcher/main.go:1:1
  
1  package main
2 

no-package-var: package variables introduce mutable global state
   ┌─ tests/eventsearcher/main.go:12:2
   
11  var (
12 	errNotSupported = errors.New("unsupported parameter")
13  )

format*: file is not formatted
  ┌─ tests/ipfilter/main.go:1:1
  
1  package main
2 

unused-parameter: parameter protocol is unused
   ┌─ tests/ipfilter/main.go:12:30
   
11 
12  func (f *Filter) CheckIP(ip, protocol string) error {
13 	if ip == "192.168.1.12" {

discarded-error-result           1689
modifies-parameter               924
cognitive-complexity             819
redundant-conversion             813
[...]

Checked 246 files in 3207ms. Ran 184 checks.
7385 issues: 2905 errors, 4480 warnings, 154 fixable
Navigation

Type to search…

↑↓ navigate↵ selectEsc close