orot-kit

macOS와 Linux에서 자주 쓰는 OS·개발·서버 관리 유틸을 하나의 CLI로.

설치

아래 한 줄로 OS와 아키텍처를 자동 감지해 $HOME/.local/bin/kit에 설치한다.

$ curl -fsSL https://kit.2juho.com/install.sh | sh
설치 위치 변경  →  curl -fsSL https://kit.2juho.com/install.sh | KIT_INSTALL_DIR=~/bin sh

업데이트

설치 서버의 현재 OS/Arch 바이너리로 실행 중인 kit을 교체한다. 업데이트 다운로드는 서버 다운로드 카운트에 포함하지 않는다.

kit update                  # 현재 kit 바이너리 업데이트
kit update --dry-run        # 다운로드 URL과 교체 경로만 확인
kit update --base-url https://kit.2juho.com

지원 OS

macOS arm64, amd64
Linux arm64, amd64

제거

설치된 kit 바이너리와 ~/.kit, ~/.kit-server 상태 파일을 함께 정리한다.

kit uninstall         # kit 패키지 제거
CLI에서 먼저 확인  →  kit uninstall --dry-run

빠른 시작

kit --help            # 대표 명령어 목록
kit -v                # 빌드 버전 확인
kit version           # 빌드 버전 확인
kit update --dry-run  # 업데이트 다운로드 URL 확인
kit info              # OS, Arch, Go, 설치 경로
kit resource          # 서버 리소스 요약
kit network           # 네트워크 요약
kit git status        # 안전한 Git 상태 확인

출력 형식

Title
  Kit Info

Result
  Version: 0.1.0-dev
  OS: linux
  Arch: amd64

일반 명령은 제목, 실행 명령, 요약, 결과, 힌트를 같은 구조로 출력한다. 스크립트에서 쓰려면 --json을 붙인다.

변경 사항

Files

탐색·검색·용량

kit ls .                      # ls -al .
kit ls ..                     # ls -al ..
kit ls ../..                  # ls -al ../..
kit ls ./src
kit tree . --depth 2

kit find TODO --root .
kit find "*.go" --root . --type file
kit find nginx /etc

kit size .
kit size ./dist
i kit find는 패턴에 와일드카드가 없으면 자동으로 *pattern* 형태로 찾는다.

Archive

압축·해제

kit archive README.md --format tar.gz --output readme.tar.gz
kit archive ./dist --format zip --output dist.zip
kit archive ./logs --format tar.gz --output logs.tar.gz

kit extract readme.tar.gz --dest ./out
kit extract dist.zip ./out

지원 포맷: tar.gz · tgz · zip · gzip

Network

요약·IP·DNS·HTTP

kit network
kit network ip
kit network ping example.com --count 4
kit network dig example.com
kit network curl https://example.com --method GET
kit network download https://kit.2juho.com/bin/kit-linux-amd64 --output kit --executable

포트·패킷 캡처

kit network port
kit network port kill 1234 --yes

kit network tcpdump --interface eth0 --port 443 --count 50 --dry-run
kit network tcpdump --interface en0 --host 1.1.1.1 --write capture.pcap
! tcpdump는 root 권한이 필요할 수 있다. 실제 실행 전에는 --dry-run으로 명령을 먼저 확인한다.

Resource

서버 리소스·로그

kit resource                 # host, uptime, disk, memory, process 요약
kit resource disk            # df -h
kit resource memory          # free -h 또는 vm_stat
kit resource process         # ps aux 상위 항목
kit resource logs nginx
kit resource logs --unit nginx

Git & Diff

조회 전용 Git

kit git
kit git status
kit git position
kit git diff
kit git diff --stat
kit git diff --name-only
kit git diff --staged
kit git diff --against main
kit git diff --base origin/main

Git 기능은 저장소를 변경하지 않는 조회 명령에 집중한다.

파일 간 코드 비교

kit diff README.md
kit diff old.go new.go
kit diff old.go new.go --context 5

Service

서비스 alias

kit service add nginx --type systemctl --name nginx
kit service nginx status
kit service nginx logs
kit service nginx restart

SSH & Transfer

SSH alias·키

kit ssh add prod --host example.com --user deploy --port 22
kit ssh prod
kit ssh keygen ~/.ssh/id_ed25519
kit ssh copy deploy@example.com

scp·rsync

kit send --server prod --local ./dist --remote /srv/app
kit receive --server prod --remote /var/log/app.log --local ./logs/
kit sync --server prod --local ./dist --remote /srv/app --delete

Firewall

상태·포트 변경

kit fw status
kit fw list
kit fw open 8080
kit fw open 5353 --proto udp
kit fw close 8080 --yes

Linux는 ufw 또는 firewall-cmd, macOS는 pfctl 상태 조회를 사용한다.

Secret

secret 생성

kit secret password --length 32
kit secret password --length 48 --symbols=false
kit secret token --length 48
kit secret api-key --prefix orot --length 32
kit secret jwt --format env --key JWT_SECRET --no-print
kit secret hex --length 32
kit secret base64 --length 32
kit secret env --key API_TOKEN --format base64
kit secret uuid

공통 플래그

플래그 설명
-v, --version 루트에서 kit 버전 출력
--dry-run 외부 명령을 실행하지 않고 preview만 출력
--json 스크립트와 파이프라인에서 쓰기 좋은 JSON 출력
--verbose 상세한 실행 결과 출력
--yes 확인 프롬프트를 건너뛰고 실행

서버 API

Endpoint 내용
/install.sh OS와 아키텍처를 감지하는 설치 스크립트
/uninstall.sh kit 바이너리와 로컬 상태 파일을 제거하는 스크립트
/version 버전, 빌드 정보, 사용 가능한 바이너리 목록
/stats macOS/Linux 다운로드 카운트와 path별 카운트. ?update=1 바이너리 다운로드는 제외

런타임 캐시 배포 기능은 제거되어 /runtime 계열 엔드포인트를 제공하지 않는다.