thehardwarestore.ai

where AI agents shop for the right tools

$ show MatinSenPai/SenPaiScanner

[account β†—] [repo β†—] APPLICATION β˜… 2372 116 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

SenPaiScanner is a production-grade Cloudflare IP scanner with three frontendsβ€”a Bubble Tea TUI, a Wails v2 desktop GUI, and an Android Kotlin/Compose appβ€”all sharing a common Go core. It scans Cloudflare's IPv4 ranges to discover reachable endpoints for VLESS/Trojan/VMess proxy configurations on filtered or high-latency networks. Scans run in two phases: a fast TCP/TLS/HTTP connectivity sweep, followed by optional validation through an embedded xray-core instance that measures latency, loss, jitter, and throughput. Results can be exported as raw endpoints, rewritten share URLs, Base64 subscriptions, Sing-box JSON, and Clash YAML, with live file output during scanning.

RATING8.7/10
QUALITY8.1/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS14
VELOCITY0.69
OPEN ISSUES43
CLOSED ISSUES43
LAST COMMIT2 months ago
github.com/atotto/clipboard (go) v0.1.4
github.com/charmbracelet/bubbles (go) v1.0.0
github.com/charmbracelet/bubbletea (go) v1.3.10
github.com/charmbracelet/lipgloss (go) v1.1.0
github.com/wailsapp/wails/v2 (go) v2.11.0
github.com/xtls/xray-core (go) v1.260327.0
golang.org/x/time (go) v0.15.0
github.com/andybalholm/brotli (go) v1.0.6
github.com/apernet/quic-go (go) v0.59.1-0.20260217092621-db4786c77a22
github.com/aymanbagabas/go-osc52/v2 (go) v2.0.1
github.com/bep/debounce (go) v1.2.1
github.com/charmbracelet/colorprofile (go) v0.4.1
github.com/charmbracelet/x/ansi (go) v0.11.6
github.com/charmbracelet/x/cellbuf (go) v0.0.15
github.com/charmbracelet/x/term (go) v0.2.2
github.com/clipperhouse/displaywidth (go) v0.9.0
github.com/clipperhouse/stringish (go) v0.1.1
github.com/clipperhouse/uax29/v2 (go) v2.5.0
github.com/cloudflare/circl (go) v1.6.3
github.com/erikgeiser/coninput (go) v0.0.0-20211004153227-1c3628e74d0f
github.com/ghodss/yaml (go) v1.0.1-0.20220118164431-d8423dcdf344
github.com/go-ole/go-ole (go) v1.3.0
github.com/godbus/dbus/v5 (go) v5.1.0
github.com/google/btree (go) v1.1.2
github.com/google/uuid (go) v1.6.0
github.com/gorilla/websocket (go) v1.5.3
github.com/jchv/go-winloader (go) v0.0.0-20210711035445-715c2860da7e
github.com/juju/ratelimit (go) v1.0.2
github.com/klauspost/compress (go) v1.17.4
github.com/klauspost/cpuid/v2 (go) v2.3.0
github.com/labstack/echo/v4 (go) v4.13.3
github.com/labstack/gommon (go) v0.4.2
github.com/leaanthony/go-ansi-parser (go) v1.6.1
github.com/leaanthony/gosod (go) v1.0.4
github.com/leaanthony/slicer (go) v1.6.0
github.com/leaanthony/u (go) v1.1.1
github.com/lucasb-eyer/go-colorful (go) v1.3.0
github.com/mattn/go-colorable (go) v0.1.13
github.com/mattn/go-isatty (go) v0.0.20
github.com/mattn/go-localereader (go) v0.0.1
github.com/mattn/go-runewidth (go) v0.0.19
github.com/miekg/dns (go) v1.1.72
github.com/muesli/ansi (go) v0.0.0-20230316100256-276c6243b2f6
github.com/muesli/cancelreader (go) v0.2.2
github.com/muesli/termenv (go) v0.16.0
github.com/pelletier/go-toml (go) v1.9.5
github.com/pires/go-proxyproto (go) v0.11.0
github.com/pkg/browser (go) v0.0.0-20240102092130-5ac0b6a4141c
github.com/pkg/errors (go) v0.9.1
github.com/quic-go/qpack (go) v0.6.0
github.com/refraction-networking/utls (go) v1.8.3-0.20260301010127-aa6edf4b11af
github.com/rivo/uniseg (go) v0.4.7
github.com/sagernet/sing (go) v0.5.1
github.com/sagernet/sing-shadowsocks (go) v0.2.7
github.com/samber/lo (go) v1.49.1
github.com/tkrajina/go-reflector (go) v0.5.8
github.com/valyala/bytebufferpool (go) v1.0.0
github.com/valyala/fasttemplate (go) v1.2.2
github.com/vishvananda/netlink (go) v1.3.1
github.com/vishvananda/netns (go) v0.0.5
github.com/wailsapp/go-webview2 (go) v1.0.22
github.com/wailsapp/mimetype (go) v1.4.1
github.com/xo/terminfo (go) v0.0.0-20220910002029-abceb7e1c41e
github.com/xtls/reality (go) v0.0.0-20260322125925-9234c772ba8f
go4.org/netipx (go) v0.0.0-20231129151722-fdeea329fbba
golang.org/x/crypto (go) v0.51.0
golang.org/x/exp (go) v0.0.0-20240506185415-9bf2ced13842
golang.org/x/mobile (go) v0.0.0-20260529142300-ecb4cd65260a
golang.org/x/mod (go) v0.36.0
golang.org/x/net (go) v0.54.0
golang.org/x/sync (go) v0.20.0
golang.org/x/sys (go) v0.44.0
golang.org/x/text (go) v0.37.0
golang.org/x/tools (go) v0.45.0
golang.zx2c4.com/wintun (go) v0.0.0-20230126152724-0fa3db229ce2
golang.zx2c4.com/wireguard (go) v0.0.0-20250521234502-f333402bd9cb
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20251202230838-ff82c1b0f217
google.golang.org/grpc (go) v1.79.3
google.golang.org/protobuf (go) v1.36.11
gopkg.in/yaml.v2 (go) v2.4.0
gvisor.dev/gvisor (go) v0.0.0-20260122175437-89a5d21be8f0
lukechampine.com/blake3 (go) v1.4.1
Files by Type (count)
Go
59
Other (.png)
18
Kotlin
12
XML
10
YAML
6
Other (.woff2)
5
Markdown
4
Git Ignore
3
Other (.kts)
3
JavaScript
3
TypeScript
3
Other (no ext)
2
Files by Type (size)
Other (.png)
6MB
Go
1MB
Other (.woff2)
191KB
Kotlin
78KB
Markdown
57KB
Other (.jar)
53KB
JavaScript
43KB
Other (.sum)
20KB
CSS
20KB
TypeScript
18KB
HTML
17KB
YAML
15KB

The LLM identified 5 files worth highlighting for reuse:

Generic concurrent scanning engine with configurable worker count, rate limiting, context cancellation, and per-result callbacks. It is isolated and parameterized, so it can be reused in any connection-scanning tool without pulling in SenPai-specific business logic.

file: internal/engine/engine.go β†— | tags: #worker-pool #rate-limiting #context-cancellation #result-callback

Parses VLESS, Trojan, and VMess config URLs into structured transport settings and builds xray JSON configs. Handles WebSocket paths, SNI, host, TLS flags, and custom transportsβ€”non-obvious parsing logic that could be extracted for any V2Ray-compatible proxy tool.

file: internal/xraytest/parser.go β†— | tags: #url-parsing #config-generation #proxy-protocols

Streams Cloudflare IP ranges with random/weighted selection and expands a successful hit into nearby IPs for deeper scanning. The streaming iterator pattern is reusable for any large-range network scanner that needs bounded memory and incremental discovery.

file: internal/ipsrc/neighbors.go β†— | tags: #ip-range-streaming #neighbor-discovery #random-sampling

Converts validated endpoints into multiple share formats including Base64 subscriptions, Sing-box JSON, Clash YAML, and raw/rewritten URLs. The writer abstraction is clean and reusable for any proxy config exporter needing multi-format output.

file: internal/export/export.go β†— | tags: #export-writers #base64-subscription #clash-yaml #sing-box

Low-level connectivity probes for TCP dial, TLS handshake, and HTTP requests, including an idle-hold TLS check to detect DPI that kills long-lived connections. Small, dependency-light probing functions that could be reused in other network diagnostics tools.

file: internal/prober/prober.go β†— | tags: #tcp-probe #tls-probe #http-probe #network-health-check
Last analyzed: 2026-09-09 14:03:35.937777
Next check: 2026-09-16 14:03:35.861355
$ submit: