https://github.com/cskwork/tistory-blog-poster-skill
Claude/Codex skill: write a Korean blog article first, then privately publish it to Tistory via Playwright CLI (CDP) with an auto-generated Codex cover.
https://github.com/cskwork/tistory-blog-poster-skill
blog-automation claude-code codex korean playwright seo skill tistory
Last synced: 4 days ago
JSON representation
Claude/Codex skill: write a Korean blog article first, then privately publish it to Tistory via Playwright CLI (CDP) with an auto-generated Codex cover.
- Host: GitHub
- URL: https://github.com/cskwork/tistory-blog-poster-skill
- Owner: cskwork
- Created: 2026-06-01T21:49:15.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-19T21:28:54.000Z (19 days ago)
- Last Synced: 2026-06-19T23:12:39.209Z (19 days ago)
- Topics: blog-automation, claude-code, codex, korean, playwright, seo, skill, tistory
- Language: Python
- Size: 74.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tistory SEO Blog Poster Skill
Reusable skill for preparing Korean SEO posts for Tistory, generating a topic-specific cover image, and drafting or privately publishing through an existing Chrome session.
## What It Does
- Converts a Korean Markdown/Hugo post into a Tistory package.
- Creates `cover_prompt.md` from the title, summary, tags, headings, and body signals.
- Requires a unique topic-specific Codex Image 2.0 `cover.codex.png` for each final post.
- Adds readable Tistory body spacing for paragraphs, headings, lists, tables, blockquotes, and code.
- Uses Playwright Agent CLI against an existing authenticated Chrome session.
- Refuses public publishing unless explicitly confirmed.
## Install
From a standalone clone:
```bash
ln -s "$PWD" ~/.codex/skills/tistory-seo-blog-poster
```
For Claude Code, link the same folder:
```bash
ln -s "$PWD" ~/.claude/skills/tistory-seo-blog-poster
```
## Prepare A Package
```bash
python3 scripts/prepare_tistory_package.py \
--source /path/to/post.md \
--output-dir /tmp/tistory-post
```
## Generate A Topic Cover
Read `/tmp/tistory-post/cover_prompt.md` and generate the final cover with Codex Image 2.0. Save the result as `/tmp/tistory-post/cover.codex.png`, then update `package.json`:
- `cover_png`: `/tmp/tistory-post/cover.codex.png`
- `cover_codex`: `/tmp/tistory-post/cover.codex.png`
- `cover_generation_mode`: `codex_image_2`
- `cover_source_image`: original generated-image path
`scripts/build_codex_cover_bitmap.py` and `scripts/build_tistory_cover_svg.py` are preview/fallback helpers only. Do not use them for final upload when real Codex image generation is available.
## Private Publish
Attach Chrome with Playwright CLI first, then run:
```bash
python3 scripts/tistory_playwright_cli.py \
--package /tmp/tistory-post/package.json \
--session tistory-cdp \
--attach none \
--target-url "https://YOUR_BLOG.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F" \
--private-publish \
--confirm-private-publish
```
## Dependencies
- Python 3.9+
- Pillow for `build_codex_cover_bitmap.py`
- optional ImageMagick for fallback SVG to PNG conversion
- Playwright Agent CLI for browser automation
## Guardrails
- Do not reuse a cover image across posts.
- Reject generic AI banners before upload.
- Do not use local fallback covers for final publishing when Codex Image 2.0 is available.
- Keep Tistory login state in the user's browser; do not export cookies or profiles.
- Use private publish or draft flows unless the user explicitly asks for public publishing.