# X(트위터) 게시물 자동화 에이전트 스킬

> 실제 Chrome 브라우저를 사용하여 X(트위터)에 텍스트, 이미지, 동영상, 장문의 기사를 자동으로 게시하세요. Codex Chrome 플러그인, Computer Use, CDP 스크립트 등 다양한 모드를 지원합니다. 효율적으로 콘텐츠를 공유하기 시작하세요.

- Canonical: https://nanoskill.ai/ko/skills/post-to-twitter
- Markdown: https://nanoskill.ai/ko/skills/post-to-twitter.md
- Author: JimLiu
- Published: 2026-06-01T07:19:10.429Z
- Updated: 2026-07-25T04:34:26.608Z
- Language: ko
- Source type: github
- Popularity signal: 20040

## Sources

- https://github.com/JimLiu/baoyu-skills

## Install

```shell
npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x
```

## About

X(트위터) 게시물 자동화 스킬은 X에서 콘텐츠 게시를 자동화하는 강력한 솔루션을 제공하여, 사용자가 텍스트, 이미지, 동영상, 장문의 기사를 효율적으로 공유할 수 있게 합니다. 이 도구는 개별 사용자부터 콘텐츠 크리에이터, 마케터까지 소셜 미디어 활동을 간소화하려는 모든 사람을 위해 설계되었습니다. 실제 Chrome 브라우저 인스턴스와 통합되어 X 플랫폼과의 호환성을 보장하며 유연한 제어 옵션을 제공합니다.

이 스킬은 Codex Chrome 플러그인, Chrome Computer Use, CDP 스크립트 모드 등 다양한 브라우저 제어 모드를 지원하는 점이 돋보입니다. 이러한 적응성은 다양한 사용자 환경과 선호도에 걸쳐 효과적으로 작동할 수 있게 합니다. 주요 기능 중 하나는 마크다운 파일에서 직접 자세한 X Article을 게시할 수 있어, 커버 이미지 업로드 및 콘텐츠 이미지 포함과 같은 복잡한 작업을 처리할 수 있다는 것입니다. 이는 깊이 있는 콘텐츠를 공유하는 데 매우 유용합니다.

사용자는 일일 소셜 미디어 업데이트 자동화, 종합적인 블로그 게시물이나 보고서를 X Article로 게시, 다른 트윗을 빠르게 인용하고 댓글을 다는 등 다양한 시나리오에 이 스킬을 활용할 수 있습니다. 환경이 올바르게 구성되었는지 확인하는 유용한 사전 점검 기능과 문제 해결을 위한 명확한 지침을 제공하여, 자동화를 처음 접하는 사용자도 쉽게 사용할 수 있습니다.

## Key features

- **다양한 콘텐츠 게시**: 텍스트, 이미지, 비디오를 X (Twitter)에 원활하게 게시하여 다양한 미디어 유형을 처리하고 다양한 콘텐츠 공유 요구를 충족합니다.
- **장문 아티클 게시**: Markdown 파일에서 X 아티클을 게시하며, 커버 이미지와 포함된 콘텐츠 이미지를 포함하여 상세한 게시물에 이상적입니다.
- **유연한 브라우저 제어 모드**: Codex Chrome 플러그인, Chrome Computer Use, CDP 스크립트 모드를 지원하여 다양한 실행 환경과 사용자 선호도에 적응합니다.
- **인용 트윗 기능**: 기존 트윗에 댓글과 함께 쉽게 인용하여 플랫폼에서의 참여와 토론을 촉진합니다.
- **사전 환경 점검**: Chrome, Bun, 접근성 권한 등 필요한 사전 조건을 확인하는 스크립트가 포함되어 있으며, 문제 발생 시 안내를 제공합니다.

## Use cases

- **소셜 미디어 업데이트 자동화**: 콘텐츠 크리에이터와 마케터는 텍스트, 이미지, 비디오를 포함한 정기 게시물을 예약하고 자동화하여 수동 개입 없이 X에서 활발한 활동을 유지할 수 있습니다.
- **상세한 X 아티클 게시**: 저널리스트, 블로거, 분석가는 풍부한 미디어와 함께 Markdown에서 직접 장문의 아티클을 게시하여 X에서 청중과 심도 있는 콘텐츠를 공유할 수 있습니다.
- **효율적인 인용 및 댓글**: 사용자는 신속하게 트윗을 인용하고 자신의 의견을 추가하여 X에서 트렌드 주제 또는 다른 사용자의 콘텐츠에 참여하는 과정을 간소화할 수 있습니다.

## Result preview

게시 준비가 된 관련 이미지와 해시태그가 포함된 AI 생산성 도구에 대한 트위터 게시물을 확인하세요.

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-1.jpg)

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-2.jpg)

![the demo of Post to X Agent Skill](https://file.nanoskill.ai/post-to-x-demo-3.jpg)

## Result walkthrough

### 1단계: 설치

스킬을 에이전트에 추가하세요.

![a simple demonstration of the first step in using Post to X](https://file.nanoskill.ai/post-to-x-step-1.jpg)

### 2단계:게시 아이디어 공유

트윗, 이미지, 동영상 또는 기사 아이디어를 제공하고 X에 게시할 수 있도록 스킬에 준비하도록 요청하세요.

![a simple demonstration of the second step in using Post to X](https://file.nanoskill.ai/post-to-x-step-2.jpg)

### 3단계:게시 전 검토

생성된 게시물을 검토하고 게시하기 전에 확인하세요.

![a simple demonstration of the first step in using Post to X](https://file.nanoskill.ai/post-to-x-step-3.jpg)

## Skill definition

# X(트위터)에 게시

실제 Chrome 브라우저를 통해 텍스트, 이미지, 비디오 및 장문 기사를 X에 게시합니다.

Codex에서는 다음 브라우저 경로를 혼동하지 마십시오:
- **Codex Chrome 플러그인 / `@chrome` / Chrome 확장 프로그램**: 번들된 `chrome:Chrome` 기술과 Node REPL 브라우저 클라이언트를 사용합니다. 사용자가 "Codex Chrome 플러그인", "Codex 내장 Chrome 플러그인", `@chrome` 또는 유사한 말을 할 때마다 필요합니다.
- **Chrome Computer Use**: 사용자가 Computer Use를 요청하거나 Chrome 플러그인 선호도가 명시되지 않고 Computer Use를 사용할 수 있는 경우에만 표시되는 Google Chrome UI에 대해 `mcp__computer_use__.*`를 사용합니다.
- **CDP 스크립트 모드**: 선택한 모드를 사용할 수 없거나 사용자가 명시적으로 CDP/스크립트 모드를 요청할 때만 대체 수단으로 사용합니다.

## 스크립트 디렉터리

**중요**: 모든 스크립트는 이 기술의 `scripts/` 하위 디렉터리에 있습니다.

**에이전트 실행 지침**:
1. 이 SKILL.md 파일의 디렉터리 경로를 `{baseDir}`로 확인합니다.
2. 스크립트 경로 = `{baseDir}/scripts/<script-name>.ts`
3. 이 문서의 모든 `{baseDir}`을 실제 경로로 바꿉니다.
4. `${BUN_X}` 런타임 해결: `bun`이 설치된 경우 → `bun`; `npx`를 사용할 수 있는 경우 → `npx -y bun`; 그렇지 않으면 bun 설치를 제안합니다.

**스크립트 참조**:
| 스크립트 | 목적 |
|--------|------|
| `scripts/x-browser.ts` | 일반 게시물 (텍스트 + 이미지), CDP 대체 수단 |
| `scripts/x-video.ts` | 비디오 게시물 (텍스트 + 비디오), CDP 대체 수단 |
| `scripts/x-quote.ts` | 댓글 포함 인용 트윗, CDP 대체 수단 |
| `scripts/x-article.ts` | 장문 기사 게시 (Markdown), CDP 대체 수단 |
| `scripts/md-to-html.ts` | Markdown → HTML 변환 |
| `scripts/copy-to-clipboard.ts` | 콘텐츠를 클립보드에 복사 |
| `scripts/paste-from-clipboard.ts` | 실제 붙여넣기 키 입력 전송 |
| `scripts/check-paste-permissions.ts` | 환경 및 권한 확인 |

## 실행 모드 선택 (필수)

X와 상호 작용하기 전에 정확히 하나의 모드를 선택하십시오:

1. 사용자가 Codex Chrome 플러그인, `@chrome`, Chrome 확장 프로그램 또는 "Codex 내장 Chrome 플러그인"을 명시적으로 요청하는 경우 **Codex Chrome Plugin Mode**를 사용합니다. 먼저 Computer Use를 호출하지 마십시오.
2. 사용자가 Chrome Computer Use를 명시적으로 요청하는 경우 **Chrome Computer Use Mode**를 사용합니다. 사용자에게 알리고 승인을 받지 않은 상태에서 CDP, Playwright, 인앱 브라우저 또는 Chrome 플러그인으로 대체하지 마십시오.
3. 사용자가 CDP/스크립트 모드를 명시적으로 요청하는 경우 **CDP Script Mode**를 사용합니다.
4. 그렇지 않으면 **Chrome Computer Use Mode**를 선호합니다. 로컬 콘텐츠 이미지가 포함된 Markdown **X 기사**의 경우, 검증된 X 편집기 흐름을 사용합니다: 각 본문 이미지를 해당 자리 표시자에 툴바에서 (`삽입` -> `미디어` -> 대화 상자 아이콘 버튼 `사진 또는 비디오 추가`) 삽입한 다음 자리 표시자 텍스트를 삭제합니다. 선택한 브라우저 제어 모드를 사용할 수 없거나 UI 업로드/선택 흐름이 신뢰할 수 없는 경우에만 CDP Script Mode를 사용합니다.

X 게시 워크플로에 인앱 브라우저를 사용하지 마십시오.

## Codex Chrome Plugin Mode

사용자가 Codex Chrome 플러그인, `@chrome` 또는 Chrome 확장 프로그램 경로를 요청할 때마다 이 모드를 사용합니다. 이 모드는 번들된 Chrome 플러그인을 통해 사용자의 실제 Chrome 프로필과 X 로그인을 사용하며, Computer Use나 CDP를 사용하지 않습니다.

**설정**
1. 브라우저 작업 전에 `chrome:Chrome` 기술을 로드합니다.
2. Node REPL `js` 도구가 보이지 않으면 `tool_search`를 사용하여 `node_repl js`를 검색합니다.
3. Chrome 기술에서 지정한 대로 Chrome 브라우저 클라이언트를 정확히 초기화한 다음 `browser.user.openTabs()`와 같은 가벼운 호출을 실행하여 확장 프로그램 연결을 확인합니다.
4. 첫 번째 가벼운 호출이 실패하면 2초간 기다렸다가 한 번 재시도합니다. 여전히 실패하면 Chrome 기술의 확장 프로그램 검사 및 복구 단계를 따릅니다. 검사를 통과했지만 통신이 여전히 실패하면 새 Chrome 창을 열기 전에 사용자에게 문의하십시오. 조용히 Computer Use 또는 CDP로 전환하지 마십시오.

**일반 규칙**
- X UI 작업에 Chrome 플러그인의 `browser.tabs.*`, `tab.playwright.*`, `tab.cua.*` 및 파일 선택기 API를 사용합니다.
- Markdown 전처리 및 리치 HTML 클립보드 준비를 위해 셸 명령이 허용됩니다. X 기사 본문 이미지의 경우 이미지 클립보드 붙여넣기에 의존하지 말고 편집기의 `삽입` -> `미디어` 업로드 흐름을 사용하십시오.
- 파일 업로드가 `Not allowed`와 함께 실패하면 사용자에게 다음을 알립니다: `파일 업로드를 활성화하려면 Chrome에서 chrome://extensions로 이동하여 Codex 확장 프로그램 아래의 세부정보를 클릭하고 "파일 URL에 대한 액세스 허용"을 활성화하세요. 자세한 내용은 https://developers.openai.com/codex/app/chrome-extension#upload-files를 참조하십시오.`
- Chrome 플러그인이 `native pipe is closed`를 보고하면 2초 후에 가벼운 브라우저 호출을 한 번 재시도한 다음 Chrome 기술 상태 검사를 실행합니다. Chrome이 실행 중이고 확장 프로그램이 활성화되어 있으며 네이티브 호스트 매니페스트가 올바른 경우 새 Chrome 창을 열고 다시 시도할 수 있도록 허가를 요청하십시오. 손상된 파이프를 통해 계속해서 브라우저 작업을 보내지 마십시오.
- 현재 대화에서 사용자의 명시적인 최종 확인 없이 `게시`, `게시` 또는 외부에 표시되는 제출 작업을 클릭하지 마십시오.

**X 기사**
1. Markdown을 변환하고 이미지 맵을 유지합니다:
   ```bash
   ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
   ```
2. `title`, `coverImage`, 및 `contentImages`(`placeholder` → `localPath`)에 대한 JSON 출력을 읽습니다.
3. `https://x.com/compose/articles`에서 기사 초안을 열거나 생성합니다.
4. Chrome 플러그인 파일 선택기 흐름을 사용하여 커버를 업로드합니다. 확장 프로그램 권한으로 인해 업로드가 차단되면 중지하고 위의 정확한 권한 수정 사항을 보고합니다.
5. 제목을 채운 다음 리치 HTML을 복사합니다:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
   ```
6. Chrome 플러그인을 통해 실제 붙여넣기 키 입력을 사용하여 기사 본문에 붙여넣습니다. macOS에서는 `Meta+V`를 사용합니다.
7. 편집기 텍스트에 기사 본문과 `XIMGPH_` 자리 표시자가 포함되어 있는지 확인합니다. 셸 클립보드 쓰기 후 시스템 클립보드 증거로 `tab.clipboard.readText()`에 의존하지 마십시오. macOS에서는 필요한 경우 `pbpaste`로 확인하십시오.
8. 각 `contentImages` 항목에 대해 자리 표시자 순서대로:
   - 보이는 자리 표시자 텍스트(`XIMGPH_N`)를 찾아 클릭하여 해당 위치에 캐럿을 배치합니다.
   - 툴바 메뉴 `삽입` -> `미디어`를 엽니다.
   - 모달에서 `aria-label="사진 또는 비디오 추가"`가 있는 아이콘 버튼을 클릭합니다. 텍스트/드롭존 또는 숨겨진 파일 입력은 클릭하지 마십시오.
   - 파일 선택기를 사용하여 해당 이미지의 `localPath`를 업로드합니다.
   - 이미지가 나타난 후 `XIMGPH_N`이 그 위에 남아 있으면 해당 자리 표시자를 정확히 선택하고 먼저 `Delete` 키를 누릅니다. `Delete`가 실패하고 선택한 텍스트가 정확히 자리 표시자임이 확인된 경우에만 `Backspace`를 사용하십시오.
   - 해당 `XIMGPH_N`의 자리 표시자 수가 `0`인지 확인합니다.
9. 미리보기를 열고 제목, 커버, 본문, 링크 및 이미지를 확인합니다.
10. `게시`를 클릭하기 전에 명시적인 확인을 요청합니다.

## 환경설정 (EXTEND.md)

우선 순위에 따라 EXTEND.md를 확인합니다. 처음 발견된 파일이 우선합니다:

| 우선순위 | 경로 | 범위 |
|----------|------|------|
| 1 | `.baoyu-skills/baoyu-post-to-x/EXTEND.md` | 프로젝트 |
| 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-post-to-x/EXTEND.md` | XDG |
| 3 | `$HOME/.baoyu-skills/baoyu-post-to-x/EXTEND.md` | 사용자 홈 |

발견되지 않으면 기본값을 사용합니다.

**EXTEND.md 지원**: 기본 Chrome 프로필

## 사전 요구 사항

- Google Chrome 또는 Chromium
- `bun` 런타임
- 최초 실행 시: 수동으로 X에 로그인 (세션 저장)

## 사전 점검 (선택 사항)

처음 사용하기 전에 환경 점검 실행을 제안합니다. 사용자가 원하면 건너뛸 수 있습니다.

```bash
${BUN_X} {baseDir}/scripts/check-paste-permissions.ts
```

점검 항목: Chrome, 프로필 격리, Bun, 접근성, 클립보드, 붙여넣기 키 입력, Chrome 충돌.

**점검이 실패하면** 항목별 수정 지침을 제공합니다:

| 점검 항목 | 수정 방법 |
|-----------|----------|
| Chrome | Chrome을 설치하거나 `X_BROWSER_CHROME_PATH` 환경 변수 설정 |
| 프로필 디렉터리 | `baoyu-skills/chrome-profile`의 공유 프로필 (CLAUDE.md Chrome 프로필 섹션 참조) |
| Bun 런타임 | `brew install oven-sh/bun/bun` (macOS) 또는 `npm install -g bun` |
| 접근성 (macOS) | 시스템 설정 → 개인정보 보호 및 보안 → 손쉬운 사용 → 터미널 앱 활성화 |
| 클립보드 복사 | Swift/AppKit 사용 가능 확인 (macOS Xcode CLI 도구: `xcode-select --install`) |
| 붙여넣기 키 입력 (macOS) | 위의 접근성 수정과 동일 |
| 붙여넣기 키 입력 (Linux) | `xdotool` (X11) 또는 `ydotool` (Wayland) 설치 |

## 참조

- **일반 게시물**: 수동 워크플로, 문제 해결 및 기술 세부 정보는 `references/regular-posts.md`를 참조하십시오
- **X 기사**: 장문 기사 게시 가이드는 `references/articles.md`를 참조하십시오

---

## Chrome Computer Use Mode

사용자가 Chrome Computer Use를 명시적으로 요청하거나 Chrome 플러그인 선호도가 명시되지 않고 Codex가 Computer Use로 `Google Chrome`을 제어할 수 있는 경우 이 모드를 사용합니다. 이 모드는 사용자의 기존 Chrome 창, 쿠키, 로그인, 확장 프로그램 및 X 세션을 사용합니다.

**일반 규칙**:
- Chrome을 제어하는 각 어시스턴트 턴을 시작할 때 `Google Chrome`에 대해 `get_app_state`를 호출하십시오.
- 사용 가능한 경우 요소 인덱스 작업을 선호합니다. 좌표는 편집기 텍스트 선택 또는 드래그 선택에만 사용하십시오.
- 사용자가 모드 변경을 승인하지 않는 한 이 모드에서 X UI 작업에 인앱 브라우저, Chrome 플러그인, Playwright 또는 CDP를 사용하지 마십시오.
- 현재 대화에서 사용자의 명시적인 최종 확인 없이 `게시`, `게시` 또는 외부에 표시되는 제출 작업을 클릭하지 마십시오.

**일반 게시물**:
1. Chrome에서 `https://x.com/compose/post`를 열거나 이동합니다.
2. Computer Use를 사용하여 작성기에 게시물 텍스트를 입력합니다.
3. 각 이미지에 대해 실행:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts image /absolute/path/to/image.png
   ```
4. Computer Use로 붙여넣고 (macOS에서는 `super+v`, Windows/Linux에서는 `control+v`), X가 미디어 업로드를 마칠 때까지 기다립니다.
5. `게시`를 클릭하기 전에 확인을 요청합니다.

**비디오 게시물**:
1. Chrome에서 `https://x.com/compose/post`를 열거나 이동합니다.
2. 작성기에 게시물 텍스트를 입력합니다.
3. 보이는 미디어 업로드/파일 선택기 UI를 사용하여 비디오를 첨부합니다.
4. 업로드 및 처리가 완료될 때까지 기다립니다.
5. `게시`를 클릭하기 전에 확인을 요청합니다.

**인용 트윗**:
1. Chrome에서 트윗 URL을 엽니다.
2. 보이는 인용/재게시 UI를 사용하여 인용을 선택합니다.
3. 댓글을 입력합니다.
4. `게시`를 클릭하기 전에 확인을 요청합니다.

**X 기사**:
1. Markdown을 변환하고 이미지 맵을 유지합니다:
   ```bash
   ${BUN_X} {baseDir}/scripts/md-to-html.ts article.md --save-html /tmp/x-article-body.html > /tmp/x-article.json
   ```
2. `title`, `coverImage`, 및 `contentImages`(`placeholder` → `localPath`)에 대한 JSON 출력을 읽습니다.
3. Chrome에서 `https://x.com/compose/articles`를 열고 초안을 생성하거나 열고 커버가 있으면 업로드하고 제목을 채웁니다.
4. 리치 HTML을 클립보드에 복사합니다:
   ```bash
   ${BUN_X} {baseDir}/scripts/copy-to-clipboard.ts html --file /tmp/x-article-body.html
   ```
5. Computer Use로 기사 본문에 붙여넣습니다.
6. 각 `contentImages` 항목에 대해 자리 표시자 순서대로:
   - `XIMGPH_3`과 같은 정확히 보이는 자리 표시자 텍스트를 찾아 클릭하여 삽입 지점을 설정합니다.
   - 툴바 `삽입` 드롭다운을 열고 `미디어`를 선택한 다음 모달의 `사진 또는 비디오 추가` 레이블이 있는 아이콘 버튼을 클릭합니다.
   - 기본 파일 선택기를 사용하여 이미지의 `localPath`를 선택합니다.
   - 이미지 블록이 나타나고 업로드 활동이 완료될 때까지 기다립니다.
   - 삽입된 이미지 위에 자리 표시자가 남아 있으면 해당 자리 표시자 텍스트를 정확히 다시 선택하고 먼저 `Delete` 키를 누릅니다. `Delete`가 실패하고 선택한 텍스트가 정확히 자리 표시자임이 확인된 경우에만 `Backspace`를 사용하십시오.
7. `XIMGPH_` 자리 표시자가 남아 있지 않고 예상 이미지가 나타나는지 확인합니다.
8. 미리보기를 열고 제목, 커버, 본문, 링크 및 이미지를 확인합니다.
9. `게시`를 클릭하기 전에 명시적인 확인을 요청합니다.

Computer Use 선택, 툴바 업로드 또는 파일 선택기 제어가 신뢰할 수 없게 되면 조용히 Chrome 플러그인이나 CDP로 전환하는 대신 중지하고 차단 요소를 보고하십시오.

---

## CDP Script Mode (대체 수단)

선택한 브라우저 제어 모드를 사용할 수 없거나 신뢰할 수 없거나 명시적으로 요청되지 않은 경우에만 아래 스크립트 섹션을 사용하십시오. 이 스크립트는 CDP를 통해 실제 Chrome 인스턴스를 시작하거나 재사용하고 검토를 위해 브라우저를 열어 둡니다.

사용자가 Codex Chrome 플러그인 또는 Chrome Computer Use를 명시적으로 요구하는 경우 차단 요소를 설명한 후 사용자가 대체 수단을 승인하지 않는 한 CDP Script Mode를 사용하지 마십시오.

---

## 게시물 유형 선택

사용자가 게시물 유형을 명시적으로 지정하지 않는 한:
- **플레인 텍스트** + 10,000자 이내 → **일반 게시물** (프리미엄 회원은 최대 10,000자 지원, 비프리미엄: 280자)
- **Markdown 파일** (.md) → **X 기사**

## 일반 게시물

```bash
${BUN_X} {baseDir}/scripts/x-browser.ts "Hello!" --image ./photo.png
```

**매개변수**:
| 매개변수 | 설명 |
|-----------|------|
| `<text>` | 게시물 콘텐츠 (위치 인수) |
| `--image <path>` | 이미지 파일 (반복 가능, 최대 4개) |
| `--profile <dir>` | 사용자 정의 Chrome 프로필 |

**참고**: 스크립트는 콘텐츠가 채워진 상태로 브라우저를 엽니다. 사용자가 검토하고 수동으로 게시합니다.

**Codex 모드 참고**: 사용자가 Codex Chrome 플러그인을 명시적으로 요청한 경우 **Codex Chrome Plugin Mode**를 사용합니다. 그렇지 않고 Chrome Computer Use가 활성화된 경우 `x-browser.ts`를 실행하는 대신 **Chrome Computer Use Mode**를 사용합니다.

---

## 비디오 게시물

텍스트 + 비디오 파일.

```bash
${BUN_X} {baseDir}/scripts/x-video.ts "Check this out!" --video ./clip.mp4
```

**매개변수**:
| 매개변수 | 설명 |
|-----------|------|
| `<text>` | 게시물 콘텐츠 (위치 인수) |
| `--video <path>` | 비디오 파일 (MP4, MOV, WebM) |
| `--profile <dir>` | 사용자 정의 Chrome 프로필 |

**참고**: 스크립트는 콘텐츠가 채워진 상태로 브라우저를 엽니다. 사용자가 검토하고 수동으로 게시합니다.

**Codex 모드 참고**: 사용자가 Codex Chrome 플러그인을 명시적으로 요청한 경우 **Codex Chrome Plugin Mode**를 사용합니다. 그렇지 않고 Chrome Computer Use가 활성화된 경우 `x-video.ts`를 실행하는 대신 **Chrome Computer Use Mode**를 사용합니다.

**제한**: 일반 140초 최대, 프리미엄 60분. 처리: 30-60초.

---

## 인용 트윗

댓글과 함께 기존 트윗을 인용합니다.

```bash
${BUN_X} {baseDir}/scripts/x-quote.ts https://x.com/user/status/123 "Great insight!"
```

**매개변수**:
| 매개변수 | 설명 |
|-----------|------|
| `<tweet-url>` | 인용할 URL (위치 인수) |
| `<comment>` | 댓글 텍스트 (위치 인수, 선택 사항) |
| `--profile <dir>` | 사용자 정의 Chrome 프로필 |

**참고**: 스크립트는 콘텐츠가 채워진 상태로 브라우저를 엽니다. 사용자가 검토하고 수동으로 게시합니다.

**Codex 모드 참고**: 사용자가 Codex Chrome 플러그인을 명시적으로 요청한 경우 **Codex Chrome Plugin Mode**를 사용합니다. 그렇지 않고 Chrome Computer Use가 활성화된 경우 `x-quote.ts`를 실행하는 대신 **Chrome Computer Use Mode**를 사용합니다.

---

## X 기사

장문 Markdown 기사 (X Premium 필요).

```bash
${BUN_X} {baseDir}/scripts/x-article.ts article.md
${BUN_X} {baseDir}/scripts/x-article.ts article.md --cover ./cover.jpg
```

**매개변수**:
| 매개변수 | 설명 |
|-----------|------|
| `<markdown>` | Markdown 파일 (위치 인수) |
| `--cover <path>` | 커버 이미지 |
| `--title <text>` | 제목 재정의 |

**프론트매터**: YAML 프론트매터에서 `title`, `cover_image` 지원.

**Codex 모드 참고**: 사용자가 Codex Chrome 플러그인을 명시적으로 요청한 경우 위의 **Codex Chrome Plugin Mode**를 따릅니다. 사용자가 Chrome Computer Use를 명시적으로 요청한 경우 **Chrome Computer Use Mode**를 따릅니다. 그렇지 않으면 Chrome Computer Use를 선호합니다. 로컬 콘텐츠 이미지가 포함된 Markdown 기사의 경우 **CDP Script Mode**에서 `x-article.ts`로 대체하기 전에 툴바 `삽입` -> `미디어` 이미지 업로드 워크플로를 사용합니다.

**CDP 대체 참고**: 스크립트는 기사가 채워진 상태로 브라우저를 엽니다. `--submit`을 사용하지 않는 한 사용자가 검토하고 수동으로 게시합니다.

**게시 안전**: 사용자가 최종 공개 게시 작업을 명시적으로 확인하지 않는 한 `--submit`을 사용하거나 `게시`를 클릭하지 마십시오.

**게시물 구성 확인**: 스크립트는 모든 이미지가 삽입된 후 자동으로 확인합니다:
- 편집기 콘텐츠에 남아 있는 `XIMGPH_` 자리 표시자
- 예상 이미지 수 대 실제 이미지 수

확인에 실패하면 (출력에 경고) 게시하기 전에 사용자에게 특정 문제를 알립니다.

---

## 문제 해결

### Chrome 디버그 포트가 준비되지 않음

CDP 대체 수단만 해당: 스크립트가 `Chrome debug port not ready` 또는 `Unable to connect`로 실패하면 기존 Chrome CDP 인스턴스를 먼저 종료한 다음 재시도합니다:

```bash
pkill -f "Chrome.*remote-debugging-port" 2>/dev/null; pkill -f "Chromium.*remote-debugging-port" 2>/dev/null; sleep 2
```

**중요**: 이 작업은 자동으로 수행되어야 합니다. 이 오류가 발생하면 사용자에게 묻지 않고 Chrome CDP 인스턴스를 종료하고 명령을 재시도합니다.

## 참고 사항

- 최초 실행: 수동 로그인 필요 (세션 유지)
- Codex Chrome Plugin Mode 및 Chrome Computer Use Mode에서는 사용자의 기존 Chrome 세션을 사용하고 별도의 CDP 프로필을 시작하지 마십시오
- CDP 스크립트는 기본적으로 브라우저에 콘텐츠만 채웁니다. 사용자가 명시적으로 `--submit`을 사용하지 않는 한 검토하고 수동으로 게시해야 합니다
- 크로스 플랫폼: macOS, Linux, Windows

## 확장 지원

EXTEND.md를 통한 사용자 정의 구성. 경로 및 지원 옵션은 **환경설정** 섹션을 참조하십시오.

## FAQ

### 이 스킬을 사용하여 X에 게시할 수 있는 콘텐츠 유형은 무엇인가요?

일반 텍스트 업데이트, 이미지, 비디오, 그리고 Markdown 파일로 작성한 장문의 X 아티클(이전의 Twitter 아티클)을 게시할 수 있습니다. 다양한 미디어 유형을 지원하여 포괄적인 콘텐츠 공유가 가능합니다.

### 이 스킬은 X 아티클을 지원하며, 요구 사항은 무엇인가요?

네, Markdown에서 X 아티클을 지원합니다. 커버 이미지와 콘텐츠 이미지를 포함할 수 있습니다. X 아티클을 게시하려면 일반적으로 X Premium 구독이 필요합니다.

### 사용 가능한 다양한 브라우저 제어 모드는 무엇인가요?

이 스킬은 세 가지 주요 모드를 제공합니다: Codex Chrome 플러그인 모드, Chrome Computer Use 모드, CDP 스크립트 모드. 선택은 사용 환경과 특정 요구 사항에 따라 달라지며, Computer Use 모드가 기본 권장 모드입니다.

### 'Post to X' 스킬은 어떻게 설치하나요?

명령어를 사용하여 스킬을 설치할 수 있습니다: \`npx skills add https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-post-to-x\`. \`bun\` 또는 \`npx\`가 설치되어 있는지 확인하세요.

### X에 게시하기 전에 수동 검토가 필요합니까?

기본적으로, 스킬은 브라우저에 콘텐츠를 채우며, 수동으로 검토하고 게시해야 합니다. CDP 스크립트의 \`--submit\` 옵션은 최종 공개 게시를 위해 사용자 확인이 명시적으로 있는 경우에만 사용해야 합니다.

### 'Chrome debug port not ready' 오류가 발생하면 어떻게 해야 하나요?

CDP 폴백 모드에서 이 오류가 발생하면, 기존 Chrome CDP 인스턴스를 종료하고 명령을 다시 시도해야 합니다. 스킬은 이를 자동으로 시도하도록 설계되었습니다.
