Skip to content

Prerequisites

This step is a one-time thing. Skip anything you already have.

If more than half the commands are unfamiliar, take a look at the “Who this was written for” section in Beginner overview first. The learning level the manual assumes is planted there.

ItemmacOSWindowsLinux
Terminal you useTerminal.app or iTerm2Ubuntu on WSL2 recommendedthe shell your distro ships
Verified stateverifiedinstall WSL2 first, then run every command inside itverified

On Windows, finish the WSL2 install guide first, then come back here. Every command in this manual assumes you run it inside the Ubuntu shell on WSL2.

The publish script (scripts/deploy_to_blogger.py) runs on Python 3. Most macOS and Linux systems already have it.

Terminal window
python3 --version # a line like Python 3.11.x means it's fine

If nothing shows or you get “command not found,” install it.

Terminal window
# macOS
brew install python3
# Linux and WSL2
sudo apt update && sudo apt install -y python3 python3-pip
Terminal window
xcode-select --install

A small dialog pops up, takes your agreement, and starts installing. If git is already installed, it just prints one notice and ends.

Terminal window
sudo apt update && sudo apt install -y git
Terminal window
git --version # git version 2.x.x
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

The official install guide is at docs.claude.com/en/docs/claude-code/quickstart. After installing, run claude once to log in or register an API key.

Terminal window
claude --version # a version number means you're ready

You can use the OpenAI Codex CLI instead of Claude Code. In that case the entry point is the repository root AGENTS.md, and the same flow applies. If this is your first time, Claude Code is recommended.

Sign in to blogger.com with a Google account and create a blog. If you’ll run a Korean blog and an English blog separately, make two. blog-studio puts the Korean version on the BLOG_ID_KO blog and the English version on the BLOG_ID_EN blog.

Once you’ve made the blog, that’s it for now. Planting the blog ID into .env is covered in first-run and publish.

To post to Blogger automatically, you need credentials issued by Google. Two files.

  • scripts/credentials.json — the OAuth client you get from the Google Cloud console (desktop app type)
  • scripts/token.json — the token generated automatically once you go through the consent screen on your first publish

Getting credentials.json is the flow of creating a project in the Google Cloud console, enabling the Blogger API, and issuing an OAuth client ID of the desktop app type to download. The screen order and button locations are written up in the repository’s scripts/README.md, and since the Google console screens change often, keep the official docs alongside.

There’s no need to make token.json now. It’s created automatically once you consent in the browser on your first publish.

If you want to peek at how posts are saved, VS Code is fine. Since AI does the writing, it isn’t strictly necessary.

Once the items are in place, go to clone-and-install.