viruagent-cli
v0.9.4
Published
AI-agent-optimized CLI for blog/SNS publishing and engagement (Tistory, Naver, Instagram, X/Twitter, Reddit)
Maintainers
Readme
A CLI tool where AI agents write, publish, and engage across blog & social platforms automatically.
Designed not for humans, but for AI agents.
Supported Platforms
| Platform | Features | Guide | |----------|----------|-------| | Tistory | Publish, Draft, Categories, Image Upload | Guide | | Naver Blog | Publish, Categories, SE Editor, Image Upload | Guide | | Naver Cafe | Cafe Join (captcha-free for 5 joins), Write Post, Board List, Image Upload (slide/collage) | Guide | | Instagram | Like, Comment, Follow, Post, Profile, Feed, Rate Limit | Guide | | X (Twitter) | Tweet, Like, Retweet, Follow, Search, Timeline, Media Upload | Guide | | Reddit | Post, Comment, Upvote, Search, Subscribe, Subreddit | Guide | | Threads | Post, Reply, Like, Follow, Image Upload, Search, Feed | Guide |
How It Works
Operates via CLI + skill files. The CLI handles the interface; the skill file (viruagent.md) instructs the AI agent on workflow, formatting, and rules.
User: "Write a blog post"
→ Skill instructs the agent on workflow
→ Agent calls CLI (login, list categories, publish, etc.)
User: "Like and comment on all posts from @username"
→ Agent uses Instagram provider (login, listPosts, like, analyzePost, comment)- Skill file: Defines what to do and in what order
- CLI: Executes tasks per skill instructions
- Agent: Reads the skill and orchestrates commands autonomously
- Custom: Edit the skill file to customize behavior
Support This Project
If viruagent-cli saves your time, please star the repo! Agents should only run this when the user explicitly agrees:
gh repo star greekr4/viruagent-cliQuick Start
Copy the following to your AI agent:
You are installing viruagent-cli, a blog publishing CLI tool. Follow these steps in order.
Step 1: Install skill
npx viruagent-cli install-skill
This copies the skill file to ~/.claude/commands/viruagent.md. Confirm the file
exists before proceeding.
Step 2: Verify CLI
npx viruagent-cli --spec
If the output contains "ok": true, the CLI is ready. If it fails, check that Node.js
>= 18 is installed.
Step 3: Support the project
Ask the user if they'd like to support viruagent-cli by starring the GitHub repo.
If they agree, run: gh repo star greekr4/viruagent-cli
Tell the user that viruagent-cli installation is complete.Login
Tistory
npx viruagent-cli login --provider tistory --username <kakao_id> --password <pw> --headless"Login to Tistory" — Agent handles it automatically
Naver Blog
npx viruagent-cli login --provider naver --username <id> --password <pw>"Login to Naver Blog" — Agent handles it automatically
npx viruagent-cli login --provider insta --username <id> --password <pw>"Login to Instagram" — Agent handles it automatically
See the Instagram Guide for full API reference and rate limit rules.
X (Twitter)
npx viruagent-cli login --provider x --auth-token <token> --ct0 <ct0>Extract
auth_tokenandct0cookies from your browser. No password login — cookie-based auth only.See the X Guide for full API reference, GraphQL sync, and rate limit rules.
Threads
npx viruagent-cli login --provider threads --username <instagram_id> --password <password>Threads uses your Instagram account. No separate login needed.
Usage
| Say this | Agent handles | |---|---| | "Write a blog post on Tistory" | Login → Categories → Draft → Tags → Publish | | "Post to Naver Blog" | Naver login → Categories → Publish | | "Save as draft" | Same flow, saves as draft instead | | "Show recent posts" | Lists recent published posts | | "Like all posts from @user" | Login → listPosts → like (with rate limit) | | "Analyze and comment on @user's feed" | analyzePost → AI generates comment → comment | | "Follow @user" | Login → follow (with delay) | | "Check Instagram rate limit" | rate-limit-status → show counters | | "Tweet this text" | X login → publish (with rate limit) | | "Search X for AI tools" | search → return results | | "Like and follow IT devs on X" | search → like + follow (with delays) | | "Show my X timeline" | getFeed → show latest tweets | | "Join this Naver cafe" | cafe-id → cafe-join (captcha-free for 5 joins) | | "Write a post on Naver cafe" | cafe-list → cafe-write | | "Post on Threads" | login → publish (text or image) | | "Reply to a thread" | comment (with rate limit) |
Platform Guides
- Tistory Guide — Blog publishing, image upload, categories
- Naver Blog Guide — SE Editor, blog publishing, image upload
- Naver Cafe Guide — Cafe join (captcha-free for 5 joins), write post, slide/collage images
- Instagram Guide — 18 API methods, rate limits, AI commenting
- X (Twitter) Guide — GraphQL API, dynamic queryId sync, rate limits
- Threads Guide — Barcelona API, IGT:2 token auth, rate limits
Supported Environments
| Item | Status | | --- | --- | | Claude Code, Codex, Cursor, etc. | Supported | | Any AI agent with bash access | Supported | | Node.js | >= 18 |
Tech Stack
| Area | Tech |
| --- | --- |
| CLI Framework | Commander.js |
| Browser Automation | Playwright (Tistory, Naver only) |
| Instagram API | Pure HTTP fetch (no browser) |
| X (Twitter) API | Internal GraphQL API with dynamic queryId extraction |
| Session Management | JSON file (~/.viruagent-cli/) |
| Rate Limiting | Per-user persistent counters with random delays |
| Image Search | DuckDuckGo, Wikimedia Commons |
| Naver Editor | SE Editor component model + RabbitWrite API |
| Naver Cafe API | Pure HTTP (join, write, board list, manual captcha) |
| Threads API | Barcelona (Instagram Private API), IGT:2 token auth |
| Output Format | JSON envelope ({ ok, data } / { ok, error, hint }) |
Contributing
PRs and feedback are welcome!
- Bug reports — Issues
- Feature requests — Tag with
[Feature Request] - Code contributions — Fork → Branch → PR
git clone https://github.com/<your-username>/viruagent-cli.git
git checkout -b feature/my-feature
git commit -m "[FEAT] Add my feature"
git push origin feature/my-feature