GitHub - greekr4/viruagent-cli: AI agent-powered CLI for blog publishing, Naver Cafe, Instagram, X (Twitter) & Reddit automation
Service

GitHub - greekr4/viruagent-cli: AI agent-powered CLI for blog publishing, Naver Cafe, Instagram, X (Twitter) & Reddit automation

greekr4
2026.04.13
·GitHub·by 권준호
#AI Agent#Automation#CLI#Publishing#Social Media

핵심 포인트

  • 1viruagent-cli는 AI 에이전트가 Tistory, Naver Blog, Instagram, X(Twitter) 등 다양한 블로그 및 소셜 플랫폼에서 콘텐츠를 작성, 발행하고 상호작용하도록 돕는 CLI 도구입니다.
  • 2이 도구는 Skill 파일을 통해 AI 에이전트의 작업을 지시하며, 로그인, 게시, 검색, 팔로우 등 플랫폼별 기능을 자동화된 명령으로 제공합니다.
  • 3Claude와 같은 AI 에이전트 사용에 최적화되어 있으며, Playwright 기반 브라우저 자동화와 HTTP API를 활용하여 효율적인 온라인 활동을 가능하게 합니다.

viruagent-cli는 AI 에이전트가 블로그 및 소셜 미디어 플랫폼 전반에 걸쳐 콘텐츠를 작성하고, 게시하며, 상호작용할 수 있도록 설계된 명령줄 인터페이스 (CLI) 도구입니다. 이 도구는 인간 사용자가 아닌 AI 에이전트의 자동화된 작업을 위해 특별히 개발되었습니다.

핵심 방법론 및 기술적 특징:

이 프로젝트의 핵심은 CLI, 스킬 파일 (skill file), 그리고 AI 에이전트 간의 상호작용을 통해 다양한 온라인 플랫폼과의 복잡한 연동을 추상화하는 것입니다.

  1. CLI (Command Line Interface): Commander.js 프레임워크를 기반으로 구축되었으며, 실제 플랫폼과의 인터페이스 및 태스크 실행을 담당합니다. 에이전트의 요청을 받아 특정 기능을 수행하는 명령어 집합을 제공합니다.
  2. 스킬 파일 (Skill file): viruagent.md라는 Markdown 형식의 파일로, AI 에이전트가 수행할 워크플로우, 포맷팅 규칙, 그리고 특정 작업을 처리하는 방식을 지시합니다. 예를 들어, "블로그 게시물 작성"과 같은 상위 수준의 명령이 주어지면, 스킬 파일은 에이전트에게 로그인, 카테고리 나열, 초안 작성, 태그 추가, 게시 등 일련의 CLI 명령을 호출하도록 지시합니다. 이는 AI 에이전트가 복잡한 작업을 자율적으로 분해하고 실행하도록 돕는 핵심적인 추상화 계층입니다.
  3. AI 에이전트: 스킬 파일을 해석하고, 이를 기반으로 viruagent-cli가 제공하는 명령어를 호출하여 작업을 오케스트레이션합니다. 에이전트는 스킬 파일의 지침에 따라 플랫폼별 특성을 고려하여 자율적으로 동작합니다.

지원 플랫폼 및 기능:

viruagent-cli는 다양한 블로그 및 소셜 미디어 플랫폼과의 연동을 지원하며, 각 플랫폼의 특성에 맞는 기능을 제공합니다:

  • Tistory: 게시, 초안 저장, 카테고리 관리, 이미지 업로드. Playwright를 통한 브라우저 자동화를 사용합니다.
  • Naver Blog: 게시, 카테고리 관리, SE 에디터 지원, 이미지 업로드. Tistory와 마찬가지로 Playwright를 활용합니다.
  • Naver Cafe: 카페 가입 (최대 5회까지 CAPTCHA 없이 가입 가능), 게시물 작성, 게시판 목록 조회, 이미지 업로드 (슬라이드/콜라주 형식). 순수 HTTP API를 통해 구현되었습니다.
  • Instagram: 좋아요, 댓글, 팔로우, 게시물 업로드, 프로필 조회, 피드 확인, API 호출 속도 제한 관리. 브라우저 없이 순수 HTTP fetch를 통해 API에 접근합니다.
  • X (Twitter): 트윗, 좋아요, 리트윗, 팔로우, 검색, 타임라인 조회, 미디어 업로드. 동적 queryId 추출을 포함하는 내부 GraphQL API를 활용합니다.
  • Reddit: 게시물 작성, 댓글 작성, 업보트, 검색, 구독, 서브레딧 가입. (상세 기술 스택은 명시되지 않음).
  • Threads: 게시물 작성, 답글, 좋아요, 팔로우, 이미지 업로드, 검색, 피드 확인. Barcelona (Instagram Private API)IGT:2 토큰 인증을 사용합니다.

기술 스택 및 세부 구현:

  • 브라우저 자동화: Tistory 및 Naver 블로그 연동을 위해 Playwright를 사용합니다.
  • API 연동: Instagram, X (Twitter), Naver Cafe, Threads 등 각 플랫폼의 특성에 맞춰 순수 HTTP fetch, GraphQL API, 또는 특정 사설 API (예: Barcelona API)를 사용하여 구현됩니다. 특히 X (Twitter) API의 경우 동적으로 변하는 queryId를 추출하여 GraphQL API를 호출하는 기술적 난이도가 높은 접근 방식을 채택합니다.
  • 세션 관리: 사용자 계정 정보 및 세션은 ~/.viruagent-cli/ 경로의 JSON 파일로 저장됩니다.
  • 속도 제한 (Rate Limiting): 각 플랫폼의 API 호출 제한을 준수하기 위해 사용자별 영구 카운터와 랜덤 지연 (random delays)을 활용하여 요청 속도를 조절합니다.
  • 이미지 검색: DuckDuckGo 및 Wikimedia Commons를 통해 이미지를 검색합니다.
  • 출력 형식: 모든 CLI 명령의 결과는 { ok, data } 또는 { ok, error, hint } 형태의 JSON envelope로 반환되어 AI 에이전트가 파싱하기 용이합니다.

이 도구는 AI 에이전트가 복잡한 웹 인터랙션을 프로그램적으로 수행할 수 있도록 함으로써, 콘텐츠 마케팅, 소셜 미디어 관리 등 다양한 자동화 시나리오에서 효율성을 극대화하는 데 기여합니다.