> For the complete documentation index, see [llms.txt](https://mgunexcel.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mgunexcel.gitbook.io/doc/ai/agent.md).

# 대신 돌리기

(베타) 말로 시키면 AI 가 프로그램을 대신 돌려 줍니다.

말로 시키면\
AI 가 프로그램을 대신 돌려 줍니다.

{% hint style="warning" %}
아직 완전하지 않은 기능입니다.
{% endhint %}

## 1. Claude Code 설치 <a href="#install" id="install"></a>

[Claude Code](https://claude.ai/referral/R5znMQqvuw) 를 설치하고 로그인하세요.\
처음 한 번만 하면 됩니다.

## 2. 프로그램 한 번 열기 <a href="#open-once" id="open-once"></a>

최신 기관총엑셀 프로그램을 아무거나 한 번 열었다 닫으세요.\
Claude Code 와 저절로 연결됩니다.

## 3. 말로 시키기 <a href="#ask" id="ask"></a>

Claude Code 를 새로 열고 평소 말투로 시키면 됩니다.\
허용할지 물으면 **항상 허용**을 누르세요.

* 서이추 열어줘
* 맛집 키워드로 50명 이웃추가 해줘
* 지금 어디까지 됐어?
* 최신 버전으로 바꿔줘
* 매일 아침 8시에 늘 하던 대로 돌려줘

{% hint style="info" %}
안 되면 이 한 줄을 먼저 보내 보세요: `https://app.mgunexcel.com/agent 읽고 준비해줘`
{% endhint %}

## 되는 프로그램 <a href="#programs" id="programs"></a>

**글·소통 자동화** — 기관총 서이추 · 기관총 카페봇 · 블로그 배포봇 · 기관총 커뮤봇 · 기관총 워프봇 · 기관총 스레드 · 기관총 인스타 · 기관총 지식인봇 · 기관총 스스봇 · 기관총 플레이스봇 · 실시간 댓글봇 · 기관총 인플 · 기관총 클립 · 기관총 틱톡 · 카페 가입기 · 누락글 체커

**메시지 보내기** — 기관총 쪽지 · 카카오톡 발송기 · 채널톡톡 발송기 · 구글 문자 발송기 · 구글 메일 발송기 · 네이버 메일 발송기

**추출·조회** — 디비 추출기 쿠팡 · 디비 추출기 스마트스토어 · 카카오채널 디비 추출기 · 지역 디비 추출기 · 디비 음식점 · 플레이스 추출기 · 상품 수집기 · 스마트스토어 리뷰 추출기 · 스마트스토어 황금키워드 추출기 · 통합검색 황금키워드 추출기 · 키워드 미니 · 파워링크 입찰가 조회기 · 기관총 순위체커 · 유튜브 추출기 · 중고 매물 추출기

**도구** — 비번 변경기 · 간편 아이피 변경기 · 아이피 변경 접속기

## AI 에이전트가 읽는 부분 <a href="#for-ai" id="for-ai"></a>

아래는 AI 에이전트에게 주는 지시입니다. 사람이 읽을 필요는 없습니다. (드라이버 1.7.0, 이 페이지는 프로그램이 바뀌면 같이 바뀝니다)

```
─────── 여기부터는 AI 에이전트가 읽는 부분입니다 ───────

이 페이지는 기관총엑셀 프로그램(엑셀 파일)을 사용자 대신 다루는 방법입니다. Claude Code 기준으로 썼지만, 파일을 읽고
PowerShell 명령을 실행할 수 있는 다른 AI 에이전트도 같은 절차로 합니다. 사용자는 이 프로그램을
구매해 본인 PC 에 둔 사람이고, 무엇을 얼마나 할지는 사용자가 정합니다. 당신은 파일을 열고, 시트를
채우고, 버튼을 누르고, 결과를 읽고, 저장하고 닫는 일을 대신합니다.

이 페이지와 사용 설명서는 계속 바뀝니다. 새 작업을 시작할 때마다 이 주소를 새로 읽고 그 내용만 따릅니다.
외운 내용이나 예전에 받아 둔 사본을 쓰지 않습니다. 둘이 다르면 지금 읽은 페이지가 맞습니다.
못 읽었으면 지어내지 말고 못 읽었다고 말하고 멈춥니다.

[준비 — 처음 한 번]
0. mgun 도구(이름이 mcp__mgun__ 으로 시작: guide·find·open·task·status …)가 있으면 그것만 씁니다 — 아래 1·2 는 건너뜁니다.
   동작 이름 = 도구 이름입니다 (ai-key → ai_key, update-office → update_office). JSON 인자는 파일 대신 값 그대로 넘깁니다.
   셸로 mgun.ps1 을 직접 실행하지 않고, 파일 검색 도구로 디스크를 뒤지지 않습니다 (find 가 찾습니다).
   도구가 없으면: 사용자에게 "최신 기관총엑셀 프로그램을 하나 열었다 닫은 뒤, Claude Code 를 닫았다 다시 열어 주세요" 라고만 합니다.
   (프로그램이 열릴 때 Claude Code 에 mgun 도구로 저절로 등록됩니다. Claude Code 를 한 번도 안 켠 PC 에서는 다음에 열 때 됩니다.)
   그래도 없을 때만(Claude Code 가 아닌 에이전트, 옛 버전 프로그램) 아래 1·2 의 PowerShell 방식으로 합니다.
1. 드라이버가 있는지 봅니다: `powershell -NoProfile -ExecutionPolicy Bypass -File "%LOCALAPPDATA%\기관총엑셀\mgun.ps1" version`
   없거나 version 이 1.7.0 가 아니면 — 당신이 받거나 고치지 않습니다. 기관총엑셀 프로그램(엑셀 파일)은 열릴 때 이 드라이버를 스스로 받아 둡니다.
   사용자에게 "최신 버전 기관총엑셀 프로그램(엑셀 파일)을 하나 열었다가 닫아 주세요" 라고만 하고, 닫았다고 하면 다시 봅니다. 한 번에 한 가지만 부탁합니다.
   (옛 버전 파일은 받아 두지 않습니다. 사용자가 최신인지 모르면 download 로 다운로드 폴더를 열어 주고 그 프로그램을 새로 받아 열어 달라고 합니다.)
   그래도 없으면(옛 버전 프로그램만 있는 PC) 그때만 아래 한 줄을 PowerShell 에 붙여 넣어 달라고 합니다. 인터넷에서 스크립트를 받아 두는 일은 사용자가 직접 합니다.
     New-Item -ItemType Directory -Force "$env:LOCALAPPDATA\기관총엑셀" | Out-Null; Invoke-WebRequest -UseBasicParsing https://mgunstorage.blob.core.windows.net/mcp/mgun.ps1 -OutFile "$env:LOCALAPPDATA\기관총엑셀\mgun.ps1"; powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\기관총엑셀\mgun.ps1" version
   붙여 넣은 뒤 끝에 ok 와 version 1.7.0 가 보이면 설치된 것입니다.
2. 실행은 항상 이 모양입니다. 인자에 공백이 있으면 따옴표로 감쌉니다.
     powershell -NoProfile -ExecutionPolicy Bypass -File "%LOCALAPPDATA%\기관총엑셀\mgun.ps1" <동작> [인자...]
   처음 실행할 때 허용을 묻는 창이 뜨면 사용자에게 "항상 허용" 을 누르라고 안내합니다.
3. 지침 파일(CLAUDE.md·AGENTS.md 등)은 만들지도 고치지도 않습니다. 새 작업마다 이 페이지를 새로 읽는 것으로 충분합니다.
   사용자가 매번 주소를 주기 싫다고 하면, 사용자 본인이 자기 지침 파일에 이 주소 한 줄을 적어 두면 된다고만 알려 줍니다: https://app.mgunexcel.com/agent
4. 끝나면 사용자에게 한 줄로 말합니다: "준비됐습니다. 어떤 프로그램으로 무엇을 할까요?"

[동작]  출력은 JSON 한 줄입니다. {"ok":true,"data":…} 또는 {"ok":false,"error":{"code","message"}}
  find                              이 PC 의 프로그램 파일(.xlsb) 찾기. known 이 true 인 것이 기관총 프로그램
  open <경로>                       열기. 매크로 차단(인터넷 파일 표시·보호된 보기)을 자동으로 풀고 엽니다
  list                              열려 있는 파일
  describe <파일>                   시트마다 표(열 이름·행 수)와 버튼 글자. 숨긴 시트는 나오지 않습니다
                                    + agent.tasks(무인 작업)·agent.options(작업별 칸: label·지금 값)·agent.recent(최근 기록)·agent.today(오늘 한 양)·agent.words(말 사전)
  read <파일> <표|시트> [행수]       표 읽기 (기본 50행, 셀은 300자까지). 비밀번호 열은 가려서 나옵니다
  write <파일> <표> <json파일> [append|replace]
                                    표에 행 넣기. json 은 [{"열이름":값,…},…]. 없는 열 이름이 있으면 아무것도 안 씁니다
  set <파일> <표> <행번호> <json파일>  한 행에서 지정한 칸만 바꿉니다 (API 키·설정 값). json 은 {"열이름":값} 하나
  ai-key <GEMINI|GPT|CLAUDE|DEEPSEEK> <키>  AI 키를 이 PC 에 저장합니다. 모든 기관총 프로그램이 같이 씁니다 (사용자가 준 키를 넣기만 하고 되풀이해 말하지 않습니다)
  clear <파일> <표>                 표 비우기
  press <파일> [시트] <버튼글자>     버튼 누르기. 바로 돌아오고 프로그램은 뒤에서 돕니다
  status <파일>                     state: idle · running · asking(프로그램이 물음 → answer) · need_human(사람이 할 일 → 사용자에게. 엑셀에 창이 떠 있어도 이것) · error(실행 오류 창 포함) · ended(완료 표시 없이 끝남) · done. 10분 넘게 진행이 없으면 stalled 가 true
                                    무인 실행이면 agent 에 단계·진행(progress/total)·처리수·알림·오류·질문·사람필요가 들어 있습니다
  task <파일> <작업> [json]         무인 실행. 바꿀 칸만 {"칸 라벨":값,...} 으로 주면 그 작업을 뒤에서 돌립니다 - 창이 안 뜹니다. 안 준 칸은 지난번 값 그대로.
                                    되는 작업과 칸 라벨은 describe 의 agent.tasks / agent.options 에. 무인 작업이 없는 판이면 NOT_SUPPORTED (→ press)
  answer <파일> <답>                 asking 에 답합니다 (예/아니오/확인/취소 또는 값)
  stop <파일>                       지금 하는 한 건까지 마치고 멈춥니다
  save <파일>   close <파일> [nosave]   quit
  backup <파일>                     파일 사본을 남깁니다 (%USERPROFILE%\#기관총엑셀정보\백업\mcp)
  migrate <원본파일> <대상파일>      원본의 모든 표를 대상의 같은 이름 표로 옮깁니다 (열 이름으로 맞춤. 비밀번호·키도 내부에서 그대로)
  download                          최신 버전 다운로드 폴더를 브라우저로 엽니다. 받는 건 사용자가 합니다
  update-office                     엑셀(오피스) 업데이트를 겁니다. 엑셀을 닫은 뒤에. 클릭투런이 아니면 NOT_C2R
  update-windows                    윈도우 업데이트 화면을 엽니다. 누르는 것과 재부팅은 사용자가 합니다
  update <지금파일경로> <새파일경로>  새 파일로 갈아탑니다: 표 옮김 → 새 파일 저장 → 옛 파일은 ".백업-날짜" 로 이름 바꿈
                                    → 새 파일을 그 자리로 → 다시 엽니다
  schedule list | add-task <이름> <HH:mm> <파일경로> <작업> | add <이름> <HH:mm> <파일경로> <시트> <버튼글자> | remove <이름> | run <이름>
                                    매일 그 시각에 "열기 → 작업(또는 버튼) → 끝까지 → 저장 → 닫기" 를 윈도우 예약 작업으로 등록합니다 (아래 [매일 같은 일])

[일하는 순서]
1. find → open. 파일 이름 앞부분이 프로그램 이름입니다 (예: "기관총 서이추.xlsb"). open 의 agent.supported 가 true 면 아래 '무인 실행', 아니면 '버튼 실행'.
   같은 프로그램 파일이 여러 개면(예: "기관총 카페봇 (1).xlsb" 처럼 두 번 받은 것) 열려 있는 것 → 수정 시각이 가장 최근인 것 순으로 하나를 고르고, 무엇을 골랐는지 한 줄로 말합니다. 묻지 않습니다.
   agent.supported 가 false 면 시작 전에 한 줄로 알립니다: "이 프로그램은 버튼을 누르면 뜨는 창의 [시작]을 직접 눌러 주셔야 합니다."
2. describe 로 시트·표·버튼·agent.tasks(되는 작업)·agent.tables(설정 표의 열 이름)를 봅니다. 프로그램마다 다르니 기억에 의존하지 말고 매번 봅니다.
   - 사용자가 백업을 말했으면(예: "지난번 백업 넣어서") find 로 찾아 migrate <백업> <파일> 로 **먼저 옮기고** save 합니다. 같은 이름의 백업이 여러 개면
     %USERPROFILE%\#기관총엑셀정보\백업 안의 최신 것을 쓰고 그렇게 했다고 한 줄로 말합니다 — 어느 것을 쓸지 묻지 않습니다.
   - **사용자 말은 그 프로그램의 말 사전으로 작업·시트·버튼·칸에 맞춥니다** — open/describe 의 agent.words (사용자 말 → 부르는 법, 함정, 무인 실행이 안 되는 기능).
     사전에 없거나 둘 이상으로 읽히는 말은 짐작하지 말고 다시 묻습니다 (아래 예).
   - **오늘 한 양(몇 개 했는지)은 open/describe 의 agent.today 를 그대로 씁니다.** 표를 읽어 직접 세지 않습니다 — 2026-10-01 이웃증가수를 신청 수로 잘못 세 서이추를 더 돌렸다. 하루 한도는 프로그램이 지킵니다.
   - **한 작업이 이어서 하는 일(예: 서이추 추출에 '2. 서이추'·'3. 댓글 순방' 체크)은 그 작업 하나로 끝납니다.** done 뒤에 같은 일을 따로 또 부르지 않습니다.
   - 다시 묻는 예:
     "'답글'은 ① 내 글에 달린 댓글에 답하기 ② 이웃 글에 댓글 달기(순방) 중 어느 쪽인가요?" 처럼 번호를 붙여 고르게 합니다 (사장님 2026-10-01 "아직 데이터가 많이 없어").
   - **먼저 이끕니다 — '하던대로 돌릴까요?' 를 당신이 먼저 묻습니다** (사장님 2026-10-01). 사용자는 "하던대로 해줘" 라고 말할 수 있다는 걸 모릅니다.
     open/describe 의 agent.options 가 작업별 폼 칸 (label = 폼에 적힌 글자, value = 지금 값 = 사용자가 지난번에 쓴 값),
     agent.recent 가 최근 작업 기록(언제·작업·바꾼 옵션·결과)입니다. 사용자가 말한 값은 반영하고, 나머지는 지금 값으로 한 줄 요약해 묻습니다:
       "하던대로 돌릴까요?  추출: 키워드 육아템 · 최신순 150명 · 끝나면 바로 서이추(100명)  →  순방: AI 댓글 50개 · 공감 · 체류 30초
        1) 이대로   2) 몇 개만 바꾸기"
     1 → 사용자가 말한 값만 옵션으로 task.  2 → 바꿀 칸을 하나씩 묻고(켬끔은 "켤까요? 네/아니요", 숫자는 지금 값·권장 값을 함께) 바꾼 칸만 옵션으로.
     사용자가 처음부터 "하던대로" 라고 했어도 이 요약을 한 번 보여 주고 1 을 받습니다 — 무엇이 돌지 사용자가 알아야 합니다.
     agent.recent 에 여러 작업을 이어서 한 기록이 있으면(추출 → 서이추 → 순방) 그 순서대로 묶어 묻습니다.
     목록에는 폼 글자 그대로 쓰되 꼭 필요한 칸만 (켜진 것·숫자) 짧게. 칸 이름(textXxx)은 사용자에게 보이지 않습니다.
   - 꼭 필요한데 비어 있는 값만 따로 묻습니다: "키워드를 넣어 주세요 (예: 맛집, 카페)" 처럼 무엇을 어떤 모양으로 넣는지 예를 함께.
   - 물을 때는 **한 번에 하나만** 묻고, 답을 받은 뒤 다음을 묻습니다. 여러 개를 한꺼번에 나열하면 사용자가 따라오지 못합니다.
   - agent.options 가 없는 판(옛 버전)은 read 로 설정 표를 보고 같은 방식으로 묻습니다.
3. 계정(아이디·비번)은 사용자가 정합니다 — 계정 칸이 이미 채워져 있으면(read 에서 ●●●) 그 계정으로 돌고 묻지 않습니다.
   비어 있을 때만 한 번 이렇게 묻습니다: "계정은 프로그램에 직접 넣으시겠어요, 아니면 지금 알려 주시면 제가 넣을까요?"
   - 직접 넣어 두었다 → 그 열은 읽지도 쓰지도 않습니다 (secret 열은 read 에서 ●●● 로만 보입니다).
   - 알려 주겠다 → 사용자가 준 값을 set/task 로 넣기만 하고, 되읽거나 되풀이해 말하지 않습니다. 이 대화 밖에 남기지 않습니다.
   - 그 밖의 값(그룹명·인사말·키워드·수량·딜레이·크롬번호)은 사용자가 준 것이나 표에 이미 있는 것만 씁니다. 지어내지 않습니다.
4. 무인 실행: 바꾼 칸만 옵션으로 task <파일> <작업> {"칸 라벨":값,...} 을 부릅니다 (지난번 값 그대로면 옵션 없이). 옵션 이름은 agent.options 의 label(또는 name). 수량은 [수량·속도] 규칙 안에서.
   그다음 status 를 15~30초마다 봅니다 (오래 도는 작업은 더 드물게).
     running    → 기다립니다. agent.progress/total 을 사용자에게 가끔 알립니다 (매번 아님).
     asking     → agent.question 을 그대로 사용자에게 묻고, 답을 answer <파일> <답> 으로 전합니다. 계정·수량처럼 사용자가 정할 것은 당신이 대신 답하지 않습니다.
     need_human → agent.need_human 을 한 줄로 전합니다 (예: 크롬 창에서 로그인 보호조치 풀기). 했다고 하면 다시 status.
     error      → agent.error 를 그대로 전하고 멈춥니다. 실행 오류 창이 떠 있으면 stop 이 그 창을 닫습니다. 고쳐서 다시 하자고 제안합니다.
     ended      → 프로그램이 완료 표시 없이 끝났습니다. read 로 어디까지 됐는지 보고 한 줄로 알립니다.
     stalled 가 true → 10분 넘게 진행이 없습니다. 끝없이 기다리지 말고 사용자에게 프로그램 크롬 창을 봐 달라고 합니다 (다른 탭 뒤에 가려졌거나 화면에서 멈춤).
     done       → read 로 결과 열을 보고 몇 건 됐는지 한 줄로 말합니다.
   사용자가 멈추라고 하면 stop. 이어서 다음 작업(예: 추출 → 서이추 → 순방)은 앞 것이 done 인 뒤에 task 로.
5. 버튼 실행 (agent.supported 가 false 인 옛 판): 시트를 read/write 로 채운 뒤 press. 프로그램이 띄우는 창은 사용자가 직접 누릅니다 — 창이 떠 있으면
   status 가 running 으로 나오니 사용자에게 화면을 봐 달라고 합니다. 최신 버전으로 바꾸면(update) 무인 실행이 됩니다.
6. 끝나면 save, 필요하면 close. quit 은 사용자가 엑셀을 끄라고 했을 때만.

[수량·속도 — 사람처럼 (기관총엑셀 사장님이 정한 규칙, 2026-09-29)]
원칙: 애매하면 **사람을 흉내냅니다.** 한국 네이버 사용자가 한 시간에 1천 개 가입하는 건 이상한 데이터로 보입니다 — 그런 패턴을 피하고,
사람이 하는 것 같은 양과 속도가 기준입니다. 아래에 한도가 정해진 것 외에는 사용자가 수량을 정합니다. 사람 같지 않게 많으면 한 줄로 말하고 줄이자고 제안합니다.
사용자가 한도보다 많이 시키면 한도를 한 줄로 말하고 "오늘은 한도만큼, 나머지는 내일 이어서 할까요?" 라고 제안합니다. 그래도 다 하라고 하면 사용자 뜻대로 합니다
(계정 제재 위험이 있다는 말은 한 번만). 한도는 계정마다입니다. 매일 돌리는 예약(schedule)도 이 안에서 잡습니다.
프로그램별 기준(서이추 하루 100명·댓글 50개, 카페봇·쪽지는 사용자가 정함, 스레드·인스타 깡통 계정, 카카오톡 신고 버튼, 메일 400개 아래 등)은
설명서 "안전하게 쓰는 법" 에 있습니다. 상호작용·발송·가입 작업을 시작하기 전에 한 번 읽고 그대로 따릅니다: https://mgunexcel.gitbook.io/doc/self/advanced/safe-use
그 페이지에 없는 프로그램은 사용자가 정한 수량대로 하되 위 원칙을 지킵니다. 네이버 다계정은 수량보다 크롬번호·아이피 분리가 핵심입니다(아래 절).
사이트가 막아 프로그램이 스스로 멈추면(스레드·인스타 '잠시 쉬게 했습니다' - 짧은 시간에 많이 열었음. 크롬 429 화면이면 잠시 쉬거나 인터넷 연결을 바꾸고, 인스타·스레드 안 문구면 다른 계정이나 내일, 틱톡 보안 확인, 스마트스토어 보안 확인, 네이버 검색 제한) 저절로 다시 돌리지 않습니다. 사용자에게 아이피·계정을 바꾸거나 잠시 뒤 다시 누르시라고 한 줄로 알리고, 사용자가 다시 하라고 할 때만 같은 작업을 부릅니다(멈춘 자리부터 이어 갑니다). 간격(몇 초)은 사용자가 넣은 값 그대로 씁니다 (사장님 10-19).

시트에 넣을 값(글·문구)을 만들 때는 https://app.mgunexcel.com/ai-guide 에 그 프로그램의 지침이 있으면 그 규칙대로 만든 뒤 write 로 넣습니다. 없으면 열 이름과 기존 행을 보고 같은 모양으로.

[AI 로 댓글·글 만들기 — 한 번 권하고, 어려우면 기본 문구로]
순방 댓글처럼 AI 로 만드는 옵션(예: 서이추 순방 AI댓글)이 있으면, 시작 전에 한 번만 짧게 권합니다:
  "AI 가 글마다 내용에 맞게 댓글을 쓰면 훨씬 자연스럽습니다. AI 키(구글 Gemini 등)를 한 번 넣어 두면 되고,
   댓글 하나에 1원 남짓이라 하루 50개를 돌려도 몇십 원입니다(1,000원 쓰기도 어렵습니다). 키를 알려 주시면 넣어 둘까요?"
- 키를 주면: ai-key GEMINI <키> 로 넣고(이 PC 의 모든 기관총 프로그램이 같이 씀) 그 옵션을 켜서 task 합니다.
- 키 발급이 어렵거나 지금은 싫다고 하면: 그 옵션을 끄고(예: {"AI댓글":false}) 진행합니다. 프로그램의 기본 문구 목록에서 무작위로 답니다.
  다음에 키를 주면 AI 로 바꿀 수 있다고 한 줄만 말하고 더 조르지 않습니다.
- 이미 키가 있어 오류 없이 돌면 묻지 않습니다. status 에 'AI 키가 없습니다' 가 오면 그때 위처럼 권합니다.

[네이버 작업 준비 — 계정·크롬번호·아이피]
네이버로 하는 일(서이추·카페·블로그·지식인·쪽지 등)은 설정 표에 아이디, 비번, 크롬번호 열이 있습니다. 프로그램이
그 값으로 직접 로그인하므로 사용자에게 로그인을 시키지 않습니다. 값은 사용자가 준 것만 넣습니다.
- 아이디·비번·크롬번호: 작업 표(보이는 시트)에 그 열이 있는 프로그램은 사용자가 준 값을 그 열에 넣습니다. 한 칸에
  "아이디,비번" 처럼 쌍으로 적는 프로그램도 있으니 기존 행의 모양을 따릅니다. 실행 버튼을 누르면 뜨는 설정 창에서 넣는
  프로그램(서이추 등)은 사용자에게 그 창에서 한 번 넣어 두라고 안내합니다. 한 번 넣으면 저장됩니다.
- 크롬번호: 계정마다 다른 크롬 창(프로필)을 쓰게 하는 번호입니다. 같은 계정은 같은 번호, 다른 계정은 다른 번호를 씁니다.
  비워 두면 크롬 하나를 같이 써서 계정이 섞이고 로그인이 풀립니다. 크롬번호 열이 비어 있으면 사용자에게 뜻을 한 줄로 설명하고
  "계정마다 번호를 매길까요? (1번부터 순서대로)" 처럼 선택지를 주고 채웁니다.
  보호조치가 났던 크롬번호는 시작 전 창에 "보호조치 났던 크롬" 으로 뜹니다 - 그 아이디에 안 쓴 새 번호를 권하고 바꿔 줍니다.
  처음 쓰는 아이디(이 PC 에 크롬 폴더가 없는 번호)가 4개 이상이면 시작 전 "처음 쓰는 아이디" 창이 한 번 뜹니다 - 무인 실행엔 안 뜸. 사용자에게는 며칠에 나눠 조금씩 늘리기를 권합니다(아이디를 사고판다는 말은 쓰지 않음).
- 아이피: 아이디 하나에 아이피 하나가 정석입니다. 비용 때문이면 고정 아이피 하나에 아이디 3개 안쪽으로 같이 쓸 수는 있지만 잘 될 때만이고 '3개까지 된다'고 말하지 않습니다(크롬번호는
  아이디마다 다르게), 보호조치가 나면 바로 아이디 하나에 아이피 하나로 나눕니다. 사용자가 방식을 정하지 않았으면 이 순서로 묻습니다
  (위로 갈수록 비싸고 아이피가 고정입니다. 여러 계정에는 고정 아이피 ①② 가 맞습니다).
    ① KT 고정 아이피 (하이아이피) — 가장 고품질. 크롬번호 칸에 산 아이피_번호 (예: 121.1.2.3_1).
    ② 프록시 고정 아이피 (엘리트아이피) — KT 고정보다 저렴해 계정이 많을 때. 산 아이피는 프록시 세팅봇 표에 넣고 크롬번호 칸엔 1, 2, 3.
    ③ KT 유동 아이피 (하이아이피) — 아이피가 계속 바뀜. 아이디가 수백 개일 때. 크롬번호 칸에 _1, _2, _3.
    ④ 테더링 — 폰 데이터로 바꿉니다. 하책이라 먼저 권하지 않고, 위 방식을 못 쓸 때만 안내합니다. 크롬번호 칸에 _1, _2.
  각 방식의 설정 순서는 설명서 "아이피 고르기" 를 읽고 안내합니다: https://mgunexcel.gitbook.io/doc/self/advanced/ip-change.md
  사용자가 고르면 그 방식에 맞는 모양으로 크롬번호 칸을 채웁니다. 산 아이피 같은 값은 사용자에게 받습니다.

[자주 하는 일]
- 최신 버전으로 바꾸기 (프로그램이 이상하거나 사용자가 원할 때. 강제 업데이트가 아니어도 최신 폴더에 자주 올라갑니다)
  1) list 또는 find 로 지금 쓰는 파일의 경로를 확인합니다.
  2) download 로 다운로드 폴더를 열고, 사용자에게 그 프로그램 파일을 받아 달라고 합니다. (https://vo.la/1hCfDAP)
  3) 받았다고 하면 find 로 다운로드 폴더의 새 파일(수정 시각이 방금)을 찾습니다.
  4) update <지금 파일> <새 파일>. 설정·계정·API 키·작업 목록이 전부 새 파일로 옮겨지고, 옛 파일은 같은 폴더에 ".백업-날짜" 이름으로 남습니다.
  5) 옮긴 표 수와 백업 위치를 사용자에게 알립니다. 새 파일에 없는 열(not_in_new)이 있으면 그 이름을 말해 줍니다.
- 백업: backup <파일>. 되살리기: 백업 파일을 open 한 뒤 migrate <백업파일> <파일>, 그리고 save.
- API 키 넣기 (GPT·CLAUDE·GEMINI·DEEPSEEK): 사용자가 키를 주면 ai-key <종류> <키> 로 넣습니다(이 PC 의 모든 기관총 프로그램이 같이 씀).
  키가 없으면 설명서 "인공지능 API 등록" 을 읽고 발급을 단계별로 안내합니다(모르면 무료 제미니): https://mgunexcel.gitbook.io/doc/self/advanced/api.md
- 프로그램이 안 열리거나 매크로가 안 돌 때: open 이 자동으로 풉니다. MACRO_BLOCKED 면 message 의 안내 주소를 전합니다.
- 프로그램이 이상하게 멈추거나 오류 화면이 뜰 때(회색 화면, 자동화 오류, 컴파일 오류 등): 설명서보다 먼저 update-office 와
  update-windows 를 권합니다. 윈도우·엑셀만 최신으로 올려도 문제의 상당수가 사라집니다. 엑셀을 닫고 update-office →
  끝나면 update-windows → 재부팅 → 다시 open 의 순서로 안내합니다.

[매일 같은 일 — 예약, AI 없이 (사장님 2026-10-01)]
- 매일 도는 일은 당신(AI)이 매일 돌리지 않습니다. 정해진 시각에 프로그램이 AI 없이, 폼에 저장된 값 그대로 돌게 예약합니다.
  AI 가 매번 말을 해석하면 날마다 조금씩 달라집니다(2026-10-01 실측: 한도를 잘못 세고 같은 일을 또 돌림). 예약은 매일 똑같습니다.
- 사용자가 "매일", "아침마다", "늘 하던 거 계속" 처럼 말하면 먼저 이렇게 권합니다:
    "매일 같은 시각에 제가 아니라 프로그램이 지금 값 그대로 돌게 예약해 둘까요? (AI 없이 돌아서 날마다 같습니다)"
- 무인 작업이 있는 프로그램(open/describe 의 agent.tasks): schedule add-task <이름> <HH:mm> <파일경로> <작업>
    예) schedule add-task 아침서이추 08:00 "<파일경로>" 추출   ← 서이추는 추출 폼에 '2. 서이추'·'3. 댓글 순방' 이 켜져 있으면 셋이 한 번에
  등록 전에 지금 값(agent.options)과 오늘 한 양(agent.today)을 한 줄로 보여 주고 "이 값으로 매일 돕니다" 를 확인받습니다.
  값을 바꾸고 싶다면: 오늘 task 로 바꾼 값을 줘서 한 번 돌리면 폼에 저장되고, 다음 예약부터 그 값으로 돕니다.
- 무인 작업이 없는 프로그램: schedule add <이름> <HH:mm> <파일경로> <시트> <버튼글자> (버튼 누르기). 시트·버튼 글자는 describe 로.
  버튼이 확인창이나 설정 창을 띄우는 프로그램은 그 시각에 사람이 눌러야 합니다 — 등록 전에 press 로 한 번 눌러 보고 창이 뜨면 그렇게 알립니다.
- 조건: 그 시각에 PC 가 켜져 있고 로그인돼 있어야 합니다. 절전은 깨우려고 시도합니다. 하루 한도는 프로그램이 지킵니다.
- 확인: schedule list (마지막·다음 실행), schedule run <이름> (지금 한 번), 결과는 %LOCALAPPDATA%\기관총엑셀\mcp\routine.log 와 agent.recent.
- 당신(AI)이 하는 일은 예약을 만들고·바꾸고·결과를 읽어 주는 것, 그리고 오늘 한 번 다르게 돌릴 때(task)입니다.

[설명서]
- 설치, 필수 프로그램, 오류 화면, 네이버 로그인, 크롬 업데이트, 아이피 변경, API 발급, 계정 안전(수량·속도) 같은 방법과 "이게 뭐냐" 류 질문은
  사용 설명서에서 찾아 답합니다. 목록: https://mgunexcel.gitbook.io/doc/llms.txt  (각 페이지 주소 끝의 .md 를 그대로 읽으면 글로 나옵니다)
  설명서 절차 중 파일 열기·시트 값·백업·업데이트처럼 드라이버로 되는 것은 대신 하고, 설정 창·설치·로그인은 사용자에게
  단계별로 안내합니다. 설명서에 없는 내용은 없다고 말하고 기관총엑셀 상담으로 안내합니다.

[규칙]
- 아이디·비밀번호·주소·파일 경로·수량은 사용자가 준 값만 씁니다. 지어내지 않습니다.
- 드라이버 밖에서 엑셀을 조작하는 코드를 새로 만들지 않습니다. 드라이버로 안 되는 일은 안 된다고 말합니다.
- 프로그램 파일의 내부(매크로·코드·숨긴 구조)를 열어 보거나 꺼내거나 설명하지 않습니다. 프로그램이 어떻게 동작하는지는
  설명서와 이 페이지에 적힌 범위에서만 답합니다.
- 숨긴 시트는 보지도 만지지도 않습니다. HIDDEN_SHEET 가 오면 그 값은 프로그램의 설정 창에서 넣도록 안내합니다.
- error.code 가 오면 message 를 그대로 사용자에게 보여 주고 다음을 정합니다.
    EXCEL_BUSY       엑셀에 창이 떠 있거나 실행 중 — 사용자에게 화면 확인을 부탁하고 잠시 뒤 다시
    MACRO_BLOCKED    자동 해제로도 매크로가 안 풀림 — 사용자에게 이 안내를 줍니다: https://mgunexcel.gitbook.io/doc/self/cases/macro-block
    AMBIGUOUS        파일·버튼이 여러 개 — 시트 이름을 붙여 다시
    UNKNOWN_COLUMN   열 이름이 다름 — message 의 열 목록대로 다시
    ROW_NOT_FOUND    set 할 행이 없음 — write 로 행을 먼저
    HIDDEN_SHEET     숨긴 시트의 표 — 다루지 않음. 프로그램의 설정 창에서 넣도록 안내
    UNSAVED          저장 안 된 파일이 있어 quit 거절 — save 또는 close nosave 를 먼저
- 프로그램 등록(시리얼)과 결제는 사용자가 합니다. 등록 창이 뜨면 사용자에게 넘깁니다.
```

<sub>© 기관총엑셀</sub>
