Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Visual traceroute desktop app. Run traceroute from your network, enrich hops with GeoIP and ASN metadata, and animate routes on a 3D globe.
Developer toolsTypeScript · RustGitHub @rush-skillsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Visual traceroute desktop application built with Electron and React
Taken from the repository README
Loading the full README.
Read the full README ↗Visual traceroute desktop application built with Tauri v2 and React. VisTracer executes traceroute locally, enriches hops with GeoIP, ASN, and external registry metadata, and animates hop-to-hop routes on a 3D globe alongside an interactive hop timeline.
Pre-built binaries are available on the Releases page:
| Platform | Format |
|---|---|
| macOS | .dmg: one universal DMG for Apple Silicon and Intel (releases after v1.0.0; v1.0.0 is Apple Silicon only) |
| Windows | .exe (NSIS installer) |
| Linux | .AppImage, .deb |
Releases after v1.0.0 update themselves: VisTracer checks the latest GitHub release on start and offers Install and restart. Downloads are signature-checked before they are installed.
VisTracer draws in the web view of the operating system. The globe needs at least:
| Platform | Web view |
|---|---|
| macOS | macOS 11 or later with Safari 16.4 or later (built in from macOS 13.3; on macOS 11 and 12, install the Safari update from Software Update). VisTracer does not start on macOS 10.15 or earlier. |
| Windows | Microsoft Edge WebView2 110 or later. WebView2 updates itself, and the installer adds it when it is missing. |
| Linux | WebKitGTK 2.46 or later (libwebkit2gtk-4.1). |
With an older web view, the globe cannot draw. Details: docs/architecture.md.
VisTracer is built as a native desktop application (Tauri v2 + Rust) rather than a web app because traceroute requires native system access. Web browsers cannot execute system commands like traceroute or tracert for security reasons. As a Tauri app, VisTracer can:
This architecture ensures you get authentic network diagnostics from your actual location and ISP, rather than relying on remote servers or limited browser APIs.
traceroute (macOS/Linux) or tracert (Windows) binary.VisTracer can provide rich geographic visualization and network details when MaxMind GeoLite2 databases are available. The application will work without them, but it falls back to public registries, so location and ASN accuracy may drift.
Quick Setup:
GeoLite2-City.mmdb and GeoLite2-ASN.mmdbFor detailed setup instructions, including custom paths and troubleshooting, see GEOLITE2_SETUP.md.
If databases are missing, a warning banner appears in the status bar (bottom left). The same settings can be opened from the banner or the gear icon; no restart is needed.
In addition to GeoLite2, VisTracer looks up each public hop address in these registry services:
| Provider | Gives | Credentials | Default |
|---|---|---|---|
| Team Cymru | Origin ASN, BGP prefix, registry, AS name (whois over TCP port 43) | none | on |
RDAP (default https://rdap.org/ip) | Network name, registrant org, CIDR, country | optional custom base URL | on |
| RIPEstat | Announced prefix and origin ASNs from live BGP data | identifies as VisTracer | on |
| PeeringDB | Network type, peering policy, IXP and facility counts per ASN | optional API key (higher rate limit) | off |
| Internet exchanges | PeeringDB's public exchange list, used to place hops at an exchange. Nothing about your route is sent. | none (uses the PeeringDB key if one is saved) | on |
See docs/architecture.md for the pipeline and the merge rules.
GeoLite2 often puts a router at its operator's head office or in the middle of a country. VisTracer collects every location candidate for a hop and picks the best one:
| Source | Example | Typical radius |
|---|---|---|
| Exchange (IX) peering LAN (PeeringDB) | 80.81.192.96 is on the DE-CIX Frankfurt LAN | 25–150 km |
| Router host name | be2816.ccr42.ham01.atlas.cogentco.com names Hamburg | 50 km |
| GeoLite2 city / country | "Bengaluru, India" or "United States" | 20–1000 km |
Data sources and licenses: src-tauri/data/README.md (OurAirports, public domain) and docs/third-party-data.md. Rules and known limits: docs/architecture.md#hop-locations.
traceroute -I (ICMP) and -T (TCP) need raw-socket privileges on Linux. Without them, VisTracer runs the trace again with UDP probes and shows a notice. To allow ICMP/TCP without running the app as root, give the system binary the capability once:
sudo setcap cap_net_raw+ep "$(readlink -f "$(command -v traceroute)")"
On macOS, TCP traces ask for your administrator password; VisTracer only runs /usr/sbin, /usr/bin, /sbin or /bin binaries that root owns with elevated rights.
npm install
Run the Tauri + Vite development environment:
npm run tauri:dev
The command starts the Vite dev server for the frontend and compiles/launches the Rust backend. Frontend changes benefit from hot-reload; Rust changes trigger an automatic recompile.
npm run build
Tauri bundles native installers for each platform:
npm run tauri:build # builds frontend + Rust backend and produces platform installer
Build artifacts are placed in src-tauri/target/release/bundle/.
Cross-building tip: Creating Windows installers from macOS/Linux (or vice versa) requires the platform-specific toolchain (
xcode-select --installon macOS,wine/monofor Windows targets,fpmfor Debian packages). For the most reliable output, run the matching command on that operating system or inside a CI runner/VM that provides the necessary dependencies.
npm run lint # ESLint across renderer and shared sources
npm run typecheck # TypeScript type check
npm run test # Vitest unit and component tests
npm run test:e2e # Vitest bridge/store integration tests
cd src-tauri && cargo test # Rust tests
cd src-tauri && cargo clippy --all-targets -- -D warnings
src/
renderer/ React application (modules, state store, CesiumJS globe, hooks)
public/ Files loaded by URL: bundled globe imagery, country borders
common/ Shared TypeScript contracts (bridge, IPC types, net utils)
src-tauri/
src/ Rust backend (commands, persistence, traceroute, geo, DNS)
assets/ Logo, app icons and README media (not shipped in the app, except the logo)
Open the settings from the gear icon in the toolbar (or the status bar banner, if shown) to review the current GeoLite2 status and edit paths. The modal displays the last update time along with success/error badges for each file.
.mmdb files at any time; VisTracer will reload them immediately.For detailed instructions on downloading, installing, and updating databases, see GEOLITE2_SETUP.md.
Note: The application works without databases but provides limited information (no geographic coordinates, city names, or ASN details).
| Keys | Does |
|---|---|
| ⌘K (macOS), Ctrl+K (Windows, Linux) | Open or close the command bar: search any command, go to a hop, show or hide a layer (such as "show cloud regions", "show AWS regions" or "show Starlink satellites"), switch theme, export, clear the tile cache, or type a host name to trace it |
| ↑ ↓, Enter, Esc | In the command bar: move, run, close |
| ← → (or ↑ ↓), Home, End | In the hop timeline: select the previous, next, first or last hop |
| Enter, Space | In the hop table: select the hop |
| Esc | Close the command bar, the layer panel, the credits or a dialog; hide the hover card of a hop focused in the timeline |
gibs.earthdata.nasa.gov, no account or key). The backend fetches them and keeps them in a 500 MB cache in the app cache folder; Integration settings → Globe imagery shows its size and clears it. Offline, the globe magnifies the bundled tiles and says that detailed imagery is unavailable. These downloads show NASA the approximate areas you zoom into. Automatic camera moves (following a trace, selecting a hop, exports) stay zoomed out far enough that they use only the bundled imagery. Online tiles stay off at start-up and after such moves until you zoom, drag or tilt the globe yourself, so only your own camera moves download tiles. Switch Online imagery off in the layer panel to download none at all.Data sources and licenses: docs/third-party-data.md.
MediaRecorder) and GIF (bundled encoder).~/Downloads on macOS/Linux or C:\Users\<username>\Downloads on Windows).vistracer-snapshot-YYYY-MM-DDTHH-MM-SS.ext for stills and vistracer-route-YYYY-MM-DDTHH-MM-SS.ext for animations.tracert only sends ICMP probes, three per hop; the UDP/TCP choice does not apply thereSee CONTRIBUTING.md for development setup, coding standards, and PR workflow.
www.submarinecablemap.comcelestrak.org (CelesTrak, free under its usage policy) and what the requests show; nothing is downloaded before you accept or while the layer is off. VisTracer keeps each group for 12 hours, asks for a group at most once in 2 hours and stops for 2 hours after an error, as CelesTrak asks. The positions are SGP4 estimates, updated once a second (not while the window is hidden); hover a satellite for its name, NORAD number, altitude and the age of its elements. Starlink is drawn with up to 12,000 small points.