
netwatch v0.27.0
터미널에서 실시간 네트워크 진단. 하나의 명령어, 설정 불필요, 즉시 확인 가능.
NetWatch
네트워크가 실제로 무엇을 하는지 터미널에서 실시간으로 확인하세요.
암호화된 트래픽을 읽고, 모든 연결 뒤의 프로세스를 식별하며, 악성코드의 외부 통신을 포착하는 네트워크 모니터. 단일 바이너리. 설정 불필요.
모든 것을 한 번에, 크롬 행 0개로 — 헤더 바 없음, 메뉴 바 없음, 상태 바 없음. 다운로드는 공유 시간 축에서 위로 자라고, 업로드는 아래로 자라므로 트래픽 대칭성은 숫자를 읽기 전에 알아보는 형태가 됩니다. 색상은 계열이 아닌 크기를 나타냅니다.
…그리고 그 아래에 있는 기본 10탭 계측기, V 키 하나로 접근 가능하며 동일한 웜 콜렉터를 공유합니다 — 대시보드, 모든 소켓 뒤의 프로그램, 딥 패킷 검사, 네트워크 맵, 각 프로그램이 통신하는 대상.
대부분의 네트워크 도구는 한 가지 질문 — "내 대역폭을 뭐가 쓰고 있지?" — 에 답하고 멈춥니다. NetWatch는 계속 나아갑니다. 와이어 상의 프로토콜을 디코드하고, 각 연결을 연 프로그램을 알려주며, 문제를 의미하는 패턴 — 포트 스캔, 명령 서버로의 악성코드 비콘, DNS를 통한 데이터 유출 — 을 감시합니다. 뭔가 이상해 보이면, 키 하나로 버그 리포트에 첨부할 수 있는 휴대용 증거 번들을 고정합니다.
이것을 대역폭 측정기, Wireshark의 트리아지 뷰, 경량 침입 탐지기의 역할을 하는 설정 불필요 단일 바이너리로 생각하세요 — 터미널을 떠나지 않고 말입니다.
질문하는 규모에 맞게 확장됩니다 — 양방향으로: --view dense는 큰 터미널을 크롬 없는 네 개의 상자로 채우고, netwatch --lite는 *"지금 내 네트워크를 뭐가 쓰고 있지?"*를 위한 80×24 화면 하나입니다. 답이 "조사해야 할 무언가"일 때는 전체 10탭 뷰가 있습니다 — 키 하나 차이이며, 동일한 라이브 캡처를 공유합니다.
대상 사용자: 지금 무슨 일이 일어나고 있는지 봐야 하는 블루팀, 침해 대응 담당자, SRE, 홈랩 사용자 — 한 시간 후에 캡처 파일을 파싱하는 것이 아니라 말입니다.
650개 이상의 테스트 · Landlock 샌드박스(Linux) · 적대적 트래픽을 안전하게 파싱
그리고 다른 터미널 도구가 전혀 하지 못하는 부분: NetWatch는 머신의 각 프로그램이 통신하는 대상을 학습하고, 키 하나로 그 관찰된 기준선을 정책으로 전환하며, 프로그램이 새로운 곳과 통신하기 시작하는 순간 알려줍니다.
관찰 → 승격 → 경고. 기준선은 키 하나로 정책이 되고, 다음 새 목적지는 드리프트로 도착합니다.
NetWatch를 선택하는 이유
- 🔓 제어하는 암호화 트래픽 읽기 — 브라우저나 앱의
SSLKEYLOGFILE을 NetWatch에 지정하면 TLS 1.3 세션의 평문이 Wireshark가 하는 것과 같은 방식으로 실시간 디코드되는 것을 볼 수 있습니다. 프록시 없음, 인증서 없음, 중간에 아무것도 없음. - 🛰️ 모든 프로그램이 통신하는 대상을 학습한 후, 변경 시 알림 받기 — NetWatch는 각 프로세스가 도달하는 목적지(ClientHello의 호스트 이름, 자율 시스템, 포트)를 감시하며, 키 하나로 그 관찰된 기준선을 이그레스 정책으로 승격시킵니다. 이후 프로그램이 새로운 곳과 통신하기 시작하면 경고합니다. 이것이 방화벽 규칙셋이 표현할 수 없는 문장입니다:
curl은api.github.com에만 도달했었는데, 오늘은 다른 곳에 도달했습니다. 관찰 전용 — 차단하지 않습니다. - 🧬 연결 뒤의 소프트웨어 지문 식별 — JA4는 각 TLS/QUIC 핸드셰이크를 안정적인 지문으로 변환하여, 브라우저를 user-agent로 알아보는 것처럼 특정 클라이언트 — 또는 특정 악성코드 — 를 트래픽이 암호화되어 있어도 인식할 수 있게 합니다. 지문을 피벗하여 동일한 소프트웨어의 다른 모든 플로우를 찾으세요.
- 🚨 외부 통신하는 악성코드 포착 — C2 비콘(규칙적이고 낮은 지터의 체크인), 포트 스캔, DNS 터널링에 대한 내장 탐지가 설정 없이 백그라운드에서 실행됩니다. 치명적 알림은 레코더를 자동으로 고정하여 확인할 때 증거가 이미 저장되어 있습니다.
- ⚙️ 모든 연결 뒤의 프로세스 이름 식별 —
ss/lsof에서 각 소켓을 연 프로그램에 매핑하며, 폴링이 놓칠 수 있는 단기 플로우도 포착하는 선택적 커널 수준 eBPF kprobe(Linux,ebpf기능)를 지원합니다. 모든 곳에서 작동하며, kprobe는 요구 사항이 아닌 향상 기능입니다. - 📡 포트가 아닌 프로토콜 디코드 — TLS, QUIC, HTTP, DNS(및 SSH 배너/버전 스니핑)의 실제 L7 파싱과 그 외 다수, 플로우별 스트림 추적 및 핸드셰이크 타이밍 — "포트 443"이 아니라
api.github.com과 JA4 지문을 볼 수 있습니다. - 🎥 증거 고정 — 롤링 레코더를 장착하고 모든 사고를 휴대용 번들로 고정하세요: 패킷 및 이를 설명하는 연결, DNS, 상태, 알림. 버그 리포트와 사후 분석을 위해 설계되었습니다.
- 🛡️ 설계상 안전 — 설정 후 NetWatch는 권한을 낮추고 Landlock 파일시스템 허용 목록(Linux)에 자신을 잠급니다. 적대적 트래픽을 파싱하는 도구는 SSH 키, 브라우저 프로필,
/etc/shadow를 읽을 수 없습니다. - 🪟 한 화면으로 축소 —
--lite는 *"내 네트워크를 뭐가 쓰고 있고, 연결은 괜찮은가?"*에 여섯 개 키로 단일 80×24 화면에서 답하므로 Pi로의 SSH 세션이나 tmux 분할에 맞습니다. 키 하나로 콜렉터가 이미 웜 상태인 전체 포렌식 뷰로 확장됩니다.
설정 파일 없음. 설정 없음. 필수 플래그 없음.
설치```bash
brew install netwatch # macOS / Linux nix-shell -p netwatch # NixOS / Nix paru -S netwatch-tui-bin # Arch (prebuilt; netwatch-tui builds from source) scoop install netwatch # Windows cargo install netwatch-tui # anywhere with Rust
또는 [Releases](https://github.com/matthart1983/netwatch/releases/latest)에서 미리 빌드된 바이너리를 받으세요.
**Windows에는 [Npcap](https://npcap.com/#download) 설치가 필요합니다** — 설치 프로그램의 기본 설정으로 충분하며, 설치하지 않으면 NetWatch가 시작 시 이를 알리고 종료됩니다. **소스에서 빌드**하는 경우(`cargo install`, `paru -S netwatch-tui`) libpcap 개발 헤더가 필요합니다: Debian/Ubuntu와 Alpine에서는 `libpcap-dev`, Fedora/RHEL에서는 `libpcap-devel`, Arch에서는 `libpcap`입니다. 헤더가 없으면 링크 시 `cannot find -lpcap` 오류가 표시됩니다. macOS에는 libpcap이 포함되어 있으며, 아래의 `-static` Linux 바이너리는 libpcap을 번들로 포함하므로 별도 설치가 필요 없습니다.
Nix, Arch 및 Scoop 패키지는 커뮤니티 패키저가 유지 관리합니다 — 감사합니다. 패키징 문제는 해당 패키저에게 보고하고, netwatch 버그는 여기에 보고하세요. 패키지가 릴리스보다 늦어지면 [Repology 페이지](https://repology.org/project/netwatch-tui/versions)에서 확인할 수 있습니다.
<details>
<summary><strong>모든 플랫폼 및 소스 빌드</strong></summary>
| 플랫폼 | 다운로드 |
|----------|----------|
| Linux (x86_64, Debian/Ubuntu) | [`netwatch-linux-x86_64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, Debian/Ubuntu) | [`netwatch-linux-aarch64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (x86_64, 정적 — Arch/Fedora/Alpine/모든 배포판) | [`netwatch-linux-x86_64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Linux (aarch64, 정적 — Arch/Fedora/Alpine/모든 배포판) | [`netwatch-linux-aarch64-static.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| macOS (Intel) | [`netwatch-macos-x86_64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| macOS (Apple Silicon) | [`netwatch-macos-aarch64.tar.gz`](https://github.com/matthart1983/netwatch/releases/latest) |
| Windows (x86_64) | [`netwatch-windows-x86_64.exe.zip`](https://github.com/matthart1983/netwatch/releases/latest) |
`-static` Linux 빌드는 libpcap을 번들로 포함하며 런타임 종속성이 없습니다 — 기본 빌드에서 `libpcap.so.0.8: cannot open shared object file` 오류가 발생하는 Arch, Fedora, Alpine 또는 모든 배포판에서 사용하세요.
Windows 빌드에는 [Npcap](https://npcap.com/#download)이 필요합니다 — 첫 실행 전에 설치하세요. 설치 프로그램의 기본 설정으로 충분합니다: NetWatch는 Npcap이 실제로 `wpcap.dll`을 넣는 `System32\Npcap`을 찾으므로 *WinPcap API 호환 모드로 Npcap 설치*는 필요하지 않습니다. Npcap이 전혀 없으면 Windows 오류 상자 대신 누락된 항목을 알려주는 NetWatch 메시지가 표시됩니다. (v0.29.1 이하에서는 해당 체크박스가 필요했습니다 — [#47](https://github.com/matthart1983/netwatch/issues/47) 참조.)
**소스에서:**```bash
git clone https://github.com/matthart1983/netwatch.git && cd netwatch
cargo build --release
전제 조건: Rust 1.70+ 및 libpcap의 개발 헤더가 필요합니다. cargo install netwatch-tui에도 동일하게 적용됩니다.
| 플랫폼 | 설치 |
|---|---|
| Debian / Ubuntu | sudo apt install libpcap-dev |
| Fedora / RHEL | sudo dnf install libpcap-devel |
| Arch | sudo pacman -S libpcap |
| Alpine | sudo apk add libpcap-dev |
| macOS | 시스템에 포함됨 |
| Windows | Npcap — 빌드 시 Npcap SDK를 자동으로 가져오거나, NPCAP_SDK를 추출된 복사본으로 설정 |
이것들이 없으면 빌드가 링크 단계에서 /usr/bin/ld: cannot find -lpcap 오류로 실패합니다. NetWatch를 빌드하지 않고 실행만 하려는 경우, 위의 -static Linux 바이너리는 이 중 어떤 것도 필요하지 않습니다.
빠른 시작```bash
netwatch # interface stats, connections, config — no privileges needed sudo netwatch # full mode — adds live packet capture + health probes
그게 전부입니다. `1`–`9`로 탭을 전환하고, `?`를 누르면 도움말, `q`를 누르면 종료됩니다. 대시보드는 5초 안에 유용하게 사용할 수 있으며, 아래의 모든 내용은 더 깊이 파고들 필요가 있을 때 사용하면 됩니다.
> **`sudo` 없는 Linux:** 캡처 권한을 한 번 부여한 후 일반 사용자로 실행하세요 —
> `sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)"`. 업그레이드할 때마다 다시 실행하세요 ([자세한 내용](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#running-without-sudo-linux)).
### 60초 안에 TLS 복호화 확인하기
NetWatch가 무엇인지 이해하는 가장 빠른 방법 — *당신이* 제어하는 TLS 1.3 세션의 평문을 읽는 모습을 지켜보는 것입니다:```bash
sudo netwatch # 1. launch, then open the Packets tab (4)
SSLKEYLOGFILE=/tmp/sslkeylog.txt curl https://example.com # 2. any client that exports its keys
# 3. filter the Packets tab with: decrypted:true
복호화된 애플리케이션 데이터가 인라인으로 렌더링됩니다. 키로깅 누락이 캡처를 깨뜨리지 않습니다 — 해당 레코드는 그저 불투명하게 남아 있을 뿐입니다. (SSLKEYLOGFILE은 Wireshark가 사용하는 것과 동일한 메커니즘입니다. 이는 당신이 제어하는 트래픽에서만 작동하며, 제3자나 악성 트래픽에서는 절대 작동하지 않습니다.)
실시간 TLS 1.3 세션에서 평문을 읽어내는 모습 — 터미널에서 바로 복호화됩니다. 프록시도, 중간자 공격도 없습니다.
60초 안에 이그레스 드리프트를 잡아내는 모습 보기
위 데모의 루프를 세 가지 명령으로:```bash sudo netwatch # 1. launch and open the Egress tab (0). Leave it a minute # while it learns; each process grows a list of destinations # with hostnames, autonomous systems and ports # 2. put the cursor on a process and press Enter — its observed # baseline becomes a rule in egress-policy.toml curl https://example.org # 3. same program, somewhere it has never been
새 목적지가 `✗ drift` 판정과 함께 알림을 띄운다. 차단된 것은 아무것도 없다 — 핵심은 당신이 *통보를 받았다*는 것이다.
판정은 의도적으로 이분법적이지 않다:
| | |
|---|---|
| `✓ sni` / `✓ ip` | 선언된 호스트명 또는 주소와 일치 — 정밀함 |
| `~ asn` | 자율 시스템(AS)으로만 일치 — 이는 *해당 AS가 운영하는 모든 것*을 인정한다는 뜻이며, 하이퍼스케일러의 경우 사실상 무제한이다 |
| `? ech` | Encrypted ClientHello: 이름이 설계상 숨겨져 있으므로 "판단 불가"이지 "나쁨"이 아니다 |
| `✗ drift` | 허용 목록 밖 |
| `— no rule` | 이 프로그램은 선언된 적이 없음 — 검사된 것이 없음 |
| `✗ undeclared` | 규칙 없음, `strict = true` 상태 — 정책이 완전하다고 주장하므로 *부재* 자체가 발견 사항이다 |
규칙은 정확한 호스트명, `*.와일드카드`, 자율 시스템, CIDR 블록(`10.0.0.0/8`), 포트를 허용한다. `strict = true`는 린터를 "선언된 소프트웨어가 잘못 행동할 때 알려줘"에서 "선언한 적 없는 무언가가 말을 걸기 시작할 때 알려줘"로 바꾸는 스위치다 — 이것이 실제 침해가 일어나는 형태다.
## 제공되는 것
`1`–`9`와 `0`으로 전환하는 10개의 탭:
| # | 탭 | 표시 내용 |
|---|-----|---------------|
| 1 | **대시보드** | 인터페이스, 대역폭 그래프, 상위 연결, 게이트웨이/DNS 상태, 지연 시간 히트맵. 5초 안에 유용하다. |
| 2 | **연결** | 프로세스 + PID, 프로토콜, 상태, GeoIP, 지연 시간 스파크라인이 포함된 모든 소켓. |
| 3 | **인터페이스** | 인터페이스별 IPv4/IPv6, MAC, MTU, RX/TX, 오류, 드롭. |
| 4 | **패킷** | 실제 L7 디코딩, TLS 1.3 복호화, JA4, 흐름별 스트림 추적, 필터, PCAP 내보내기가 포함된 실시간 캡처. |
| 5 | **통계** | 바이트 기준 프로토콜 분석 + TCP 핸드셰이크 타이밍 히스토그램. |
| 6 | **토폴로지** | 머신 → 게이트웨이 → DNS → 상위 호스트의 ASCII 맵, traceroute 포함. |
| 7 | **타임라인** | TCP 상태별 색상 구분 연결 타임라인; 보안 알림이 여기에 표시된다. |
| 8 | **프로세스** | 실시간 RX/TX 및 연결 수가 포함된 프로세스별 대역폭 순위. |
| 9 | **인사이트** | *(선택 사항)* 스냅샷을 로컬/클라우드 LLM에 보내 평이한 언어로 분석한다. |
| 0 | **이그레스** | 각 프로세스가 통신하는 대상(호스트명/AS/포트)을 학습하고, 한 번의 키 입력으로 해당 기준선을 정책으로 승격한 뒤 드리프트 시 경고한다. 관찰 전용이며 차단하지 않는다. |
패킷 탭은 포렌식이 살아 있는 곳이다 — 심층 프로토콜 디코딩, 실시간 TLS 1.3 복호화, JA4 위협 헌팅, Wireshark 스타일 표시 필터, 사고 캡처. **[전체 기능 참조 보기 →](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md)**
### 라이트 뷰
10개의 탭은 운영자를 위한 도구다. 질문이 단지 *"내 네트워크를 뭐가 쓰고 있고, 내 연결은 괜찮은가?"*일 때 — 단일 머신, Pi에 대한 SSH 세션, tmux 분할 — `--lite`가 있다:```bash
netwatch --lite # one screen, fits 80×24
하나의 화면, 여섯 개의 키. 실시간 처리량, 연결 상태, 그리고 누가 통신 중인지 — 아무 행이나 제자리에서 확장하고, 입력하는 대로 필터링하세요.
모든 것이 단일 화면에 표시됩니다: 실시간 처리량 차트, 게이트웨이/DNS/인터넷 연결 상태, 그리고 프로세스 및 호스트별 최다 통신 주체. 여섯 개의 키 — q 종료, p 일시정지, / 필터, ↵ 통신 주체 확장, L 전체 보기로 복귀, ? 도움말.
어느 보기에서든 L을 누르면 전환됩니다. 둘 다 동일한 수집기를 공유하므로, "뭔가 이상하다"는 상태에서 전체 10개 탭 포렌식 보기로 전환하는 데 키 입력 한 번만 필요합니다 — 재시작 없음, 기록 손실 없음, 캡처는 계속 실행 중.
밀집 보기
반대 방향: 큰 터미널을 사용 중이고 모든 것을 한 번에 보고 싶다면, --view dense는 크롬 없이 — 헤더 바 없음, 메뉴 바 없음, 상태 바 없음 — 네 개의 상자로 화면을 채웁니다. 신원, 정렬 상태, 페이지 범위 및 모든 키바인드가 상자 테두리 안에 표시되므로 모든 행이 데이터를 담고 있습니다. 최소 130×44가 필요하며 주어진 공간에 맞춰 커집니다: 더 넓으면 플롯에 더 많은 기록과 전체 호스트명을 위한 공간이 생기고, 더 높으면 더 많은 인터페이스와 더 많은 연결이 표시됩니다.```bash
netwatch --view dense # four boxes, needs 130×44
That's the screen at the top of this README. The signature element is the **mirrored dual graph**: download grows up from a centre time axis, upload grows down from the same axis. Traffic symmetry becomes a shape you recognise without reading a number — a download burst is a cliff above the line, a backup job is a cliff below it. Both halves are braille at two samples per character cell, and every cell is coloured by its **height in the graph** rather than by which series it belongs to, so you see a spike's severity before you measure it against the axis.
Throughput ramps cool→bright because high bandwidth is *busy*, not *bad* — a saturated link during a backup is working. Only bounded values where high genuinely is bad — link saturation, latency budget per hop — get the green→amber→red treatment, and their meters colour by position along the bar, so the red zone is visible before you reach it.
Below the graph: per-interface rates with 60-second sparklines, four-hop latency budgets (gateway, DNS, internet, and the slowest peer you're actually talking to), and the connection table with the selected row's detail hoisted into the top of the same box — no new screen, no back button. The detail row carries kernel TCP state — `cwnd`, `ssthresh`, `mss`, `rwnd` — read straight from the kernel: `inet_diag` over netlink on Linux, the `net.inet.tcp.pcblist64` sysctl on macOS. The two kernels disagree about units (Linux counts segments, BSD counts bytes), so macOS values are normalised against the MSS and the column means the same thing on both. Windows reads `--` until `GetPerTcpConnectionEStats` is wired up.
`V` cycles `full → lite → dense`, or set it once under **Settings → View**. Below 130×44 it falls back to the same 80×24 grid Lite targets — which fills its area too — and it never scrolls sideways.
## Deeper dives
| Guide | What's in it |
|-------|--------------|
| **[Feature reference](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md)** | Every keybinding, the display-filter language, protocol decoder list, themes, and config options. |
| **[TLS 1.3 decryption](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#tls-13-decryption)** | How `SSLKEYLOGFILE` decryption works, supported cipher suites, and what it can and can't read. |
| **[Threat hunting with JA4](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#threat-hunting-with-ja4)** | Fingerprinting clients and pivoting across flows. |
| **[Security & the Landlock sandbox](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#security--forensics)** | The threat model, capability dropping, and the filesystem allow-list. |
| **[Egress policy linting](https://github.com/matthart1983/netwatch/blob/main/docs/egress-linter-plan.md)** | The observe → promote → warn model, the rule language, `strict` mode, and the NDJSON export schema. |
| **[Flight Recorder](https://github.com/matthart1983/netwatch/blob/main/docs/REFERENCE.md#flight-recorder)** | Arming, freezing, and the contents of an incident bundle. |
| **[AI Insights](https://github.com/matthart1983/netwatch/blob/main/docs/INSIGHTS.md)** | Optional local/cloud LLM analysis (off by default). |
## How it works```
Raw bytes → Ethernet → IPv4/IPv6/ARP → TCP/UDP/ICMP → L7 decoders
↓
Per-flow stream tracking · Handshake timing
TLS 1.3 decryption · JA4 · Threat detection
| Collector | macOS | Linux |
|---|---|---|
| 연결 | lsof + PKTAP | /proc/net/tcp + eBPF kprobe |
| 패킷 | libpcap (BPF) | libpcap |
| 프로세스 귀속 | PKTAP | lsof/ss 폴링, 선택적 eBPF kprobe 오버레이 포함 |
모든 기능은 우아하게 저하됩니다: 상승된 권한이 필요한 기능은 명확한 메시지를 표시하고 대체 동작으로 전환되며, 절대 충돌하지 않습니다. 전체 아키텍처 노트는 WIKI.md에 있습니다.
관련 프로젝트
형제 프로젝트: SysWatch (시스템) 및 DiskWatch (디스크) — 동일한 셸, 다른 표면. ESSH — 동일한 TUI 미학을 가진 순수 Rust SSH 클라이언트; NetWatch가 관찰하는 곳에 연결합니다.
NetWatch Cloud — NetWatch를 실행하는 서버를 위한 호스팅형 플릿 모니터링. 각 Linux 호스트에 있는 작은 Rust 에이전트, 실시간 대시보드, 그리고 지연 시간, 패킷 손실 또는 호스트 오프라인 시 이메일 + Slack 알림. 성장하는 동안 무료입니다. 에이전트, SDK 및 대시보드는 MIT 라이선스이며, 호스팅 백엔드는 독점입니다.
감사의 말
패키지 관리자들. NetWatch는 homebrew-core, nixpkgs, AUR 및 Scoop 메인 버킷에 있습니다 — 그리고 저는 그 중 어떤 것도 패키징하지 않았습니다. 그 각각은 이 도구가 유용하다고 생각한 누군가가 요청 없이 작업을 수행하고 이후로도 계속 최신 상태로 유지해 온 것입니다. Scoop 항목은 보통 태그가 생성된 지 몇 시간 내에 릴리스를 추적했습니다.
| Dominiquini | AUR의 netwatch-tui, 2026년 3월부터 |
| kemelzaidan | AUR의 netwatch-tui-bin |
| tomasrivera | nixpkgs의 netwatch |
| scillidan | Scoop 메인 버킷의 netwatch, v0.15.3부터 |
| Homebrew 유지관리자들 | 포뮬러를 코어로 가져오고, 이후 모든 릴리스를 추적한 봇에 대해 |
패키징은 고마움을 받지 못하는 작업으로, 문제가 생겼을 때만 주목받습니다. NetWatch를 이 중 하나를 통해 설치한다면, 그 공로는 저에게가 아니라 그들에게 있습니다.
기여자들. @lamchau, @fdncred 및 @PeteE가 패치를 보냈습니다. 감사합니다 — 낯선 사람의 풀 리퀘스트는 이런 프로젝트에 일어날 수 있는 최고의 일입니다.
그리고 실제 재현 사례로 이슈를 열고, 설계 결정에 이의를 제기하거나, 자신의 터미널에서 출력이 잘못되었다고 알려준 모든 분들께: 그것이 이 프로젝트가 구축된 피드백 루프입니다.
기여하기
질문, 아이디어 및 버그 보고는 GitHub Discussions 및 Issues에서 환영합니다. 코딩 규칙은 CONTRIBUTING.md, 아키텍처 가이드는 WIKI.md를 참조하세요.
라이선스
MIT