{"id":37869266,"url":"https://github.com/bbmorten/morzer","last_synced_at":"2026-02-04T15:11:12.637Z","repository":{"id":332576127,"uuid":"1134122463","full_name":"bbmorten/morzer","owner":"bbmorten","description":"This is the macOS Electron UI for the tcpwatch Go CLI.","archived":false,"fork":false,"pushed_at":"2026-02-02T02:11:52.000Z","size":364,"stargazers_count":0,"open_issues_count":6,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-02T06:38:28.860Z","etag":null,"topics":["electron","golang","netstat","tcp-socket"],"latest_commit_sha":null,"homepage":"https://github.com/bbmorten/morzer","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbmorten.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":null,"code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["your-org","your-username"],"open_collective":"your-collective","custom":["https://buymeacoffee.com/your-page"]}},"created_at":"2026-01-14T09:28:44.000Z","updated_at":"2026-02-02T02:11:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bbmorten/morzer","commit_stats":null,"previous_names":["bbmorten/morzer"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/bbmorten/morzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbmorten%2Fmorzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbmorten%2Fmorzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbmorten%2Fmorzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbmorten%2Fmorzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbmorten","download_url":"https://codeload.github.com/bbmorten/morzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbmorten%2Fmorzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29088557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron","golang","netstat","tcp-socket"],"created_at":"2026-01-16T16:39:36.930Z","updated_at":"2026-02-04T15:11:12.614Z","avatar_url":"https://github.com/bbmorten.png","language":"TypeScript","funding_links":["https://github.com/sponsors/your-org","https://github.com/sponsors/your-username","https://opencollective.com/your-collective","https://buymeacoffee.com/your-page"],"categories":[],"sub_categories":[],"readme":"# tcpwatch (Electron)\n\nLooking for end-user instructions? See: `USER_GUIDE.md`.\n\nThis is the macOS Electron UI for the `tcpwatch` Go CLI.\n\n## Quick Start\n\n### 1) Install\n\n- If you have a `.pkg` installer: run it.\n- If you have a `.zip`: unzip and drag `tcpwatch.app` into `/Applications`.\n\nIf macOS blocks the app (unsigned builds), use Finder → right‑click `tcpwatch` → **Open**.\n\n### 2) Use\n\n- Click **Run once** to take a single snapshot.\n- Click **Start** to stream updates; change filters while running to apply instantly.\n- Double‑click a row to terminate that row’s PID (after confirmation).\n- Use **Capture (tshark)** to record traffic and split by connection; if **Port** is set, the capture is limited to `tcp port \u003cport\u003e`.\n- Snaplen: stream files are truncated to **200 bytes/packet** by default when splitting; set **0** to disable truncation.\n- In **Captures**, each stream includes a human-friendly description (endpoints + best-effort reverse DNS).\n- In **Captures**, each stream shows packet count and file size.\n- In **Captures**, use **Search (Description)** to find streams by IP or FQDN.\n- In **Captures**, right-click a stream row and choose **Expert Information** to see Wireshark-style per-packet expert messages for that connection (severity + group keyword aliases) plus a summary (`tshark -z expert`).\n- In **Captures**, right-click a stream row and choose **Analyze** to run the packet-analysis workflow (Claude + `mcpcap` MCP tools) and show a Markdown report on a dedicated page.\n- In **DNS**, select a `.pcap/.pcapng` to extract DNS packets into a new folder (one `dns.pcapng`), then click to open in Wireshark or right-click **Analyze** (uses `.github/prompts/dns-analysis.md`).\n- You can also import any `.pcap`/`.pcapng` file from **Captures** (auto-split + generate `index.json`).\n- You can drag \u0026 drop a `.pcap`/`.pcapng` onto the Captures page to import.\n\nReverse lookups are best-effort (DNS/mDNS dependent). You can disable them with `TCPWATCH_RDNS=0`.\n\nFor details (filters, troubleshooting, permissions), see `USER_GUIDE.md`.\n\n## Prereqs\n\n- Node.js + npm\n- A built `tcpwatch` binary at `tools/tcpwatch/tcpwatch`\n- Wireshark installed (provides `tshark` and `editcap`) for capture/splitting, snaplen truncation, and Expert Information analysis\n- For **Analyze**: an Anthropic API key (`ANTHROPIC_API_KEY`) and `mcpcap` available via `.mcp.json` (or `TCPWATCH_MCPCAP_BIN` override). See `.env.example`.\n\nPackaged app notes (Analyze):\n\n- The prompt is bundled into the app at `Contents/Resources/prompts/packet-analysis.md`.\n- You can configure:\n\t- `ANTHROPIC_API_KEY` via `~/Library/Application Support/tcpwatch/.env`\n\t- `mcpcap` via `~/Library/Application Support/tcpwatch/.mcp.json` (or `TCPWATCH_MCPCAP_BIN`)\n\nBuild the binary:\n\n```bash\ncd tools/tcpwatch\ngo build -o tcpwatch\n```\n\n## Dev\n\n```bash\ncd tools/tcpwatch/app\nnpm install\nnpm run dev\n```\n\n## Packaging (unsigned)\n\n```bash\ncd tools/tcpwatch/app\nnpm run pack:dir\n```\n\n## Downloadable builds (GitHub Actions)\n\nThis repo includes a workflow that builds and uploads macOS artifacts (`.pkg` + `.zip`) so they can be downloaded from GitHub.\n\n- Manual: run the `tcpwatch (macOS)` workflow via **Actions** → select a run → download the artifacts.\n- Release assets: push a tag like `tcpwatch-app-v0.1.1` and the workflow will attach the artifacts to the GitHub Release for that tag.\n\nTag example:\n\n```bash\ngit tag tcpwatch-app-vX.Y.Z\ngit push origin tcpwatch-app-vX.Y.Z\n```\n\nMaintainers: see `.github/specs/tcpwatch-release.md` for the release/packaging checklist.\n\nThe app expects the `tcpwatch` binary to be bundled via `extraResources`.\n\n## Notes\n\n- You can override the binary path with `TCPWATCH_BIN=/abs/path/to/tcpwatch`.\n- The UI consumes `tcpwatch -jsonl` (NDJSON snapshots).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbmorten%2Fmorzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbmorten%2Fmorzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbmorten%2Fmorzer/lists"}