Issues and pull requests are welcome.
Rust 1.96.0, pinned in rust-toolchain.toml. The desktop app also needs
Node.js 18+.
cargo build -p netscli # debug
cargo build --release -p netscli # CLI, TUI and MCP server
cargo test --allThe desktop app runs through Tauri:
cd apps/netscli-gui
npm install
npm run tauri:devLaunch it that way rather than running the built binary directly. A debug
Tauri build expects the Vite dev server on localhost:1420 and shows an empty
window without it. To produce installers instead, use npm run tauri build.
Packet capture is feature-gated so the default binary has no non-Rust runtime
dependencies. Build it with --features pcap.
On Windows that also needs the Npcap SDK. scripts/test-pcap.ps1 sets LIB,
INCLUDE and the runtime PATH for you, and scripts/dev-gui-pcap.ps1 does
the same for the desktop app. Requirements are covered in the
packet capture docs.
rustup target add x86_64-unknown-linux-musl
cargo build -p netscli --target x86_64-unknown-linux-musl --releasecargo fmt
cargo clippy --all-targets -- -D warnings
cargo test --allAdd tests for new behaviour, and update the docs under site/src/content/docs/
when you change something a user would notice.
crates/netscli-core/ # scanning logic, shared by everything
crates/netscli-mcp/ # MCP server
apps/netscli-cli/ # CLI and terminal UI
apps/netscli-gui/ # Tauri desktop app
packaging/ # Homebrew, Scoop, AUR and winget manifests
scripts/ # build and release helpers
site/ # netscli.com, the landing page and docs
Crate boundaries, dependency direction and the rules about what may live where are in docs/ARCHITECTURE.md.
cd scripts
cargo run --bin generate-ouiThis pulls from IEEE and Wireshark and regenerates
crates/netscli-core/data/oui.min.json.gz, which ships inside the
netscli-core crate.