mrkeyoor.com_
Tue 01 Sept 17:45 UTC
Dev Toolsevaluationupdated 26 Aug 2026

SenPaiScanner review

SenPai Scanner finds reachable Cloudflare edge addresses, ranks them, and can test the best candidates through a VLESS, Trojan, or VMess proxy configuration. It replaces blind IP guessing with discovery, end-to-end validation, speed testing, and client exports across desktop, Android, and terminal interfaces.

+20stars / 7d
Verdict

Our SenPai Scanner run installed 251 Go packages, built in 75 seconds, and passed all 7 tests in 25 seconds. It is a good first choice when the whole job is discovering and exporting usable Cloudflare endpoints on the network in front of you. Retest every result in the intended client, and check the open accessibility and Android compatibility reports before choosing an interface.

We ran it

Lab card: what happened when we ran SenPaiScannerScreenshot of SenPaiScanner (github.com/MatinSenPai/SenPaiScanner)
Install✓ · 44s251 packages
Build✓ · 75s
Tests✓ · 25s7 passed · 0 failed of 7 (go test)
Repo119 files~26,144 lines of source · 7 MB · 5 CI workflows

Answers from our run

Does SenPaiScanner build from source?

Dependencies installed in 44 seconds (251 packages), and the build succeeded in 75 seconds. We cloned commit c33b0b3 into a clean Debian container with 3 CPUs and no project-specific setup.

Do SenPaiScanner's tests pass?

Yes: 7 of 7 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use SenPaiScanner?

Anyone expecting a general port or vulnerability scanner: the README limits SenPai to Cloudflare reachability and supported proxy links.

What are the alternatives to SenPaiScanner?

CloudflareSpeedTest, Cloudflare IP Scanner, BPB Worker Panel. Our SenPai Scanner run installed 251 Go packages, built in 75 seconds, and passed all 7 tests in 25 seconds.

Setup5/5Build passed and all 7 tests passed; signed release assets are provided
Docs4/5Detailed English and Farsi workflows plus troubleshooting
Community3/52,339 stars with 42 combined open issues and pull requests
Maturity3/5Clean lab run, but v1.0.0 has open Android and access issues

Who it’s for

Users of Cloudflare-fronted proxies who need endpoints that work on their current ISP.
People who want one scanner across Windows, Linux, macOS, Android, and Termux.
Operators who need rewritten share links, Base64 subscriptions, Sing-box JSON, or Clash YAML.
Technical users who want to scan a supplied IP, CSV, or CIDR list before slower proxy validation.

Who it’s NOT for

Anyone expecting a general port or vulnerability scanner: the README limits SenPai to Cloudflare reachability and supported proxy links.
Users who cannot safely give a local tool a proxy share URL: those links can contain credentials and may be passed to embedded Xray validation.
Blind Windows users who depend on NVDA or JAWS: issue 125 says the full-screen TUI and constant redraws are difficult or unusable, with no plain-text mode.
Android 10 and MIUI users who need confirmed compatibility: issue 126 reports both v1.0.0 APK variants closing immediately on a Redmi 9C.
People who need a result that remains valid across networks or time: routing, filtering, and endpoint quality change.
Users without permission to probe the target ranges: the project limits scanning to authorized networks and addresses.

Setup reality

Our Go dependency install succeeded in 44 seconds and counted 251 packages. The build passed in 75 seconds. Tests completed in 25 seconds with 7 passed and 0 failed out of 7.

Release users can download a desktop archive, CLI binary, or Android APK and verify it with SHA256SUMS.txt. Useful proxy validation needs a known-good VLESS, Trojan, or VMess URL. Share links are credentials and must stay out of public logs.

Building the CLI needs Go; desktop adds Wails and native webview packages. Android adds JDK 17, SDK 36, mobile Go tools, Gradle, and signing choices. The 119-file checkout has 5 CI workflows but no Dockerfile or separate tests directory.

Discovery and Xray validation solve different problems

A Cloudflare address that works on one ISP may be slow, filtered, or unreachable on another. SenPai Scanner samples Cloudflare IPv4 ranges or reads addresses from a file, probes configurable ports, and records health, latency, loss, throughput, location, and status. This is endpoint discovery for a particular network, not a general security scanner.

A quick edge response does not prove the full proxy path works. SenPai can parse a VLESS, Trojan, or VMess link, derive SNI, host, path, transport, TLS, and port settings, then use an embedded Xray process to validate shortlisted addresses. TCP, WebSocket, gRPC, and XHTTP or SplitHTTP configurations are documented. That two-stage design avoids running expensive end-to-end tests against every random candidate.

Users can inspect and copy healthy results while discovery continues, stop when the shortlist is large enough, then speed-test only that set. Cancellation preserves earlier results. Every measurement is local and temporary, because ISP routing, filtering, Cloudflare load, wireless conditions, and the upstream proxy can all change after the scan.

Three interfaces use the same Go scanning engine

The desktop application runs on Windows, Linux, and macOS. Android 7 or newer gets a native Material interface, while the terminal UI supports desktop systems and Linux ARM64 in Termux. Running on the actual device and connection is useful here; a fast address measured on a server elsewhere may say little about a filtered mobile network.

The release publishes 6 CLI targets, 4 desktop GUI archives, and 3 Android APK choices. SHA256SUMS.txt lets users verify downloads. Android packages have a signing caveat: a future APK signed with another certificate cannot update the installed app in place. The README is English-first and links a Farsi translation for its core community.

What happened when we ran it

Our sandbox installed dependencies for commit c33b0b3 in 44 seconds and counted 251 Go packages. The build completed successfully in 75 seconds. The test command finished in 25 seconds with 7 passed and 0 failed out of 7. This was an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Go 1.24, and no secrets.

The checkout contained 119 files, about 26,144 source lines, and occupied 7 MB. We found 5 CI workflow files, no Dockerfile, and no separate tests directory. A small test count does not exercise every desktop, Android, ISP, and proxy combination, but this is the only project in this seven-repo set whose supplied install, build, and test steps all completed successfully.

The build result supports the CLI and shared Go code in our environment. It does not prove the Wails GUI, Android APK, embedded Xray behavior, or live endpoint quality because our lab block records no such run. Those need the published artifacts or their platform-specific toolchains and a network you are permitted to test.

Exports remove error-prone manual host replacement

A validated endpoint can be copied as IP:port, inserted into the original share URL, encoded as a Base64 subscription, or exported as Sing-box JSON and Clash YAML. This avoids manually editing encoded configuration fields after each scan. Results and exports have separate workspaces, so making a client file does not discard the live result table.

File mode accepts plain IPv4 addresses, the first field in a CSV line, or CIDR ranges. Weighted random sampling covers embedded Cloudflare ranges. Neighbor scanning explores addresses around successful candidates, but is disabled until the user opts in. Start with modest worker counts and a known port, then expand only if the baseline behaves predictably.

Proxy links may contain user IDs, passwords, hosts, and paths. Keep them out of screenshots, issues, logs, and sample files. Run SenPai on a trusted device, check where it writes exports, and redact configurations before requesting support. The project's responsible-use note also requires authorization for the ranges and networks being scanned.

Screen readers and one Android 10 device remain open gaps

Issue 125 comes from a blind Windows user who says the Bubble Tea full-screen interface is difficult or unusable with NVDA and JAWS. Alternate-screen rendering, continuous redraws, menus, and live result tables are the problem; there is no line-by-line accessible mode. That is a concrete reason to reject the CLI if a screen reader is required.

Issue 126 reports a Redmi 9C on Android 10 and MIUI 12 crashing just after the main screen appears. The reporter tried the universal and 32-bit APKs, reinstallation, cleared data, permissions, several networks, and a disabled VPN. One report does not establish a general Android defect, but owners of similar devices should test before relying on the app.

The repository was pushed on August 3, 2026, the same day v1.0.0 was released. GitHub showed 2,339 stars and 42 open issues and pull requests combined. That is an active niche audience around a first stable release, not a long compatibility record. Use the interface that works on your device, verify the downloaded artifact, and treat every exported endpoint as a result to recheck rather than a permanent answer.

Alternatives

ProjectWhat it isPick it when
CloudflareSpeedTest gh↗A focused CLI for Cloudflare IP latency and download testing.pick this instead when you want a mature narrow speed test without GUI, Android, Xray validation, or exports.
Cloudflare IP ScannerA compact scanner for usable Cloudflare addresses on restricted networks.pick this instead when basic endpoint discovery is enough and you prefer fewer interface layers.
BPB Worker Panel gh↗A Cloudflare-hosted panel that creates and manages proxy subscriptions.pick this instead when managing the proxy service matters more than ranking candidate IPs.

What people are saying

  1. [github-trending] MatinSenPai/SenPaiScanner

Sources

  1. SenPai Scanner README
  2. SenPai Scanner v1.0.0 release
  3. Screen-reader accessibility request
  4. Android 10 crash report

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →