인스타그램 릴스를 보다가 CLI(Command Line Interface, 명령어로 프로그램을 조작하는 도구) 하나를 알게 됐다. 근데 알고 보니 이미 설치돼 있었다. 업데이트하다가는 데몬 버전 불일치라는 문제를 만났다. 데몬(daemon, 백그라운드에서 몰래 돌아가는 상주 프로세스)이 CLI 프로그램과 서로 다른 버전으로 어긋난 상태였다.
이 글은 그 과정을 그대로 기록한 것이다.
인스타 릴스에서 본 CLI 도구, 이미 깔려 있었다
릴스 하나가 올라왔다. 유튜브, 인스타그램, 트위터, GitHub, 링크드인을 CLI 하나로 읽을 수 있다는 내용이었다. 유료 API 키(API key, 유료 서비스를 이용할 때 발급받는 인증 열쇠) 없이 돌아간다고 했고, 레딧이나 빌리빌리처럼 막히던 곳도 지원한다고 했다.
릴스 화면에 GitHub 레포(repository, 코드를 저장하는 폴더) 이름이 잠깐 스쳤다. Panniantong/Agent-Reach였고, 별(star, GitHub에서 좋아요 같은 개념) 85.5k, 포크 7.5k라고 적혀 있었다.
GitHub API로 직접 조회했다. 별 85,710개, 포크 7,537개, MIT 라이선스. 릴스 숫자와 거의 일치했다. 설명은 “에이전트에게 인터넷 전체를 보는 눈을 준다”였다. 저장소 설명과 똑같았다.
설치하려고 했는데 이미 깔려 있었다. agent-reach라는 이름으로 스킬이 존재했고, 버전은 v1.5.0이었다. 릴스를 보기 전까지는 이 도구가 정확히 뭘 하는지 몰랐다. 이건 좀 웃겼다.
CLI는 최신인데 왜 자꾸 구버전이라고 나올까?
도구가 실제로 작동하는지 확인하기 위해 agent-reach doctor를 돌렸다. doctor 명령은 각 플랫폼 연결 상태를 한 번에 점검해주는 진단 도구다.
결과는 이랬다. 유튜브와 빌리빌리는 바로 작동했다. 트위터, 레딧, 인스타그램, 페이스북, 샤오홍슈는 브라우저 확장인 OpenCLI 파일은 있는데 연결됐는지 확인이 안 된 상태, 즉 warn(경고)으로 나왔다.
이유가 있었다. agent-reach 쪽 점검 도구는 일부러 브라우저 확장 상태를 자동으로 확인하지 않는다. 브라우저 쿠키를 건드릴 수 있어서다. 그래서 opencli doctor라는 별도 명령을 직접 실행해야 한다.
돌려봤다. 데몬 실행 중, 확장 연결됨, 연결 확인 완료. 5.8초 만에 전부 통과했다.

위 화면이 opencli doctor가 통과된 직후 상태다. 그런데 화면 끝에 업데이트 안내가 떴다. v1.8.7에서 v1.8.8로 올리라는 내용이었다.
업데이트 명령은 간단했다.
npm install -g @jackwener/opencli
설치가 끝나고 opencli --version을 확인했다. 1.8.8로 바뀌어 있었다. 여기까지는 문제없었다.
그런데 다시 opencli doctor를 돌렸더니 데몬은 여전히 v1.8.7이라고 나왔다. CLI 프로그램 자체는 업데이트됐는데, 백그라운드에서 계속 떠 있던 데몬 프로세스는 예전 버전 그대로 살아있던 거다.

위 화면이 그 상태다. CLI는 1.8.8, 데몬은 1.8.7. 버전이 다르다.
Stale Daemon의 정의와 문제가 되는 이유
opencli doctor는 이 상황을 정확히 짚었다. “stale daemon”이라는 표현으로.
stale은 “오래돼서 유효하지 않은”이라는 뜻이다. stale daemon(낡은 데몬, 업데이트 이후에도 종료되지 않고 구버전 상태로 계속 떠 있는 백그라운드 프로세스)이 문제가 되는 이유는 단순하다. CLI가 데몬에게 명령을 보낼 때, 데몬이 구버전이면 새 기능이나 수정된 동작을 처리하지 못한다. 버전이 다르면 의사소통이 제대로 안 된다고 보면 된다.
npm으로 패키지를 업데이트하면 파일은 교체된다. 그런데 이미 메모리에 올라가서 돌아가고 있는 데몬 프로세스는 파일을 바꿨다고 자동으로 재시작되지 않는다. 직접 껐다 켜야 한다.
doctor가 이걸 감지하고 해결책까지 알려줬다. opencli daemon restart를 실행하라고.
데몬 버전 불일치, 재시작으로 해결하기
opencli daemon restart를 실행했다. 먼저 경고가 떴다. 브라우저 프로필 연결이 끊긴다는 내용이었다. 확장이 자동으로 다시 붙을 거라고 했다.
데몬은 포트 19825에서 v1.8.8로 재시작됐다. 그 순간에는 확장이 아직 연결 안 된 상태로 표시됐다. 5초 기다렸다. 그리고 다시 opencli doctor를 돌렸다.
데몬 v1.8.8, 확장 연결됨, 연결 확인 완료. 데몬 버전 불일치가 풀리고 전부 정상이었다.

위 화면이 재시작 후 정상 상태다. 재시작 직후에 바로 doctor를 돌리면 아직 확장이 붙기 전이라 실패로 나올 수 있다. 5초 정도는 기다려야 한다.
그리고 별개 문제가 하나 더 있었다. GitHub 쪽은 gh CLI(GitHub 공식 명령줄 도구)는 설치돼 있는데 로그인이 안 된 상태였다. gh auth status를 돌려보니 어떤 GitHub 계정에도 로그인돼 있지 않다고 나왔다. 이건 내가 대신 처리할 수 없다. 사용자가 직접 gh auth login을 실행해야 한다.
CLI 업데이트할 때 꼭 확인해야 할 것들
데몬 버전 불일치를 겪고 나서 정리한 확인 목록이다. 짧게 정리한다.
- 업데이트 후 반드시 버전을 두 군데 다 확인해라. CLI 버전(
opencli --version)만 보지 말고, 데몬 버전도 doctor 명령으로 따로 확인해야 한다. - stale daemon 경고가 뜨면 바로 재시작해라. 무시하면 CLI는 최신인데 실제 동작은 구버전 그대로인 상태가 된다.
- 데몬 재시작 직후 바로 doctor를 돌리지 마라. 확장이 다시 붙는 데 수 초가 걸린다. 5초 이상 기다리고 확인해야 한다.
- doctor 결과에서 warn은 그냥 두지 마라. warn은 파일은 있는데 연결이 확인 안 된 상태다. 별도 명령으로 직접 확인해야 한다.
- 데몬을 재시작하면 브라우저 프로필 연결이 끊긴다. 자동으로 다시 붙지만, 연결이 필요한 작업 중이라면 타이밍을 골라야 한다.
- gh auth login은 직접 해야 한다. CLI 도구가 대신 처리해줄 수 없다. GitHub 연동이 필요하면 이 단계를 빠뜨리지 마라.
이 CLI는 opencli 공식 저장소에서 소스를 볼 수 있다. 도구를 설치했다가 이미 깔려 있던 걸 알게 된 경험은 MCP 도구를 찾다가 이미 설치돼 있었던 글에도 비슷하게 적어뒀다.
다음에 할 일은 agent-reach v1.5.0이 실제로 뭘 할 수 있는지 직접 써보는 것이다. doctor 점검만 했고 아직 실제로 콘텐츠를 읽어보지 않았다. 트위터와 레딧이 연결 확인 상태에서 실제로 작동하는지가 궁금하다. 별 85k짜리 도구가 말한 대로 되는지는 써봐야 안다.
