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

@clwclw-monitor/agent

v0.2.0

Published

Agent bridge for clwclw-monitor coordinator

Readme

Local Agent (bridge)

목표: 기존 Claude-Code-Remote/의 기능(알림/인바운드/주입)을 그대로 유지하면서, Coordinator(Go)로 상태/이벤트를 업로드하는 “브릿지” 역할을 하는 로컬 에이전트 스크립트를 제공한다.

이 단계에서는 기존 레포(Claude-Code-Remote/)를 수정하지 않고, 별도 래퍼로 감싸는 방식부터 시작합니다.

구성

  • agent/clw-agent.js
    • heartbeat: Coordinator에 heartbeat 전송
    • hook <completed|waiting>: Claude 훅에서 호출될 수 있는 래퍼
      • 먼저 Claude-Code-Remote/claude-hook-notify.js를 실행(기존 알림 유지)
      • 이후 Coordinator에 이벤트 업로드(실패해도 훅 자체는 실패시키지 않음)
    • run: 레거시 서비스(Claude-Code-Remote/start-all-webhooks.js)를 실행하고 주기적으로 heartbeat 전송
    • work: Coordinator task를 claim(FIFO) → tmux로 주입 → 훅 완료 시 자동 complete
      • node agent/clw-agent.js work --channel <name> --tmux-target <target>
      • 멀티 채널: --channel "backend-domain,notify"
      • --tmux-target 예: claude-code, claude-code:1, claude-code:1.0

환경변수

  • COORDINATOR_URL (default: http://localhost:8080)
  • COORDINATOR_AUTH_TOKEN (optional)
  • AGENT_ID (optional; 없으면 agent/data/agent-id.txt에 생성/저장)
  • AGENT_NAME (optional; default: hostname)
  • AGENT_CHANNELS (optional; comma-separated subscriptions; e.g. backend-domain,notify)
  • AGENT_STATE_DIR (optional)
    • 에이전트 state 저장 디렉토리 override.
    • 기본은 agent/data/ 이지만, work/hook은 tmux target 기반으로 agent/data/instances/*를 자동 사용합니다(멀티 세션 분리).
  • AGENT_HEARTBEAT_INTERVAL_SEC (default: 15)
  • AGENT_WORK_POLL_INTERVAL_SEC (default: 5)

참고: agent/clw-agent.js는 실행 시 Claude-Code-Remote/.env가 있으면 이를 best-effort로 읽어 COORDINATOR_URL 같은 값을 가져옵니다.

사용 예시

# 1) Heartbeat
COORDINATOR_URL=http://localhost:8080 node agent/clw-agent.js heartbeat

# 2) Claude hook wrapper
COORDINATOR_URL=http://localhost:8080 node agent/clw-agent.js hook completed
COORDINATOR_URL=http://localhost:8080 node agent/clw-agent.js hook waiting

# 3) Run legacy services + periodic heartbeat
COORDINATOR_URL=http://localhost:8080 node agent/clw-agent.js run

# 4) Worker (claim → inject → hook complete)
COORDINATOR_URL=http://localhost:8080 node agent/clw-agent.js work --channel backend-domain --tmux-target claude-code:1.0

TODO

  • 훅 설치(~/.claude/settings.json)를 setup 단계에서 이 래퍼로 자동 전환(옵션)
  • Telegram/LINE/Email 인바운드 결과도 이벤트로 업로드