Grok CLI 사용법 & 프롬프트 팁
xAI Grok Build 터미널 에이전트 완전 가이드 — 2026-09 기준(grok 1.0.24 stable) · Claude Code 사용자도 바로 적응할 수 있게 구성
- ⭐⭐⭐ — 매일 쓰는 필수 기능
- ⭐⭐ — 주 단위로 자주 씀
- ⭐ — 특정 상황에서 유용
/plan은 "상태 확인"이 아니라 Plan Mode 진입 명령이다. 상태·내용 확인은/view-plan.- persona는
spawn_subagent의 인자가 아니다. 서브에이전트 종류는subagent_type으로 고르고, persona는 별도 파일로 얹는 행동 오버레이다. - 권한은 always-approve 하나만 있는 게 아니다.
ask(기본) ·acceptEdits·auto(분류기) ·dontAsk·bypassPermissions5단계다. - 세션 재개는
/load가 아니라/resume, YOLO는 슬래시가 아니라/always-approve·--yolo다. Shift+Tab순환에 Auto와 Always-approve가 들어갔다.
⭐ 가장 자주 쓰는 것
Claude Code를 쓰던 사람이라면 이 기능들부터 익히세요. Grok의 진짜 힘은 여기서 나옵니다.
plan.md 외의 파일 편집이 모드 차원에서 차단된다. 큰 리팩토링·신규 기능 전에 필수. 모델이 스스로 enter_plan_mode로 제안하기도 한다.background: true로 병렬, isolation: "worktree"로 별도 git worktree에서 격리 실행까지 된다.--output-format json·--sandbox·--deny와 묶어 CI 파이프라인에 그대로 꽂을 수 있다.replace_all 옵션 지원. 애매한 지시보다 훨씬 안전하다./loop 5m …)과 장기 스크립트 stdout 감시(monitor). 빌드·로그 감시 자동화의 핵심 조합./plan 으로 계획 확정 → todo_write로 단계 정의 → 무거운 조사·병렬 작업은 spawn_subagent → 수정은 search_replace → 위험 작업은 --sandbox와 deny 규칙으로 감싼다.
1. Grok Build 개요 · 버전
Grok Build는 xAI의 터미널 기반 코딩 에이전트 제품명이고, 우리가 실제로 치는 명령은 grok 바이너리입니다. 단순 채팅이 아니라 도구 호출(Tools), Plan Mode, 서브에이전트, Skills/Plugins/MCP, Rhai 워크플로를 갖춘 에이전트 런타임입니다.
| 이름 | 의미 |
|---|---|
| Grok Build | 제품명 (코딩 에이전트) |
Grok CLI / grok |
사용자가 실행하는 바이너리 |
xai-grok-pager / xai-grok-shell |
내부 컴포넌트 이름(TUI / 런타임). 배포·설치 이름은 어디까지나 grok |
@xai-official/grok |
npm 패키지 (curl 설치의 대안) |
버전 타임라인
| 날짜 | 이벤트 |
|---|---|
| 2026-05-25 | Grok Build 공개 — early beta (SuperGrok / X Premium+ 대상) |
| 2026-08-07 | 1.0.0 정식 출시(GA) |
| 2026-09-07 | 1.0.24 — 이 문서가 기준으로 삼은 stable 버전 |
| 주요 개념 | 설명 |
|---|---|
| TUI | 풀스크린 터미널 인터페이스. /minimal ↔ /fullscreen으로 전환 |
| Tools | 파일·셸·검색·웹·이미지·서브에이전트·스케줄러 등 내장 도구 모음 (↓ 5장) |
| Permission modes | ask / acceptEdits / auto / dontAsk / bypassPermissions 5단 (↓ 6장) |
| Sandbox | OS 수준 파일·네트워크 격리. 기본은 off (↓ 7장) |
| Plan Mode | plan.md만 쓸 수 있는 계획 전용 모드 (↓ 8장) |
| Subagents | 독립 컨텍스트 자식 세션. 백그라운드·worktree 격리 지원 (↓ 9장) |
| ACP | Agent Client Protocol — Zed·Neovim·Emacs 등 에디터에 grok을 에이전트로 붙이는 JSON-RPC 서버 모드 (↓ 11장) |
2. 설치 · 인증 · 업데이트
2-1. 설치
# macOS / Linux
curl -fsSL https://x.ai/cli/install.sh | bash
curl -fsSL https://x.ai/cli/install.sh | bash -s 1.0.24 # 특정 버전 고정
# Windows (PowerShell) — GROK_VERSION 환경변수로 버전 지정
irm https://x.ai/cli/install.ps1 | iex
# npm 경로를 선호하면
npm i -g @xai-official/grok
grok --version # 1.0.24
2-2. 인증 방식
api_key/env_key → 세션 토큰(~/.grok/auth.json) → XAI_API_KEY
즉 특정 모델에 키를 박아두면 로그인 세션보다 그 키가 먼저 쓰인다. CI에서 헷갈리기 쉬운 지점이다.
| 방식 | 트리거 / 설정 |
|---|---|
| 브라우저 OAuth | grok 최초 실행 또는 grok login |
| 디바이스 코드 | grok login --device-auth — 브라우저를 못 여는 원격 셸에서 사용 |
| 엔터프라이즈 OIDC | [grok_com_config.oidc] 설정 또는 GROK_OIDC_* 환경변수 |
| 외부 자격 공급자 | [auth] auth_provider_command — 사내 시크릿 매니저를 명령으로 호출 |
| API 키 | XAI_API_KEY — CI·헤드리스 표준 경로 |
requirements.toml에서 disable_api_key_auth(API 키 로그인 금지) · force_login_team_uuid(특정 팀 계정 강제)로 인증 경로 자체를 잠글 수 있다. grok clone(Grove)의 Git 자격 증명은 이 체계와 별개다 — 따로 설정해야 한다.
2-3. 업데이트 제어
grok update # 최신 stable로
grok update --check # 새 버전 있는지만 확인
grok update --version 1.0.24
grok update --alpha # 알파 채널
grok update --stable # 안정 채널로 복귀
자동 업데이트를 끄는 방법은 세 가지 — 상황에 맞게 고릅니다.
--no-auto-update— 이번 실행만GROK_DISABLE_AUTOUPDATER=1— 환경 단위(컨테이너·CI에 적합)[cli] auto_update = false— 설정 파일에 영구 고정
3. 모델 & 추론 강도
grok models # 사용 가능한 모델 목록
# 2026-09-09 로컬 1.0.24 기준 출력
Default: grok-4.5
Available: grok-4.6, grok-4.5
grok-4.5로 보여줍니다. 반면 공식 overview 문서는 API 예제에서 grok-4.6을 "Grok Build를 구동하는 모델"로 강조합니다. 내 환경의 실제 기본값은 grok models로 직접 확인하고, 필요하면 -m으로 명시적으로 고정하세요.
전환 방법
| 빈도 | 방법 | 설명 |
|---|---|---|
| ⭐⭐ | /model |
세션 중 모델 전환 (피커) |
| ⭐⭐ | -m <모델> |
실행 시 지정 — grok -m grok-4.6 "…" |
| ⭐⭐ | /effort |
추론 강도. TUI는 low · medium · high · xhigh, CLI 플래그는 none~max까지 받는다. 어려운 설계엔 높게, 단순 편집엔 낮게. |
커스텀 모델 (사내 게이트웨이 · 타 프로바이더)
~/.grok/config.toml에 [model.<이름>] 블록을 만들면 자체 엔드포인트를 모델처럼 등록할 수 있습니다.
# ~/.grok/config.toml
[model.internal-gw]
base_url = "https://llm-gateway.example.com/v1"
env_key = "INTERNAL_LLM_KEY" # 이 환경변수에서 키를 읽음
api_backend = "chat_completions" # chat_completions | responses | messages
requirements.toml의 allowed_models는 "추가 허용"이 아니라 목록을 통째로 교체하는 핀이다. 여기에 없는 모델은 사용자가 /model로도 고를 수 없다.
4. 슬래시 명령어 (/)
프롬프트 맨 앞에 /를 입력하면 자동완성 목록이 나옵니다. 아래는 자주 쓰는 것 위주 정리입니다.
4-1. 세션 관리
| 빈도 | 명령어 | 용도 |
|---|---|---|
| ⭐⭐⭐ | /new · /clear |
새 세션 시작 (컨텍스트 완전 초기화). 작업 전환 시 필수. |
| ⭐⭐⭐ | /resume |
이전 세션 목록에서 골라 재개. (옛 문서의 /load가 아니다) |
| ⭐⭐⭐ | /dashboard · /sessions |
탑레벨 세션 roster를 열어 한눈에 보기 (Ctrl+\). ↓ 11장 |
| ⭐⭐ | /compact |
대화 히스토리 요약·압축. 지시를 덧붙여 보존할 내용을 지정할 수 있다. (컨텍스트 85% 부근에서 자동 압축도 동작) |
| ⭐⭐ | /context |
현재 컨텍스트 사용량 확인. |
| ⭐⭐ | /fork |
현재 세션을 복제해 다른 갈래로 실험. |
| ⭐⭐ | /rewind · /undo |
대화만 이전 지점으로 되돌린다. 파일은 되돌아가지 않는다 — git으로 별도 관리할 것. |
| ⭐ | /session-info · /status |
세션 ID·경로·사용량 등 메타 정보. |
| ⭐ | /rename · /copy · /export · /delete · /home |
이름 변경 · 복사 · 내보내기 · 삭제 · 홈 화면. |
4-2. 모드 · 모델 · UI
| 빈도 | 명령어 | 용도 |
|---|---|---|
| ⭐⭐⭐ | /plan [설명] |
Plan Mode 진입. 설명을 붙이면 그 주제로 바로 계획 작성을 시작한다. ↓ 8장 |
| ⭐⭐ | /view-plan |
현재 plan.md 내용 보기. "계획 상태 확인"은 이 명령이다. |
| ⭐⭐ | /auto |
Auto 권한 모드 토글 (분류기 기반 자동 승인). ↓ 6장 |
| ⭐⭐ | /always-approve |
bypassPermissions 모드. --yolo 플래그·Ctrl+O와 동일. deny 규칙과 hooks는 계속 살아 있다. |
| ⭐⭐ | /model · /effort |
모델 전환 · 추론 강도 조절. |
| ⭐ | /minimal · /fullscreen · /theme |
TUI 표시 방식 전환. |
| ⭐ | /multiline · /history · /vim-mode · /settings |
입력·히스토리·키바인딩·설정 UI. |
4-3. 워크플로 & 메모리
| 빈도 | 명령어 | 용도 |
|---|---|---|
| ⭐⭐ | /loop [간격] [프롬프트] |
지정 간격으로 프롬프트 반복 실행. 내부적으로 scheduler_* 도구를 쓰며 최소 간격 60초, 최대 7일, 최대 50개 제한이 있다. |
| ⭐⭐ | /goal |
완료 조건 기반 자율 진행. 워크플로와 조합해 쓴다. |
| ⭐⭐ | /workflow · /workflows · /create-workflow |
Rhai 스크립트 워크플로 실행·목록·생성. ↓ 10장 |
| ⭐ | /deep-research |
내장 심층 조사 워크플로. |
| ⭐ | /btw |
작업 흐름을 방해하지 않는 사이드 질문. |
| ⭐ | /memory · /flush · /dream · /remember |
크로스 세션 메모리. 실험적이며 기본 off — /remember만 항상 동작한다. ↓ 12장 |
| ⭐ | /imagine · /imagine-video |
이미지·비디오 생성 (Imagine 계열 도구). |
# 5분마다 서버 로그 확인 + 이상 있으면 보고
/loop 5m "server.log 마지막 30줄을 보고 에러가 있으면 알려줘"
# 매시간 테스트 실행
/loop 1h "npm test -- --watchAll=false 실행해서 실패 있으면 요약해줘"
# 간격은 최소 60초. /loop 10s 같은 건 받아주지 않는다
4-4. 설정 · 도구 · 계정
| 빈도 | 명령어 | 용도 |
|---|---|---|
| ⭐⭐ | /config-agents · /agents |
서브에이전트 정의 관리. 세션 목록인 /dashboard와 헷갈리기 쉬우니 주의. |
| ⭐⭐ | /skills · /hooks |
스킬 목록·토글 / 라이프사이클 훅 관리. |
| ⭐⭐ | /mcps · /plugins |
MCP 서버 · 플러그인 관리. |
| ⭐⭐ | /import-claude |
Claude Code 세션을 가져오기. 터미널에서는 grok import. |
| ⭐ | /doctor |
환경 진단. 터미널 버전은 grok doctor, 상태 덤프는 grok inspect --json. |
| ⭐ | /login · /logout · /usage · /privacy |
계정·사용량·프라이버시 설정. |
| ⭐ | /docs · /tutorial · /release-notes · /feedback |
동봉 문서·튜토리얼·릴리스 노트·피드백. |
5. 핵심 도구 (Tools)
Grok은 프롬프트만으로 대답하는 게 아니라 실제로 도구를 호출해 파일을 읽고 고치고 명령을 실행합니다. 도구 이름을 알아두면 프롬프트를 훨씬 정확하게 쓸 수 있습니다.
파일 · 셸 · 검색 (매일 쓰는 것)
| 도구 | 용도 | 빈도 |
|---|---|---|
read_file | 파일 읽기 (오프셋·라인 제한 가능) | ⭐⭐⭐ |
search_replace | 정확한 문자열 치환 — 가장 중요한 수정 도구 | ⭐⭐⭐ |
run_terminal_command | 셸 명령 실행 (build·test·git 등) | ⭐⭐⭐ |
grep | 코드베이스 전체 검색 (ripgrep 기반) | ⭐⭐⭐ |
todo_write | 작업 목록 생성·갱신 (진행 상황 시각화) | ⭐⭐⭐ |
list_dir | 디렉터리 구조 탐색 | ⭐⭐ |
에이전트 · 백그라운드
| 도구 | 용도 | 빈도 |
|---|---|---|
spawn_subagent | 자식 에이전트 실행 (백그라운드·worktree 격리 가능) | ⭐⭐ |
send_subagent_message | 루트에서 실행 중인 자식에게 지시를 밀어 넣기(steer/queue) | ⭐⭐ |
get_command_or_subagent_output / kill_* | 백그라운드 작업 출력 확인 · 종료 | ⭐⭐ |
enter_plan_mode / exit_plan_mode | Plan Mode 진입·종료 | ⭐⭐ |
monitor | 장기 실행 스크립트의 stdout을 감시해 조건 발생 시 알림. persistent 옵션 지원 — 감시 대상은 grep --line-buffered처럼 줄 단위 flush가 되게 해야 잘 잡힌다 | ⭐⭐ |
scheduler_* | /loop의 하부 구현 (최소 60초 · 최대 7일 · 최대 50개) | ⭐ |
workflow | Rhai 워크플로 실행 (탑레벨 도구) | ⭐ |
웹 · 대화 · 확장 · 생성
| 도구 | 용도 | 빈도 |
|---|---|---|
web_search / web_fetch / open_page | 웹 검색·문서 가져오기·페이지 열람 | ⭐⭐ |
ask_user_question | 선택지를 갖춘 구조화 질문 카드를 띄워 사용자 결정을 받는다. 애매한 분기에서 추측 대신 물어보게 만든다 | ⭐⭐ |
memory_search | 크로스 세션 메모리 검색 (메모리 기능 켰을 때) | ⭐ |
search_tool / use_tool | MCP 도구 탐색 · 호출 | ⭐ |
image_gen / image_edit / image_to_video / reference_to_video | Imagine 계열 생성 도구 | ⭐ |
run_terminal_cmd로 적힌 곳이 있고, TUI에서는 run_terminal_command로 표시됩니다. --tools/--disallowed-tools에 셸 도구를 적을 때는 실제 환경에서 한 번 시험해 어느 철자가 먹히는지 확인하세요.
먼저 @app.py 를 read_file로 확인하고,
넓게 찾아야 하는 부분은 grep으로 위치를 특정한 뒤,
수정은 반드시 search_replace로 정확히 고쳐줘.
단계는 todo_write로 관리하고,
선택이 갈리는 지점은 임의로 정하지 말고 ask_user_question으로 물어봐.
6. 권한 모드 & 규칙
"승인 프롬프트가 뜨느냐 마느냐"를 결정하는 축입니다. always-approve 하나만 있는 게 아닙니다.
| Config 값 | UI / 별칭 | 동작 |
|---|---|---|
default |
ask (기본) | 읽기와 안전한 셸 명령은 자동, 나머지는 매번 질문 |
acceptEdits |
Accept edits | 파일 편집을 자동 승인 |
plan |
(Claude 호환 값) | 설정값으로 받아주지만, 실제 계획 게이트는 Plan Mode가 담당 |
auto |
Auto (/auto) |
분류기가 안전하다고 판단한 것만 자동 승인. 위험한 건 여전히 프롬프트를 띄우고, 헤드리스에서는 프롬프트 대신 실패로 보고한다 |
dontAsk |
— | allow 규칙에 없는 건 묵시적으로 거부. 무인 CI에 적합 |
bypassPermissions |
always-approve--yolo · /always-approve · Ctrl+O |
승인 프롬프트를 건너뛴다. deny 규칙·hooks·일부 셸 확인은 그대로 유지된다 |
auto는 "묻지 않는 모드"가 아니라 "안전한 것만 골라 통과시키는 모드"입니다. 진짜로 전부 건너뛰는 건 bypassPermissions(always-approve) 쪽이고, 이건 컨테이너·일회용 VM처럼 망가져도 되는 환경에서만 쓰는 게 맞습니다.
권한 규칙 문법
도구별로 패턴을 걸어 허용·질문·거부를 지정합니다. 우선순위는 deny > ask > allow — 거부가 언제나 이깁니다.
Bash(git status) # 특정 셸 명령
Bash(rm -rf *) # 보통 deny 목록에 넣는다
Edit(src/**) # 편집 대상 경로
Read(.env) # 읽기 차단에 유용
Write(dist/**)
Grep(...)
WebFetch(...)
MCPTool(...)
.claude/settings.json의 권한 설정을 병합해서 읽습니다. Claude Code에서 이미 다듬어 둔 allow/deny 목록이 있다면 그대로 활용됩니다.
/etc/grok/requirements.toml(root 소유)에 disable_bypass_permissions_mode를 켜면 사용자가 always-approve로 전환하는 것 자체를 막을 수 있습니다. 공용 빌드 머신에서 쓰는 장치입니다.
7. Sandbox (OS 격리) 기본 off
권한 모드가 "물어볼까 말까"라면, 샌드박스는 OS 커널 수준에서 실제로 못 하게 막는 장치입니다. Linux는 Landlock(+bubblewrap), macOS는 Seatbelt를 씁니다. 두 축은 독립이라 조합해서 쓰는 게 정석입니다.
grok --sandbox workspace # 실행 시 프로필 지정
export GROK_SANDBOX=strict # 환경변수로 고정
| 프로필 | 쓰기 허용 범위 | 자식 프로세스 네트워크 |
|---|---|---|
off (기본) | 제한 없음 | 허용 |
workspace | 현재 작업 폴더 + ~/.grok + 임시 디렉터리 | 허용 |
devbox | /data를 제외한 최상위 경로 | 허용 |
read-only | ~/.grok + 임시 디렉터리만 | Linux에서 차단 |
strict | 현재 작업 폴더 + 세션 디렉터리 + 임시 디렉터리 | Linux에서 차단 |
- 세분화가 필요하면
~/.grok/sandbox.toml에 커스텀 프로필을 정의한다. - 프로필은 세션에 고정된다 — 다른
--sandbox값으로 같은 세션을 resume 하려 하면 거부된다.
grok --sandbox strict --always-approve \
--deny 'Bash(rm -rf *)' \
-p "이 저장소의 테스트를 돌리고 실패 원인을 요약해줘"
# always-approve로 프롬프트는 없애되,
# 실제 파괴 가능 범위는 샌드박스와 deny 규칙이 물리적으로 제한한다
8. Plan Mode 상세
영향 범위가 큰 작업에서 계획을 먼저 확정시키는 전용 모드입니다. 모델이 스스로 필요성을 판단해 제안하기도 하고, 사용자가 직접 넣을 수도 있습니다.
| 단계 | 방법 |
|---|---|
| 진입 | /plan [설명] · Shift+Tab으로 Plan 선택 · 모델이 enter_plan_mode 제안 후 사용자 승인 |
| 작성 중 | 세션 디렉터리의 plan.md만 편집 가능 |
| 확인 | /view-plan |
| 종료 | exit_plan_mode → 승인 UI에서 a 승인 · s 수정 요청 · c 코멘트 |
plan.md이외 파일의 편집은 모드와 무관하게 거부된다.always-approve상태여도 이 편집 게이트는 유지된다 — 승인만 건너뛸 뿐 편집이 열리지는 않는다.- 다만 bash 명령과 MCP 도구는 통과할 수 있다. "읽기 전용"이라고 완전히 믿지 말 것.
general-purpose 서브에이전트를 띄우면 그 자식은 파일을 수정할 수 있습니다. 계획 단계에서 진짜로 아무것도 건드리지 않게 하려면 편집 권한이 없는 explore·plan 타입으로 띄우세요.
# 진입하면서 주제까지 함께 지정
/plan 인증 모듈을 세션 기반에서 JWT로 옮기는 계획
# 계획 확인
/view-plan
# 계획 단계에서 조사가 필요하면 편집 권한 없는 타입으로
explore 서브에이전트로 현재 세션 처리 코드가 어디에 흩어져 있는지만 모아줘
9. 서브에이전트 · Agents · Personas
spawn_subagent로 독립 컨텍스트의 자식 에이전트를 띄웁니다. 자식은 자기 컨텍스트에서 일하고 요약만 부모에게 돌려주므로, 메인 세션의 토큰과 집중도를 아낍니다.
9-1. Agents vs Personas — 다른 개념이다
| Agents | Personas | |
|---|---|---|
| 무엇 | 모델·도구·시스템 프롬프트를 묶은 에이전트 정의 | 서브에이전트 위에 얹는 행동 오버레이 |
| 어디에 | .grok/agents/ · /config-agents |
config.toml 또는 .grok/personas/*.toml |
| spawn 시 | subagent_type으로 지정 |
spawn 파라미터가 아니다 — 설정으로 적용된다 |
spawn_subagent에 persona: reviewer를 넘긴다"는 설명은 틀렸습니다. 역할별 자식을 원하면 .grok/agents/에 에이전트를 정의하고 그 이름을 subagent_type으로 넘기세요.
내장 서브에이전트 타입
| 타입 | 특징 |
|---|---|
general-purpose | 일반 작업. 편집 가능 |
explore | 탐색 전용 — 편집 불가 |
plan | 계획 수립 — 편집 불가 |
9-2. spawn_subagent 파라미터
| 파라미터 | 의미 |
|---|---|
prompt | 자식에게 줄 지시문 |
description | 진행 표시용 짧은 설명 |
subagent_type | 내장 타입 또는 .grok/agents/에 정의한 이름 |
background | true면 백그라운드로 병렬 실행 |
isolation | none 또는 worktree — worktree면 별도 작업 트리에서 격리 실행 |
resume_from | 이전 자식 세션을 이어서 실행 |
cwd | 자식의 작업 디렉터리 |
도구 권한은 capability로도 좁힙니다 — read-only · read-write · execute · all.
서브에이전트를 아예 끄려면 GROK_SUBAGENTS=0 또는 --no-subagents를 씁니다.
다음처럼 진행해줘:
1. explore 서브에이전트 2개를 background로 띄워서
- 하나는 현재 결제 관련 코드 위치를 모으고
- 하나는 테스트 커버리지 현황을 정리
2. 두 결과가 모이면 todo_write로 단계 정의
3. 실제 구현은 isolation을 worktree로 준 서브에이전트에서 진행
(메인 작업 트리를 건드리지 않게)
4. 진행 중인 자식에게 방향을 바꿔야 하면 send_subagent_message로 지시
/dashboard는 탑레벨 세션의 roster입니다. 서브에이전트는 여기 목록에 뜨지 않으니, 자식 상태는 get_command_or_subagent_output이나 부모 세션의 진행 표시로 확인하세요.
9-3. Worktree 격리
같은 저장소를 여러 작업 트리로 갈라 서로 간섭 없이 병렬 작업할 수 있습니다.
grok -w feat/payments # --worktree : 새 worktree에서 세션 시작
grok -w feat/payments --ref main # 분기 기준 지정
grok worktree list # worktree 관리 서브커맨드
- 서브에이전트 쪽은
isolation: "worktree"로 같은 효과를 낸다. - Dashboard에서는
Ctrl+W로 worktree 관련 화면에 접근한다. grok clone(Grove)은 이와 별개의 기능·별개의 인증 게이트다.
10. Skills · Plugins · Hooks · MCP · Workflows
Skills
SKILL.md로 반복 절차를 고정합니다. 탐색 경로는 .grok/skills, .agents/skills이며, Claude·Cursor의 스킬 경로도 호환 스캔합니다 — 기존 자산을 그대로 재사용할 수 있습니다.
# 프로젝트 스킬
.grok/skills/<name>/SKILL.md
# 사용자 전역 스킬
~/.grok/skills/<name>/SKILL.md
Plugins & Marketplace
grok plugin list
grok plugin marketplace add <source>
grok plugin install <name>
.grok-plugin/marketplace.json이고, Claude의 .claude-plugin/ 구조와 호환됩니다.
Hooks
세션·도구·서브에이전트 생명주기에 셸 명령을 붙입니다.
SessionStart/SessionEndPreToolUse/PostToolUsePermissionDenied— 거부가 발생했을 때Stop*·Subagent*·Compact*계열
훅도 플러그인과 마찬가지로 폴더 신뢰(folder trust)가 공통 게이트입니다. 신뢰하지 않은 폴더의 훅은 돌지 않습니다.
MCP
grok mcp list
grok mcp add <name>
grok mcp remove <name>
grok mcp doctor # 연결 문제 진단
설정은 [mcp_servers.*]에 두고 stdio · HTTP · SSE 전송을 지원합니다. 세션 안에서는 /mcps로 관리하고, 모델은 search_tool/use_tool로 MCP 도구를 찾아 씁니다.
Workflows (Rhai)
Grok의 차별점 중 하나. Rhai 스크립트로 다단계·병렬 에이전트 절차를 코드로 적어둡니다.
- 위치:
.grok/workflows/*.rhai - 명령:
/create-workflow·/workflow·/workflows, 내장 예로/deep-research - 에이전트 예산
agent_budget기본값 128 - 전부 끄려면
GROK_WORKFLOWS=0
11. Headless · ACP · Dashboard
Headless (-p) — CI에 꽂는 방법
grok -p "…" --output-format plain|json|streaming-json|streaming-messages-json
# 권한·격리·거부 규칙을 함께 건다
grok -p "…" --always-approve --sandbox strict --deny 'Bash(rm -rf *)'
# 도구 화이트/블랙리스트와 턴 상한
grok -p "…" --tools "read_file,grep" --disallowed-tools "Agent(explore)" --max-turns 20
# 세션 이어가기
grok -p "…" -r <세션ID> # resume
grok -p "…" -c # continue
grok -p "…" --fork-session # 원본을 건드리지 않고 갈라서 실행
--allowedTools, --dangerously-skip-permissions 같은 Claude 계열 플래그명을 그대로 받아줍니다. 기존 CI 스크립트를 옮길 때 유용합니다.
-s 동작 — 확인 필요-s가 "세션 생성 또는 재개"로 적혀 있고, 동봉 로컬 가이드에는 "새 UUID 생성만"으로 적혀 있습니다. 자동화에 쓰기 전에 실제 동작을 한 번 확인하세요.
auto 모드는 위험 판정이 나면 프롬프트를 띄우려 하는데, 헤드리스에는 물어볼 사람이 없으므로 실패로 보고됩니다. 무인 실행이라면 dontAsk(allow 목록 기반) 또는 --always-approve + 샌드박스 조합을 쓰세요.
ACP — 에디터에 Grok을 붙이기
# stdio 모드 (에디터가 프로세스를 직접 띄움)
grok agent --always-approve stdio
# 서버 모드
grok agent --always-approve serve --bind 127.0.0.1:2419 --secret <토큰>
- 프로토콜은 JSON-RPC. 권한은
_meta.yoloMode/autoMode로 전달한다. - 알려진 클라이언트: Zed · Neovim · Emacs · marimo 등.
Dashboard
grok dashboard · 세션 안에서 /dashboard · 단축키 Ctrl+\. 탑레벨 세션 roster를 띄워 여러 작업을 오가며 관리합니다. 앞서 말했듯 서브에이전트는 목록에 없습니다.
12. 세션 저장 & Memory
세션
# 저장 위치
~/.grok/sessions/<인코딩된-작업경로>/<uuid>/
grok sessions # 목록
grok export <id> # 내보내기
grok import # Claude Code 세션 가져오기 (세션 안에서는 /import-claude)
grok usage <id> # 해당 세션 사용량
/rewind는 파일을 되돌리지 않는다Memory — 실험적, 기본 off
세션을 넘어 지속되는 메모리 기능입니다. 기본적으로 꺼져 있고, 켜야 대부분의 명령이 의미를 갖습니다.
# 켜기 — 둘 중 하나
export GROK_MEMORY=1
# 또는 config.toml
[memory]
enabled = true
| 명령 | 역할 |
|---|---|
/remember | 기억할 내용을 남긴다. 기능이 꺼져 있어도 항상 동작한다 |
/memory | 메모리 관리 UI |
/flush · /dream | 정리·통합 작업 트리거 |
grok memory clear | 메모리 전체 삭제 |
13. 설정 계층 · 엔터프라이즈 · 네트워크
우선순위
requirements.toml / MDM 핀 → overlay → ~/.grok/config.toml → managed_config.toml → 기본값
requirements.toml이 사용자 설정보다 위에 있다는 점이 핵심이다 — 조직이 건 제약은 사용자가 config로 못 푼다.
| 파일 | 역할 |
|---|---|
~/.grok/config.toml | 사용자 전역 설정 |
.grok/config.toml (프로젝트) | 주로 MCP · 플러그인 · 권한 |
/etc/grok/managed_config.toml~/.grok/managed_config.toml | 관리형 기본값 |
requirements.toml (user/system) | 조직 강제 핀 — 모델·인증·bypass 금지 등 |
관리형 설정을 내려받는 명령은 grok setup입니다.
네트워크 · 관측
- 프록시:
HTTPS_PROXY·HTTP_PROXY·NO_PROXY를 문서화하고 있다.
SOCKS 프록시 지원 여부는 명시 확인 필요 — 문서에 HTTPS 계열만 적혀 있다. (참고로 Claude Code는 SOCKS를 공식 미지원으로 못박고 있다) - OTEL:
GROK_EXTERNAL_OTEL등으로 외부 수집기에 텔레메트리를 보낼 수 있다(alpha 스키마 v1). - 상태 표시줄:
[ui.status_line]— 기본 disabled.
14. 키보드 단축키
| 키 | 기능 |
|---|---|
Shift+Tab |
권한 모드 순환 — Normal → Plan → (Auto) → Always-approve |
Ctrl+O |
always-approve(bypassPermissions) 토글 |
Ctrl+\ |
Dashboard 열기 |
Ctrl+W |
Dashboard에서 worktree 화면 |
Tab |
프롬프트 ↔ 스크롤백 포커스 전환 |
Ctrl+C / Ctrl+D |
현재 생성 취소 / 세션 종료 |
Ctrl+K / Ctrl+J |
한 줄 스크롤 |
PageUp / PageDown |
페이지 단위 스크롤 |
y |
선택 블록 클립보드 복사 (Vim 모드) |
/vim-mode |
Vim 스타일 스크롤백 키바인딩 토글 |
15. Claude Code ↔ Grok Build 매핑
Claude Code를 쓰던 사람이 같은 일을 Grok에서 어떻게 하는지 정리했습니다. 이름이 같아도 범위가 다른 항목은 비고에 적어 두었습니다.
| Claude Code | Grok Build | 비고 |
|---|---|---|
claude TUI |
grok TUI |
Grok은 /minimal ↔ /fullscreen |
claude -p / Agent SDK |
grok -p / grok agent stdio|serve |
ACP는 Grok의 강점 — 에디터 연동이 1급 시민 |
| 권한 모드 + Auto 분류기 | ask / acceptEdits / auto / dontAsk / always-approve | 양쪽 다 Auto ≠ 전부 승인 |
Plan Mode (Shift+Tab) |
/plan · enter_plan_mode |
Grok은 plan.md 게이트가 별도. 자식은 게이트 미상속 |
| 서브에이전트 | spawn_subagent + agents/personas |
Grok은 worktree 격리가 내장 |
Agent view (claude agents) |
/dashboard |
Grok Dashboard는 탑레벨 세션만 보여준다 |
| Agent teams (실험) | Rhai workflow · 병렬 서브에이전트 |
같은 목적, 접근 방식이 다르다 |
/clear |
/new · /clear |
동일 |
/compact |
/compact |
Grok은 85% 부근 자동 압축 |
CLAUDE.md |
AGENTS.md (+ CLAUDE.md 호환) |
더 깊은 경로의 파일이 우선 |
.claude/settings.json |
[permission] + Claude 설정 병합 |
기존 allow/deny를 재사용 |
| managed-settings (관리형) | /etc/grok/requirements.toml |
조직 강제 핀 |
| Skills / Hooks / MCP / Plugins | 동명 계열 | Grok이 Claude·Cursor 경로도 스캔 |
--dangerously-skip-permissions |
--always-approve · --yolo |
Grok은 deny·hooks가 계속 산다 |
| Bash / Edit / Read 도구 | run_terminal_command / search_replace / read_file |
— |
| Sandbox (Seatbelt / bubblewrap) | 프로필 5종 (Landlock / Seatbelt) | Grok은 기본 off — 명시적으로 켜야 한다 |
Memory / # |
GROK_MEMORY + /remember·/flush·/dream |
Grok 메모리는 실험적·기본 off |
/loop · Monitor |
/loop · monitor · Rhai workflow |
자동화 폭은 Grok이 넓다 |
/goal |
/goal (+ workflows) |
— |
| Worktrees | -w / isolation: worktree / grok worktree |
— |
| 세션 가져오기 | grok import · /import-claude |
Claude → Grok 이주 경로 |
ANTHROPIC_BASE_URL (게이트웨이) |
[model.*] base_url |
Grok은 모델 단위로 엔드포인트를 건다 |
| Chrome / computer use | 웹 도구 · Imagine 계열 | 범위가 다르다 — 1:1 대응 아님 |
| Remote Control (폰에서 조작) | 직접 대응이 약함 | 확인 필요 — 동등 기능을 단정하지 말 것 |
| SOCKS 프록시 | HTTPS_PROXY 계열만 문서화 | Claude는 공식 미지원. Grok의 SOCKS 지원 여부는 확인 필요 |
grok import로 기존 세션을 가져오고,AGENTS.md를 정리한다 (CLAUDE.md도 읽히지만 한 곳으로 모으는 편이 낫다).Shift+Tab을 눌러 Auto와 Always-approve가 추가된 순환을 몸에 익힌다.- 큰 작업은
/plan으로 시작하고, 계획 중 조사는 편집 권한 없는explore자식에게 맡긴다. - CI로 옮길 작업은
grok -p+--sandbox+--deny로 감싼다.
16. Grok 프롬프트 작성 팁
1. 도구를 의식해서 말하기
Grok은 도구를 통해 작업합니다. "파일 읽고 수정해"보다 도구를 지정하면 훨씬 정확해집니다.
좋은 예:
먼저 @index.html 의 Program 섹션을 read_file로 확인하고,
새 항목을 추가할 위치를 grep으로 특정한 뒤,
search_replace로 정확히 한 군데만 고쳐줘.
나쁜 예:
Grok 가이드 메뉴 좀 추가해줘.
2. 큰 작업은 /plan부터
/plan 인증 모듈 리팩토링
# 또는 대화로 유도
이건 아키텍처 영향이 커. enter_plan_mode로 먼저 계획을 세우고,
승인 후에 todo_write로 단계를 정의해줘.
3. 병렬화는 명시적으로
조사·구현·검증을 동시에 돌리고 싶다면 몇 개를, 어떤 타입으로, background 여부까지 말해주세요. 편집이 일어나면 안 되는 조사에는 explore를 지정합니다.
4. 정확한 위치 지정
search_replace는 정확한 old_string을 요구합니다. "대략 이 부분"보다 함수명·주변 두세 줄을 함께 알려주는 편이 실패가 적습니다.
5. 위험 작업은 권한이 아니라 격리로 막기
# "조심해서 해줘"는 안전장치가 아니다. 실제로 막는 건 이것들이다.
grok --sandbox workspace --deny 'Bash(rm -rf *)' --deny 'Read(.env)'
6. 애매하면 되묻게 하기
선택지가 갈리는 작업에서는 ask_user_question을 쓰라고 지시하세요. 모델이 임의로 정해버리고 한참 진행한 뒤 되돌리는 비용이 훨씬 큽니다.
17. 체크리스트 & 실전 패턴
새 프로젝트에서 처음 켤 때
grok --version으로 버전 확인, 필요하면grok updategrok models로 기본 모델이 무엇인지 직접 확인 (4.5/4.6 문서 불일치 주의)grok doctor·grok inspect --json으로 환경 점검AGENTS.md에 프로젝트 규칙을 적어둔다- 위험 명령을
deny규칙에 넣고, 남의 코드라면--sandbox workspace부터
큰 작업 루틴
/new로 깨끗한 세션/plan <설명>→/view-plan으로 검토 →exit_plan_mode에서a승인todo_write로 단계 정의- 조사는
explore자식에게, 구현은isolation: worktree자식에게 - 수정은
search_replace, 진행은get_command_or_subagent_output으로 확인 - 끝나면
/compact또는/new
CI에 붙일 때
XAI_API_KEY주입 (모델별api_key가 있으면 그게 먼저 쓰인다는 점 유의)GROK_DISABLE_AUTOUPDATER=1로 실행 중 버전 변동 차단grok -p+--output-format json+--max-turns- 권한은
dontAsk(allow 목록) 또는--always-approve+--sandbox strict --deny로 파괴적 명령을 명시 차단
/plan → 단계는 todo_write → 수정은 search_replace → 위험은 sandbox + deny → 반복은 Skill·Workflow로