npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

jocohunt-cli

v0.1.5

Published

jocohunt-cli packages the JoCoHunt Go CLI with auth and submit support for npm installs.

Readme

jocohunt-cli

jocohunt-cli조코헌트 제품 목록 조회와 제품 등록을 터미널에서 처리하는 npm 배포 Go CLI입니다. 당신의 아이디어를 에이전트가 알리게 하세요.

설치

가장 빠른 설치 경로는 npm입니다. 패키지는 현재 플랫폼에 맞는 Go 바이너리를 포함하고, 전역 설치 후 jocohunt-cli 명령을 제공합니다.

1) npm으로 설치

npm install -g jocohunt-cli
jocohunt-cli products --limit 5

기존 스크립트 호환을 위해 jocohunt 별칭도 함께 제공합니다.

2) go install로 바로 설치

go install github.com/yeongyu/jocohunt/cmd/jocohunt@latest
jocohunt products --limit 5

3) 소스를 클론해 빌드

git clone https://github.com/code-yeongyu/joco.git
cd joco
go build -o jocohunt ./cmd/jocohunt
./jocohunt products --limit 5

Go 1.24+ 가 필요합니다. 빌드한 바이너리를 PATH에 두면 어디서든 jocohunt로 실행할 수 있습니다.

사용법

jocohunt-cli products --limit 10
jocohunt-cli submit --title "내 제품" --url "https://example.com" --tagline "한 줄 소개" --dry-run

# 기존 별칭도 동작합니다.
jocohunt products --limit 10
jocohunt products --category ai-tools --json
jocohunt ideas --tab recent
jocohunt leaderboard --period weekly
jocohunt inspect
jocohunt auth login --print-url

로그인

CLI에서 GitHub OAuth URL을 만들고, 가능하면 브라우저에서 세션 쿠키를 자동으로 캡처해 저장합니다.

jocohunt auth login

브라우저를 띄우지 않고 URL만 출력하려면:

jocohunt auth login --print-url

브라우저 자동 캡처가 어려운 환경에서는 URL을 열고, --session-cookie로 세션을 수동 저장할 수 있습니다. 저장 파일은 기본적으로 사용자 config 디렉터리의 jocohunt/session.json이며 권한은 0600입니다.

jocohunt auth login --session-cookie 'better-auth.session_token=...' --csrf-token '...'
jocohunt auth status
jocohunt auth logout

헤드리스로 실행하려면:

jocohunt auth login --headless

특정 Chrome/Chromium 경로를 쓰려면:

jocohunt auth login --browser "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

저장된 세션은 저장 당시의 --base-url 오리진에만 재사용합니다. 다른 --base-url로 요청을 보낼 때는 저장된 세션을 자동으로 사용하지 않습니다(쿠키 유출 방지).

테스트나 자동화에서는 JOCOHUNT_CONFIG_DIR로 저장 위치를 바꿀 수 있습니다.

제품 등록

auth login --session-cookie로 세션을 저장해두면 CLI에서 바로 제품을 등록할 수 있습니다.

jocohunt submit \
  --title "내 제품" \
  --url "https://example.com" \
  --tagline "한 줄 소개" \
  --description "조금 더 긴 설명" \
  --category "ai-tools" \
  --confirm

등록 전 요청 본문만 확인하려면 --dry-run을 사용합니다.

jocohunt submit --title "내 제품" --url "https://example.com" --tagline "한 줄 소개" --dry-run

세션 쿠키를 플래그로 직접 넘길 수도 있습니다.

jocohunt submit --title "내 제품" --url "https://example.com" --tagline "한 줄 소개" \
  --session-cookie 'better-auth.session_token=...' --confirm

조코헌트 API 경로가 바뀌면 --submit-endpoint로 바꿔 찌를 수 있습니다. 기본값은 /api/submit입니다. 서버가 CSRF 토큰을 요구하는 배포에서는 --csrf-token 또는 JOCOHUNT_CSRF_TOKEN을 같이 넣으세요.

보안을 위해 --submit-endpoint상대 경로만 허용합니다(예: /api/submit). 절대 URL이나 //host/path 형태는 거부합니다.

보안 범위

조회 명령은 공개 HTML과 JSON-LD만 읽습니다. auth login은 GitHub OAuth URL을 만들고, 가능하면 브라우저에서 세션 쿠키를 캡처해 로컬에 저장합니다. submit/upload 명령만 로그인 세션 쿠키를 사용해 /api/submit에 POST합니다. 라이브 등록에는 실수 방지를 위해 --confirm이 필요합니다.

npm 바이너리 배포

릴리스 전에 플랫폼별 Go 바이너리를 생성합니다.

npm run build:binaries
npm test
npm pack --dry-run

npm/bin.js는 Node의 플랫폼명(win32, x64 등)을 Go 대상명(windows, amd64 등)으로 변환한 뒤 npm/jocohunt-<goos>-<goarch> 바이너리를 실행합니다. 플랫폼 바이너리가 없으면 로컬 개발용 npm/jocohunt fallback을 사용합니다. npm 패키지는 jocohunt-cli 명령을 기본으로 노출하고, 기존 jocohunt 명령도 별칭으로 유지합니다.

패키지에 포함되는 플랫폼 바이너리:

  • macOS: arm64, x64
  • Linux: armv7, arm64, x64
  • Windows: arm64, x64

로컬에서 직접 배포할 때는 npm 로그인 상태를 확인한 뒤 아래 순서로 배포합니다.

npm whoami
npm publish

CI

GitHub Actions는 다음을 검사합니다.

  • go test -race -shuffle=on -count=1 ./...
  • npm test
  • npm pack --dry-run
  • 플랫폼별 바이너리 빌드
  • 실제 사이트에 대한 읽기 전용 smoke test

릴리스

  1. 버전을 올립니다.
  2. npm run build:binaries를 실행합니다.
  3. 태그를 푸시합니다.
  4. release.yml이 테스트, 바이너리 빌드, npm pack, OIDC 기반 npm publish, GitHub Release 생성을 순서대로 실행합니다.
  5. npm 배포는 jocohunt-cli 패키지의 Trusted Publisher 설정으로 GitHub Actions OIDC를 사용합니다.

릴리스 워크플로는 태그 v*에서만 동작합니다. 배포 전에 로컬에서 아래 명령으로 패키지 포함 파일을 확인하세요.

npm pack --dry-run