{"id":47922785,"url":"https://github.com/greekr4/viruagent-cli","last_synced_at":"2026-04-04T06:18:54.197Z","repository":{"id":342178243,"uuid":"1172385517","full_name":"greekr4/viruagent-cli","owner":"greekr4","description":"AI agent-powered CLI for blog publishing, Naver Cafe, Instagram, X (Twitter) \u0026 Reddit automation","archived":false,"fork":false,"pushed_at":"2026-03-31T06:17:25.000Z","size":3173,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T08:36:11.442Z","etag":null,"topics":["ai-agent","blog-automation","cafe-automation","claude-code","cli","instagram","instagram-automation","llm-tools","naver","naver-blog","naver-cafe","playwright","publishing","reddit","sns-automation","social-media-automation","tistory","twitter","x-twitter"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greekr4.png","metadata":{"files":{"readme":"README.ko.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-04T08:48:59.000Z","updated_at":"2026-03-31T06:17:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/greekr4/viruagent-cli","commit_stats":null,"previous_names":["greekr4/viruagent-cli"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/greekr4/viruagent-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greekr4%2Fviruagent-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greekr4%2Fviruagent-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greekr4%2Fviruagent-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greekr4%2Fviruagent-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greekr4","download_url":"https://codeload.github.com/greekr4/viruagent-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greekr4%2Fviruagent-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31389691,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","blog-automation","cafe-automation","claude-code","cli","instagram","instagram-automation","llm-tools","naver","naver-blog","naver-cafe","playwright","publishing","reddit","sns-automation","social-media-automation","tistory","twitter","x-twitter"],"created_at":"2026-04-04T06:18:53.788Z","updated_at":"2026-04-04T06:18:54.182Z","avatar_url":"https://github.com/greekr4.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"demo/demo.gif\" alt=\"viruagent-cli demo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eviruagent-cli\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/greekr4/viruagent-cli/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/greekr4/viruagent-cli\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/viruagent-cli\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/viruagent-cli?color=blue\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/viruagent-cli\" alt=\"license\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org\"\u003e\u003cimg src=\"https://img.shields.io/node/v/viruagent-cli\" alt=\"node version\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/English-blue\" alt=\"English\"\u003e\u003c/a\u003e\n  \u003ca href=\"README.ko.md\"\u003e\u003cimg src=\"https://img.shields.io/badge/한국어-red\" alt=\"Korean\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**AI 에이전트가 블로그 발행부터 SNS 활동까지 자동으로 처리하는 CLI 도구**\n\n사람이 아닌 **AI 에이전트를 위해** 설계되었습니다.\n\n## 지원 플랫폼\n\n| 플랫폼 | 주요 기능 | 가이드 |\n|--------|----------|--------|\n| **Tistory** | 글 발행, 임시저장, 카테고리, 이미지 업로드 | [가이드](docs/ko/guide-tistory.md) |\n| **Naver Blog** | 글 발행, 카테고리, SE Editor, 이미지 업로드 | [가이드](docs/ko/guide-naver.md) |\n| **Naver Cafe** | 카페 가입 (모바일 5회 캡차 면제), 글쓰기, 게시판 조회, 이미지 업로드 (슬라이드/콜라주) | [가이드](docs/ko/guide-naver-cafe.md) |\n| **Instagram** | 좋아요, 댓글, 팔로우, 포스팅, 프로필, 피드 | [가이드](docs/ko/guide-instagram.md) |\n| **X (Twitter)** | 트윗, 좋아요, 리트윗, 팔로우, 검색, 타임라인, 미디어 업로드 | [가이드](docs/ko/guide-x.md) |\n| **Threads** | 글쓰기, 답글, 좋아요, 팔로우, 이미지 업로드, 검색, 피드 | [가이드](docs/ko/guide-threads.md) |\n\n## 동작 방식\n\n**CLI + 스킬 기반**으로 작동합니다. CLI 자체는 인터페이스만 담당하고, 스킬 파일(`viruagent.md`)이 AI 에이전트에게 워크플로우를 지시합니다.\n\n```\n사용자: \"블로그 써줘\"\n  → 스킬이 에이전트에게 워크플로우 지시\n    → 에이전트가 CLI를 호출 (로그인, 카테고리 조회, 발행 등)\n\n사용자: \"@username 게시물 전부 좋아요하고 댓글 달아줘\"\n  → 에이전트가 Instagram 프로바이더 사용 (로그인, listPosts, like, analyzePost, comment)\n```\n\n- **스킬 파일**: 에이전트가 무엇을, 어떤 순서로 할지 정의\n- **CLI**: 스킬의 지시를 받아 실제 작업 수행\n- **에이전트**: 스킬을 읽고 CLI를 조합하여 자율적으로 실행\n- **커스텀**: 스킬 파일을 직접 수정하여 원하는 대로 동작하도록 설정 가능\n\n## 프로젝트 지원하기\n\nviruagent-cli가 유용하다면 GitHub 스타를 눌러주세요!\n에이전트는 사용자가 동의한 경우에만 실행해주세요:\n\n```bash\ngh repo star greekr4/viruagent-cli\n```\n\n## 빠른 시작\n\n![viru_install](https://github.com/user-attachments/assets/35efb57f-fada-44c0-8dd4-6d586ef33a7c)\n\n아래 내용을 AI 에이전트에게 그대로 복사해서 보여주세요.\n\n```\nYou are installing viruagent-cli, a blog publishing CLI tool. Follow these steps in order.\n\nStep 1: Install skill\nnpx viruagent-cli install-skill\nThis copies the skill file to ~/.claude/commands/viruagent.md. Confirm the file\nexists before proceeding.\n\nStep 2: Verify CLI\nnpx viruagent-cli --spec\nIf the output contains \"ok\": true, the CLI is ready. If it fails, check that Node.js\n\u003e= 18 is installed.\n\nStep 3: Support the project\nAsk the user if they'd like to support viruagent-cli by starring the GitHub repo.\nIf they agree, run: gh repo star greekr4/viruagent-cli\n\nTell the user that viruagent-cli installation is complete.\n```\n\n## 로그인\n\n### Tistory\n\n```bash\nnpx viruagent-cli login --provider tistory --username \u003c카카오 ID\u003e --password \u003c비밀번호\u003e --headless\n```\n\u003e \"티스토리 로그인해줘\" — 에이전트가 알아서 처리\n\n### Naver Blog\n\n```bash\nnpx viruagent-cli login --provider naver --username \u003c네이버 ID\u003e --password \u003c비밀번호\u003e\n```\n\u003e \"네이버 블로그 로그인해줘\" — 에이전트가 알아서 처리\n\n### Instagram\n\n```bash\nnpx viruagent-cli login --provider insta --username \u003c인스타 ID\u003e --password \u003c비밀번호\u003e\n```\n\u003e \"인스타 로그인해줘\" — 에이전트가 알아서 처리\n\u003e\n\u003e 전체 API 레퍼런스와 rate limit 규칙은 [Instagram 가이드](docs/ko/guide-instagram.md)를 참고하세요.\n\n### X (Twitter)\n\n```bash\nnpx viruagent-cli login --provider x --auth-token \u003c토큰\u003e --ct0 \u003cct0\u003e\n```\n\u003e 브라우저에서 `auth_token`과 `ct0` 쿠키를 추출하세요. 비밀번호 로그인 없음 — 쿠키 기반 인증만 지원.\n\u003e\n\u003e 전체 API 레퍼런스, GraphQL 동기화, rate limit 규칙은 [X 가이드](docs/ko/guide-x.md)를 참고하세요.\n\n### Threads\n\n```bash\nnpx viruagent-cli login --provider threads --username \u003c인스타 ID\u003e --password \u003c비밀번호\u003e\n```\n\u003e Instagram 계정으로 로그인합니다. 쓰레드는 별도 계정이 없습니다.\n\n## 사용법\n\n| 이렇게 말하면 | 에이전트가 알아서 |\n|---|---|\n| \"티스토리에 블로그 써줘\" | 로그인 → 카테고리 → 글 작성 → 태그 → 발행 |\n| \"네이버에 글 올려줘\" | 네이버 로그인 → 카테고리 → 발행 |\n| \"임시저장해줘\" | 같은 흐름, 발행 대신 임시저장 |\n| \"최근 글 보여줘\" | 최근 발행 글 목록 조회 |\n| \"@user 게시물 전부 좋아요해줘\" | 로그인 → listPosts → like (rate limit 자동 적용) |\n| \"이 사람 피드 분석해서 댓글 달아줘\" | analyzePost → AI 댓글 생성 → comment |\n| \"@user 팔로우해줘\" | 로그인 → follow (딜레이 자동 적용) |\n| \"인스타 rate limit 확인해줘\" | rate-limit-status → 카운터 표시 |\n| \"이 내용으로 트윗해줘\" | X 로그인 → publish (rate limit 자동 적용) |\n| \"X에서 AI 도구 검색해줘\" | search → 결과 반환 |\n| \"X에서 IT 개발자 좋아요하고 팔로우해줘\" | search → like + follow (딜레이 자동 적용) |\n| \"내 X 타임라인 보여줘\" | getFeed → 최신 트윗 표시 |\n| \"이 네이버 카페 가입해줘\" | cafe-id → cafe-join (모바일 5회 캡차 면제) |\n| \"네이버 카페에 글 써줘\" | cafe-list → cafe-write |\n| \"쓰레드에 글 올려줘\" | login → publish (텍스트 또는 이미지) |\n| \"이 쓰레드에 답글 달아줘\" | comment (rate limit 자동 적용) |\n\n## 플랫폼별 가이드\n\n- **[Tistory 가이드](docs/ko/guide-tistory.md)** — 블로그 발행, 이미지 업로드, 카테고리\n- **[Naver Blog 가이드](docs/ko/guide-naver.md)** — SE Editor, 블로그 발행, 이미지 업로드\n- **[Naver Cafe 가이드](docs/ko/guide-naver-cafe.md)** — 카페 가입 (모바일 5회 캡차 면제), 글쓰기, 슬라이드/콜라주\n- **[Instagram 가이드](docs/ko/guide-instagram.md)** — 18개 API 메서드, rate limit 규칙, AI 댓글\n- **[X (Twitter) 가이드](docs/ko/guide-x.md)** — GraphQL API, queryId 동적 동기화, rate limit 규칙\n- **[Threads 가이드](docs/ko/guide-threads.md)** — Barcelona API, IGT:2 토큰 인증, rate limit 규칙\n\n## 지원 환경\n\n| 항목 | 상태 |\n| --- | --- |\n| Claude Code, Codex, Cursor 등 | 지원 |\n| bash 실행 가능한 모든 AI 에이전트 | 지원 |\n| Node.js | \u003e= 18 |\n\n## 기술 스택\n\n| 영역 | 기술 |\n| --- | --- |\n| CLI 프레임워크 | Commander.js |\n| 브라우저 자동화 | Playwright (Tistory, Naver만 사용) |\n| Instagram API | 순수 HTTP fetch (브라우저 불필요) |\n| X (Twitter) API | 내부 GraphQL API + queryId 동적 추출 |\n| 세션 관리 | JSON 파일 (`~/.viruagent-cli/`) |\n| Rate Limiting | 유저별 영속 카운터 + 랜덤 딜레이 |\n| 이미지 검색 | DuckDuckGo, Wikimedia Commons |\n| 네이버 에디터 | SE Editor 컴포넌트 모델 + RabbitWrite API |\n| 네이버 카페 API | 순수 HTTP (가입, 글쓰기, 게시판 조회, 사용자 캡차 입력) |\n| Threads API | Barcelona (Instagram Private API), IGT:2 토큰 인증 |\n| 출력 형식 | JSON envelope (`{ ok, data }` / `{ ok, error, hint }`) |\n\n## Contributing\n\nPR과 피드백을 환영합니다!\n\n1. **버그 리포트** — [Issues](https://github.com/greekr4/viruagent-cli/issues)에 올려주세요\n2. **기능 제안** — Issue에 `[Feature Request]` 태그로 제안해주세요\n3. **코드 기여** — Fork → 브랜치 생성 → PR\n\n```bash\ngit clone https://github.com/\u003cyour-username\u003e/viruagent-cli.git\ngit checkout -b feature/my-feature\ngit commit -m \"[FEAT] Add my feature\"\ngit push origin feature/my-feature\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreekr4%2Fviruagent-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreekr4%2Fviruagent-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreekr4%2Fviruagent-cli/lists"}