AI 에이전트를 위한 멀티 플랫폼 퍼블리싱 CLI를 구축했습니다
요약
오픈 소스 기여 시 Dev.to, GitHub, LinkedIn 등 여러 플랫폼에 콘텐츠를 수동으로 게시해야 하는 번거로움을 해결하기 위해 멀티 플랫폼 퍼블리싱 CLI를 구축했습니다. 단일 마크다운 파일과 명령어 하나로 각 플랫폼의 API와 포맷에 맞춰 자동 게시가 가능합니다.
핵심 포인트
- 플랫폼별 API 및 인증 방식을 통합한 단일 CLI 도구 개발
- YAML 프론트매터를 활용한 콘텐츠 관리 자동화
- Dev.to, GitHub, LinkedIn 등 다양한 플랫폼 지원
- Python(httpx, PyYAML) 기반의 경량화된 구현
AI 에이전트를 위한 멀티 플랫폼 퍼블리싱 CLI를 구축했습니다
저는 정기적으로 오픈 소스 (open-source) 저장소에 기여합니다. 매번 Dev.to, GitHub, LinkedIn에 동일한 글을 수동으로 복사하여 붙여넣어야 했습니다. 각 플랫폼마다 포맷팅이 다르고, API가 다르며, 인증 (auth) 흐름도 달랐습니다. 그래서 단 하나의 명령어로 이 모든 것을 수행할 수 있는 CLI를 구축했습니다.
문제점
오픈 소스 프로젝트에 기여할 때, 보통 다음과 같은 과정을 원하게 됩니다:
- 관련 블로그 포스트 작성
- GitHub에 코드 푸시 (Push)
- 가시성을 위해 Dev.to에 공유
- LinkedIn에 교차 게시 (Cross-post)
각 플랫폼은 고유의 API, 인증 (auth) 방식, 마크다운 (markdown) 처리 방식을 가지고 있습니다. 이를 수동으로 수행하는 것은 지루하고 오류가 발생하기 쉽습니다.
해결책: Platform Picker
여러 플랫폼에 걸쳐 콘텐츠를 게시하는 단일 CLI 스크립트입니다:
# 하나의 플랫폼에 게시
python3 platform_picker.py publish --file article.md --platform devto
...
지원 플랫폼
| 플랫폼 | 인증 (Auth) | 게시 내용 |
|---|---|---|
| Dev.to | API key | 전체 마크다운 (markdown)이 포함된 기사 |
| ... |
작동 방식
1. 플랫폼별 1회 설정
python3 platform_picker.py setup devto --api-key YOUR_KEY
python3 platform_picker.py setup github --token YOUR_PAT
자격 증명 (Credentials)은 ~/.hermes/config.yaml에 저장되며, 스크립트에 절대 하드코딩되지 않습니다.
2. 콘텐츠를 한 번만 작성
YAML 프론트매터 (frontmatter)가 포함된 단일 마크다운 (markdown) 파일:
---
title: "Your Article Title"
tags: [ai, automation]
...
3. 모든 곳에 게시
CLI가 차이점을 처리합니다:
- Dev.to에는 태그가 포함된 전체 마크다운 (markdown)이 전달됩니다.
- GitHub에는 공개 Gist가 생성됩니다.
- LinkedIn에는 일반 텍스트 (plain text)가 전달됩니다 (3000자 제한).
- HermesHub에는 GitHub OAuth를 통해 기술 디렉토리가 제출됩니다.
실제 테스트
Dev.to에 기사를 게시하여 테스트했습니다:
$ python3 platform_picker.py publish --file /tmp/test.md --platform devto
--- Publishing to devto ---
Published! ID: 3868710
...
단 하나의 명령어로 정확한 제목, 본문, 태그와 함께 기사가 라이브 상태가 되었습니다.
에러 핸들링 (Error Handling)
CLI는 일반적인 실패 상황을 유연하게 처리합니다:
$ python3 platform_picker.py publish --file article.md --platform github
Platform not configured: github. Run 'setup github' first.
...
구축 과정 (Building It)
이 스크립트는 API 호출을 위한 httpx와 설정을 위한 PyYAML을 사용하는 약 200줄의 Python 코드로 작성되었습니다. 주요 기능은 다음과 같습니다:
~/.hermes/config.yaml에서 인증 정보(credentials)를 읽어옵니다.- 마크다운 파일에서 프론트매터 (frontmatter)를 파싱합니다.
- 각 플랫폼의 API에 맞게 콘텐츠를 조정(adapt)합니다.
- 게시를 수행하고 URL을 반환합니다.
가장 어려웠던 부분은 서로 다른 인증 (auth) 방식을 처리하는 것이었습니다. Dev.to는 단순한 API 키 헤더를 사용하고, GitHub은 Bearer 토큰을 사용하며, LinkedIn은 사용자 URN 조회가 포함된 OAuth 2.0이 필요합니다.
향후 계획 (What's Next)
현재 다음과 같은 기능 추가를 작업 중입니다:
- Twitter/X — 스레드 (thread) 게시
- Medium — 스토리 (story) 게시
- 예약 게시 (Scheduled publishing) — 특정 시간에 게시
목표는 터미널에서 한 번만 작성하여 어디든 게시하는 것입니다.
플랫폼 피커 (platform picker)는 hermes-skills 리포지토리의 일부입니다. 두 가지 스킬(open-source-contribution 및 platform-picker)은 커뮤니티 사용을 위해 HermesHub에 제출되었습니다.
AI 에이전트 워크플로 (workflows)를 구축하고 계신다면, 어떤 플랫폼을 추가하고 싶은지 의견을 듣고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기