IceSniff is an open-source packet analysis project focused on a modern UI, integrated AI panel, a scriptable CLI, and a shared Rust analysis engine.
The repository currently contains:
- a Rust CLI in
apps/cli - a native SwiftUI macOS app in
apps/macos - a local web app in
apps/live
IceSniff is released under the MIT License. See LICENSE.
-
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/MasterYoav/IceSniff/main/install.sh | shYou can also download our macos native app from Releases
-
Windows PowerShell:
irm https://raw.githubusercontent.com/MasterYoav/IceSniff/main/install.ps1 | iex
After install:
icesniffopens the terminal launcher menu with Live, CLI, and uninstall optionsicesniff-cliopens the full-screen TUI directly
The installer adds the launchers to the user PATH, so they can be run from a new terminal window without changing directories.
The CLI can:
- install through one-line platform installers with
icesniffandicesniff-clilaunchers - open and inspect
.pcapand.pcapngcaptures - list packets and inspect packet details
- calculate capture stats and conversation summaries
- analyze streams and transactions
- save filtered captures to a new PCAP file
- emit text or stable
--jsonoutput - run a full-screen terminal UI with sections, packet list/detail panes, filters, live capture controls, and save/open flows
- run a launcher menu that can start the TUI, start the local web app, or uninstall the CLI bundle
- perform live capture through the bundled runtime and platform capture helpers
Current protocol coverage includes:
- Ethernet, ARP, IPv4, TCP, UDP, ICMP
- DNS
- HTTP/1.1
- TLS handshake metadata and stream/transaction summaries
The native macOS app currently supports:
- opening existing capture files
- starting and stopping live capture
- packet, stats, conversations, streams, and transactions views
- packet detail inspection driven by the shared Rust backend
- local UI preferences for theme and font
- optional Google and GitHub sign-in through Supabase
- a packet-aware AI sidebar with offline mode, API-backed providers, and local Codex / Claude Code routes
The local web app currently supports:
- a browser-first packet/live-capture shell with a launcher-aligned layout, overlay section rail, and toggleable AI side panel
- opening local capture files through browser upload into a local temp workspace
- starting and stopping live capture through the Rust capture helper with an in-app toggle control
- saving the current capture from the packets view
- packet, stats, conversations, streams, and transactions views
- browser-local UI preferences for modern themes, fonts, and type scale
- a redesigned packets view with custom filter/input controls, interface picker, save toggle, and double-click packet preview
- analysis driven by the same
icesniff-cli+tsharkengine used by the macOS app
IceSniff is still early-stage software. Important gaps include:
- no Windows app yet
- no Linux desktop app yet
- protocol coverage is still limited compared with mature analyzers
- live capture depends on external system capture tooling and platform permissions
- cloud-backed profile sync is disabled in the public macOS build
- contributor-facing packaging and release workflows are still evolving
For the current macOS app:
- API keys are stored in macOS Keychain, not app preferences
- saved keys are not shown back in plain text after storage
- hosted AI requests use an ephemeral networking session with caching disabled
- Google AI credentials are sent in a request header instead of a URL query string
- provider and local-runtime failures are sanitized before they appear in the UI
Important limit:
- if a user chooses a hosted provider and sends a prompt, the selected packet context for that request is sent to that provider
cd apps/cli
cargo run -p icesniff-cli -- helpUseful commands:
cargo run -p icesniff-cli -- inspect path/to/capture.pcap
cargo run -p icesniff-cli -- list path/to/capture.pcap
cargo run -p icesniff-cli -- stats path/to/capture.pcap
cargo run -p icesniff-cli -- conversations path/to/capture.pcap
cargo run -p icesniff-cli -- streams path/to/capture.pcap
cargo run -p icesniff-cli -- transactions path/to/capture.pcapcd apps/macos
./scripts/sync-bundled-cli.sh
swift run IceSniffMaccd apps/live
node server.mjsThen open http://127.0.0.1:4318.
CONTRIBUTING.mdfor contribution rules and local workflowsdocs/architecture/overview.mdfor architecture notesdocs/feature-parity-matrix.mdfor cross-surface trackingdocs/cli/install.mdfor CLI bundle and installer commandsdocs/repo-map.mdfor repository structureapps/macos/README.mdfor macOS-specific setupapps/live/README.mdfor the local web app
If you want to help, areas with clear value right now include:
- protocol support and parser hardening
- live capture reliability across platforms
- filtering and analysis UX
- tests, fixtures, and regression coverage
- packaging and release automation
- future Windows app work
