Summary
Add tcpviewer-cli, a small command-line tool for controlling TCP Viewer from Terminal, scripts, and other apps.
The CLI should work whether TCP Viewer is open or closed. If the app is closed, the command should launch it quietly and leave it running. JSON should be the default output so other tools can read the result without parsing human text.
What the command line should support
- Check app status, version, license state, capture state, active file, and packet count.
- List available network interfaces and show the selected interface.
- Start capture on a chosen interface, with an optional BPF filter.
- Pause, resume, stop, and check the current capture.
- List and summarize packets with filters, limits, ordering, and pagination.
- Read packet details and raw bytes, clear packets, or reveal a packet in the app.
- List packets in a TCP stream and follow a stream as text, hex, or base64.
- Import
pcap, pcapng, and tcpviewsession files.
- Export selected packets as
pcap or pcapng, or export the full TCP Viewer session.
- Check, activate, and revoke a license. Activation must read the key from stdin or a hidden prompt so it does not appear in shell history.
- List, read, change, and reset common TCP Viewer settings.
- Return text output when a person wants to read the result directly.
Packet commands should support common filters such as protocol, domain, address, port, client, packet ID, and stream ID. Advanced field filters should also be available for automation.
Related implementation: #93
Summary
Add
tcpviewer-cli, a small command-line tool for controlling TCP Viewer from Terminal, scripts, and other apps.The CLI should work whether TCP Viewer is open or closed. If the app is closed, the command should launch it quietly and leave it running. JSON should be the default output so other tools can read the result without parsing human text.
What the command line should support
pcap,pcapng, andtcpviewsessionfiles.pcaporpcapng, or export the full TCP Viewer session.Packet commands should support common filters such as protocol, domain, address, port, client, packet ID, and stream ID. Advanced field filters should also be available for automation.
Related implementation: #93