New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

viruagent

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

viruagent

AI 기반 티스토리 블로그 자동 발행 CLI 도구

Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source
image

ViruAgent

터미널에서 티스토리 블로그 글을 만들고, 다듬고, 발행하는 CLI 도구

티스토리 API를 역분석해서 OpenAI와 엮었습니다. 글감 잡기 → 초안 생성 → 수정 → 발행까지 터미널 안에서 끝납니다.

공식 API가 아닌 비공식 내부 통신을 쓰기 때문에, 학습/실험 용도로 만들었습니다.

뭘 할 수 있나

  • AI 대화로 글쓰기 — 챗처럼 대화하면서 아이디어를 다듬고, /write로 초안을 뽑고, /edit로 고칩니다.
  • Unsplash 이미지 자동 삽입 — 글 생성 시 주제에 맞는 이미지를 자동 검색하고 티스토리에 업로드합니다. 첫 번째 이미지가 썸네일로 설정됩니다.
  • 브라우저 로그인으로 세션 관리 — OAuth 설정 없이 Playwright로 실제 로그인해서 쿠키를 가져옵니다.
  • 유연한 글 구조 — 5가지 글 유형(튜토리얼, 비교/리뷰, 리스트, 정보 가이드, 인사이트)을 AI가 주제에 맞게 자율 선택합니다.
  • CLI UX — 커맨드 힌트, 화살표 키 메뉴, 상태바 등을 넣어서 터미널에서도 불편하지 않게 만들었습니다.
  • HTML 유지하면서 수정 — 글 구조를 깨뜨리지 않고 특정 부분만 고치거나 말투를 바꿀 수 있습니다.

시작하기

필요한 것: Node.js 18+, OpenAI API Key

git clone https://github.com/your-username/viruagent.git
cd viruagent
npm install
cp .env.example .env
# .env 파일 편집
npm start

환경 변수

변수필수설명
OPENAI_API_KEYOOpenAI API 키
UNSPLASH_ACCESS_KEYXUnsplash API 키 (없으면 이미지 삽입 건너뜀)

Unsplash API 키는 unsplash.com/developers에서 무료로 발급받을 수 있습니다. (시간당 50회 제한)

명령어

image
명령어설명
/write <주제>AI가 블로그 글 초안 생성
/edit <지시>초안 수정 ("더 친근하게 바꿔줘" 같은 식으로)
/preview작성 중인 글 미리보기
/publish글 발행
/set카테고리, 공개 설정, 모델, 말투 변경
/list최근 발행 글 목록
/login티스토리 세션 갱신
/logout티스토리 세션 삭제

Claude Code로 글쓰기

Claude Code에서 자연어로 명령할 수 있습니다.

> viruagent로 블로그에 글 아무거나 써줘 카테고리는 "기타"
image

카테고리, 공개 여부, 발행 방식을 물어본 뒤 AI가 글을 생성해서 티스토리에 발행합니다.

직접 CLI로 실행

# 카테고리 목록 조회
node src/cli-post.js --list-categories

# 글 생성 + 발행
node src/cli-post.js --topic "주제" --category 1247460 --visibility public

# 미리보기만 (발행 안 함)
node src/cli-post.js --topic "주제" --dry-run

# 임시저장
node src/cli-post.js --topic "주제" --draft

Unsplash 이미지 연동

글 생성 시 본문에 <!-- IMAGE: keyword --> 플레이스홀더가 자동 삽입됩니다. UNSPLASH_ACCESS_KEY가 설정되어 있으면:

  • 키워드로 Unsplash에서 이미지 검색
  • 이미지 다운로드 → 티스토리에 업로드
  • 티스토리 네이티브 이미지 치환자([##_Image|kage@..._##])로 변환
  • 첫 번째 이미지가 자동으로 글 썸네일(대표 이미지)로 설정

키가 없으면 이미지 처리를 건너뛰고 글만 발행합니다.

시스템 프롬프트 커스터마이징

글의 톤, 구조, HTML 스타일은 config/system-prompt.md에서 수정할 수 있습니다.

config/
├── prompt-config.json   # 모델, 말투, 이미지 설정
└── system-prompt.md     # AI 글쓰기 규칙 (글 유형, HTML 레퍼런스, 톤)

글 유형 (AI가 주제에 맞게 자율 선택)

유형구조
튜토리얼준비물 → 단계 → 결과 확인 → 트러블슈팅
비교/리뷰비교 테이블 + 장단점 → 추천
리스트번호 소제목 + 항목별 팁
정보 가이드문제 → 원인 → 해결 → FAQ
인사이트화두 → 근거 → 시사점 → 액션

prompt-config.json 설정

{
  "defaultModel": "gpt-4o-mini",
  "defaultTone": "정보전달",
  "defaultLength": 2500,
  "imageSource": "unsplash",
  "imagesPerPost": 3
}

로그

실행 로그가 logs/ 폴더에 날짜별로 기록됩니다.

logs/
└── 2026-02-11.log

이미지 업로드 실패, API 오류 등의 디버깅에 활용할 수 있습니다.

[10:30:15.123] [INFO] [unsplash] 이미지 플레이스홀더 3개 발견
[10:30:16.456] [INFO] [unsplash] Unsplash 이미지 찾음 | {"keyword":"laptop"}
[10:30:17.789] [INFO] [tistory] 이미지 업로드 성공 | {"url":"https://blog.kakaocdn.net/..."}
[10:30:17.800] [ERROR] [tistory] 이미지 업로드 실패 | {"status":500}

기술 스택

  • 런타임: Node.js (CommonJS)
  • AI: OpenAI SDK
  • 이미지: Unsplash API
  • 자동화: Playwright, Fetch
  • CLI: Chalk, Readline

주의사항

이 프로젝트는 티스토리의 비공식 내부 API를 사용합니다.

  • 정책이 바뀌면 언제든 안 될 수 있습니다.
  • 사용에 따른 책임은 본인에게 있습니다.

교육/학습 목적으로 만들었습니다.

License

MIT

Keywords

tistory

FAQs

Package last updated on 11 Feb 2026

Related posts