오픈소스 코딩 에이전트 Cline의 CLI(cline)를 실무에서 쓸 때 필요한 설치 방법, 인증 유형, 전체 명령어·플래그·슬래시 명령·환경변수·설정 파일을 한 번에 정리했습니다. Cline CLI는 VS Code 확장과 동일한 코어(Controller, StateManager, Task 실행 엔진)를 공유하기 때문에 Plan/Act 모드, MCP 서버, 규칙(rules), 스킬(skills), 프로바이더 설정이 모든 표면에서 동일하게 동작합니다.
이 정리는 Cline CLI(npm cline 패키지) 기준입니다. cline --help / cline <command> --help로 실제 지원 여부를 재확인하세요.
1. 설치
# npm으로 설치 (권장, 전역)
npm install -g cline
# 기타 패키지 매니저
pnpm add -g cline
yarn global add cline
bun add -g cline
# 버전 확인
cline --version
cline -V
cline version
# 최신 버전으로 업데이트
cline update
npm update -g cline
# 나이틀리(사전 릴리즈) 빌드 설치
npm i -g cline@nightly
Cline CLI는 macOS·Linux·Windows의 arm64/x64용 네이티브 바이너리를 optional dependencies로 배포합니다. 즉 npm install -g cline 한 번만 실행하면 플랫폼에 맞는 바이너리가 자동으로 선택되며, 별도의 Node·Bun·Zig 런타임을 추가로 설치할 필요가 없습니다. 다만 npm 자체는 필요하므로 Node.js 22 이상이 설치되어 있어야 합니다.
최초 실행 시 CLI가 OS의 신뢰 인증서(trust anchor)를 수집해 ~/.cline/cli-node-extra-ca-certs.pem에 기록하고 NODE_EXTRA_CA_CERTS를 그 파일로 지정합니다. 이 파일은 변경될 때마다 재생성되며 삭제해도 다음 실행 시 다시 만들어집니다. 사내 프록시·커스텀 CA를 쓰는 환경이라면 직접 NODE_EXTRA_CA_CERTS를 지정해도 시스템 인증서와 병합되어 적용됩니다.
2. 인증 유형
Cline은 특정 벤더에 종속되지 않고 여러 인증 방식을 지원합니다. 크게 (1) Cline 계정으로 OAuth 로그인, (2) 구독형 로그인(ChatGPT 구독 등), (3) 프로바이더 API 키 직접 등록 세 가지로 나뉩니다.
# 대화형 인증 설정 (가장 쉬운 방법)
cline auth
# → Sign in with Cline / Sign in with ChatGPT Subscription /
# Sign in with OCA / Use your own API key 중 선택하는 TUI가 열림
# Cline 계정으로 OAuth 로그인 (브라우저 인증)
cline auth cline
# 프로바이더 API 키를 직접 지정해서 비대화형으로 인증
cline auth --provider anthropic --apikey sk-ant-... --modelid claude-sonnet-4-6
cline auth --provider openai --apikey sk-...
# 이번 실행 한정으로 키를 임시 오버라이드 (저장되지 않음)
cline -k sk-ant-... "간단한 작업 실행"
# 환경변수로 키를 지정하는 방법
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
cline
| 인증 방식 |
설명 |
| Cline 계정 로그인 |
Cline Provider를 통한 종량제(pay-as-you-go) 사용, 또는 ClinePass 정액 구독. cline auth cline으로 OAuth 로그인. |
| ChatGPT 구독 연동 |
openai-codex 프로바이더를 통해 기존 ChatGPT 구독으로 인증. 별도 API 키 없이 사용 가능. |
| OCA 로그인 |
OCA(조직/엔터프라이즈 계정) 연동 로그인 옵션. |
| API 키 직접 등록 |
Anthropic, OpenAI, Google Gemini, OpenRouter, AWS Bedrock, GCP Vertex, Cerebras, Groq 및 OpenAI 호환 엔드포인트 등 원하는 프로바이더의 키를 직접 등록. |
| 로컬 모델 |
Ollama 등 로컬 서버나 임의의 OpenAI 호환 엔드포인트를 가리키면 오프라인으로도 사용 가능. |
등록된 API 키는 시스템 키체인(keychain)에 안전하게 저장됩니다. cline(Cline 자체), openai-codex, oca 프로바이더는 OAuth 기반이며, 이 프로바이더들은 평소 실행 시 자동으로 브라우저를 띄우지 않으므로 cline auth <provider>로 먼저 명시적으로 인증해야 합니다.
기간 한정으로 Minimax M2.5, Kimi K2.5 같은 일부 모델은 API 키 없이 무료로 사용할 수 있도록 열려 있는 경우가 있습니다(제공 여부는 시점에 따라 달라질 수 있음). 인증 설정이 꼬였을 때는 cline doctor로 진단하세요.
3. 기본 실행 방법
# 인자 없이 실행 → 대화형 TUI 세션 시작
cline
# 프롬프트를 바로 전달 (act 모드 + auto-approve 기본 활성화)
cline "signup 폼에 입력값 검증 추가해줘"
# Plan 모드로 시작 (실행 전 계획부터 확인)
cline -p "인증 모듈 리팩터링 계획을 세워줘"
cline --plan "마이그레이션 계획 설계"
# stdin으로 파이프해서 전달
echo "테스트 실패 원인을 찾아 고쳐줘" | cline
git diff origin/main | cline "이 변경사항을 리뷰해줘"
cat README.md | cline "설치 단계만 요약해줘"
# JSON 스트림으로 출력 (스크립트/CI 파이프라인용)
cline --json "TODO 주석을 전부 나열해줘" | jq -r 'select(.type=="say") | .text'
# 특정 세션 재개
cline --id abc123 "이어서 에러 핸들링도 추가해줘"
# 백그라운드 허브에서 작업만 던져놓고 빠져나오기 (zen 모드)
cline -z "인증 모듈 리팩터링하고 유닛 테스트도 추가해줘"
cline --zen "..."
--zen(-z)은 로컬 허브 데몬에 작업을 제출한 뒤 곧바로 종료되며 출력 스트림을 붙잡지 않습니다. 실행 중 사람이 개입할 수 없으므로 zen 세션은 항상 전체 도구 자동 승인 상태로 동작합니다. 되돌릴 수 없는 작업이 섞여 있다면 신중히 사용하세요.
4. 전체 최상위(top-level) 명령어
| 명령어 |
기능 |
cline [prompt] |
인자 없으면 대화형 TUI 시작, 프롬프트가 있으면 바로 작업 시작 (기본값) |
cline auth [options] [provider] |
프로바이더 인증 설정 및 사용할 모델 구성 |
cline config [options] |
현재 설정(프로바이더, 모델, 디렉토리 등) 확인 |
cline connect [options] [adapter] |
Slack, Discord, Telegram 등 메시징 플랫폼 어댑터에 연결 |
cline mcp |
MCP 서버 추가/목록/인증 관리 |
cline dev |
개발자용 도구 및 유틸리티 |
cline doctor |
설정 문제 진단 및 자동 복구 |
cline history / cline h |
세션 히스토리 목록 조회 및 관리 |
cline hook |
stdin으로 전달된 훅(hook) 페이로드 처리 |
cline plugin |
Cline 플러그인 설치/제거 관리 (파일 URL, npm, git, 로컬 경로 지원) |
cline schedule |
크론 기반 예약 에이전트 관리 |
cline hub |
로컬 허브 데몬(백그라운드 세션 런타임) 관리 |
cline update [options] |
업데이트 확인 및 설치 |
cline version |
CLI 버전 번호 출력 (-V와 동일) |
cline kanban |
Kanban 앱(웹 기반 멀티 에이전트 작업 보드) 실행 후 종료 |
5. 전역 옵션(플래그) 전체 정리
| 플래그 |
설명 |
-V, --version |
버전 번호 출력 |
-p, --plan |
Plan 모드로 실행 (실행 전 계획을 먼저 제시) |
--json |
스타일이 적용된 텍스트 대신 메시지를 JSON으로 출력 |
--auto-approve <boolean> |
모든 도구에 대한 자동 승인 여부 (기본값 true; ACP 모드에서는 기본 false) |
-t, --timeout <seconds> |
제한 시간(초). 기본값 0은 무제한 |
-m, --model <model-id> |
현재 세션에서 선택한 프로바이더로 사용할 모델 |
-v, --verbose |
상세 출력 표시 |
-c, --cwd <path> |
작업 디렉토리 지정 |
--config <path> |
설정 디렉토리 (기본값 ~/.cline/data/settings) |
--data-dir <path> |
격리된 로컬 상태 디렉토리 사용 (기본값 ~/.cline) |
--thinking <level> |
추론 강도: none|low|medium|high|xhigh (기본값 medium) |
--retries <count> |
중단하기 전까지 허용할 최대 연속 실수(재시도) 횟수 |
--hooks-dir <path> |
런타임 훅 주입용 추가 디렉토리 (기본값 ~/.cline/hooks) |
--acp |
에디터 연동용 ACP(Agent Client Protocol) 모드로 실행 |
-i, --tui |
대화형 세션용 TUI(터미널 UI) 열기 |
--id <session-id> |
기존 세션 ID로 이어서 재개 |
-k, --key <api-key> |
이번 실행에 한해 API 키 오버라이드 |
-P, --provider <id> |
프로바이더 ID (기본값 cline) |
-s, --system <prompt> |
기본 시스템 프롬프트 오버라이드 |
-z, --zen |
백그라운드 허브에서 실행되는 세션으로 시작 |
-h, --help |
명령어 도움말 표시 |
6. 세부 명령어별 옵션
plugin — 플러그인 관리
cline plugin install <source> # 플러그인 설치
cline plugin i <source> # 축약형
# npm 패키지에서 설치
cline plugin install @org/postgres
# git 저장소에서 설치
cline plugin install https://github.com/cline/typescript-lsp-plugin.git
# 로컬 경로에서 설치
cline plugin install ./my-plugin
| 옵션 |
설명 |
--npm |
소스를 npm 패키지로 취급 |
--git |
소스를 git 저장소로 취급 |
--force |
동일 소스로 이미 설치된 항목을 덮어쓰기 |
--json |
결과를 JSON으로 출력 |
--cwd <path> |
전역 디렉토리 대신 <path>/.cline/plugins에 설치 |
connect — 메시징 플랫폼 연동
# Telegram 연결
cline connect telegram -k $BOT_TOKEN
# Slack 연결 (웹훅 방식)
cline connect slack --bot-token $SLACK_TOKEN --signing-secret $SECRET --base-url $URL
# Slack 연결 (소켓 모드)
cline connect slack --bot-token $SLACK_TOKEN --app-token $SLACK_APP_TOKEN
Slack, Discord, Telegram, Google Chat, WhatsApp, Linear 등을 지원하며, 각 대화 스레드가 하나의 독립된 에이전트 세션에 매핑됩니다.
schedule — 예약 작업
# 매일 평일 오전 9시에 PR 요약 실행
cline schedule create "PR summary" \
--cron "0 9 * * MON-FRI" \
--prompt "열려 있는 PR과 리뷰 상태를 모두 나열해줘" \
--workspace /path/to/repo
예약된 에이전트는 터미널 세션과 무관하게 재시작 후에도 유지되며, --delivery-adapter, --delivery-bot, --delivery-thread 옵션으로 결과를 특정 채팅 채널로 전달할 수 있습니다.
멀티 에이전트 / 워크트리 관련 플래그
# 여러 전문 에이전트를 조율하는 팀 세션 시작
cline --team-name release-prep "..."
# 작업별로 격리된 git worktree를 만들어 그 안에서 실행
cline --worktree "flat config로 마이그레이션"
--team-name으로 시작한 세션은 공유 작업 보드와 에이전트 간 메일박스, 재시작에도 유지되는 미션 로그를 갖습니다. --worktree는 병렬로 여러 에이전트를 돌릴 때 같은 브랜치에서 충돌하지 않도록 각 작업을 별도 git worktree(~/.cline/worktrees/ 하위)로 분리해줍니다.
7. 슬래시 명령어 (대화형 TUI 전용)
| 명령어 |
기능 |
/settings |
설정 화면 접근 |
/model |
사용 중인 모델 확인/변경 |
/account |
계정 정보 관리 |
/mcp |
MCP 설정 구성 |
/compact |
컴팩트 표시 모드 토글 |
/undo |
직전 작업 되돌리기 |
/clear |
대화 히스토리 초기화 |
/history |
대화 히스토리 보기 |
/help |
도움말 표시 |
/quit |
TUI 종료 |
키보드 단축키
| 단축키 |
기능 |
Tab |
Plan / Act 모드 전환 |
Shift + Tab |
모든 도구에 대한 auto-approve 토글 |
Ctrl + C |
진행 중인 턴 중단 (빈 입력 상태에서 다시 누르면 종료) |
Ctrl + D |
입력창이 비어 있고 유휴 상태일 때 종료 |
Ctrl + L |
채팅 화면/현재 대화 지우기 |
@ |
파일을 멘션해서 워크스페이스 컨텍스트로 첨부 (예: @./src/index.ts) |
Plan 모드
코드를 건드리기 전에 구조·구현 전략을 먼저 제시하고 검토받음. -p/--plan 또는 Tab으로 전환.
Act 모드 (기본값)
실제로 파일을 수정하고 명령을 실행하며 작업을 완료. 기본적으로 auto-approve가 켜져 있음.
8. 명령 실행 권한 제어
# 에이전트가 실행할 수 있는 셸 명령을 제한
export CLINE_COMMAND_PERMISSIONS='{"allow": ["npm *", "git *"], "deny": ["rm -rf *", "sudo *"]}'
| 필드 |
타입 |
설명 |
allow |
string[] |
허용할 명령의 glob 패턴. 설정되어 있으면 일치하는 명령만 허용 |
deny |
string[] |
차단할 명령의 glob 패턴. deny 규칙이 항상 우선 |
allowRedirects |
boolean |
셸 리다이렉트(>, >>, <) 허용 여부 (기본값 false) |
9. 환경 변수
| 변수 |
설명 |
CLINE_DATA_DIR |
설정 디렉토리 오버라이드 (기본값 ~/.cline/data/ 대체) |
CLINE_HUB_ADDRESS |
허브 주소 오버라이드 (기본값 127.0.0.1:25463) |
CLINE_SESSION_BACKEND_MODE |
백엔드 모드 강제 지정 (local, hub, remote, auto) |
CLINE_SANDBOX_DATA_DIR |
샌드박스 세션 저장 디렉토리 |
CLINE_SANDBOX |
샌드박스 모드 활성화 |
CLINE_HOOKS_DIR |
추가 훅 디렉토리 |
CLINE_BUILD_ENV |
development로 설정 시 디버그 기능 활성화 |
CLINE_DEBUG_PORT_BASE |
Node.js 인스펙터 기본 포트 |
CLINE_COMMAND_PERMISSIONS |
셸 명령 제한용 JSON 정책 (위 8번 항목 참고) |
10. 설정 파일 & 디렉토리 구조
~/.cline/
data/
settings/
providers.json # API 키 및 프로바이더 설정
rules/ # 전역 규칙
skills/ # 전역 스킬
teams/ # 팀 상태
sessions/ # 세션 DB (SQLite)
logs/
hub-daemon.log # 허브 로그
plugins/ # 전역 플러그인
_installed/ # `cline plugin install`로 관리됨
.cline/ # 프로젝트 루트
rules/ # 프로젝트 규칙
skills/ # 프로젝트 스킬
hooks/ # 라이프사이클 훅
plugins/ # 프로젝트 플러그인
mcp.json # MCP 서버 설정
agents.yaml # 에이전트 정의
11. JSON 출력 형식 (헤드리스/CI 연동용)
# --json 사용 시 각 메시지가 한 줄짜리 JSON 객체로 출력됨
cline --json "TODO 주석을 전부 나열해줘"
# {"type": "say", "text": "파일을 생성하겠습니다.", "ts": 1760501486669, "say": "text"}
# jq로 텍스트만 추출
cline --json "체인지로그를 요약해줘" | jq -r '.text'
| 필드 |
타입 |
설명 |
type |
"ask" | "say" |
메시지 카테고리 |
text |
string |
메시지 내용 |
ts |
number |
유닉스 타임스탬프(밀리초) |
say |
string |
type이 "say"일 때의 서브타입 |
ask |
string |
type이 "ask"일 때의 서브타입 |
reasoning |
string |
모델의 추론 내용 (있을 경우) |
partial |
boolean |
스트리밍 중이면 true |
12. CI/CD·자동화 연동 예시
# GitHub Actions 등에서 완전 자동으로 실행
cline --auto-approve true "린트 에러를 고치고 테스트를 통과시켜줘"
# 타임아웃을 걸어 무한 대기 방지
cline --timeout 600 "전체 테스트 스위트를 실행해줘"
# 커밋 diff를 파이프해서 자동 코드리뷰
git diff origin/main | cline --auto-approve true "이 변경사항의 이슈를 리뷰해줘"
# 훅 페이로드 처리 (라이프사이클 훅에서 호출)
cat payload.json | cline hook
--auto-approve의 기본값은 true이므로, 프롬프트만 전달해도 별도 확인 없이 도구가 실행됩니다. 대화형으로 승인을 하나씩 검토하고 싶다면 -i/--tui로 TUI를 열거나 --auto-approve false를 명시하세요. 삭제·배포처럼 되돌리기 어려운 작업이 섞인 워크플로에서는 CLINE_COMMAND_PERMISSIONS로 위험한 명령을 먼저 deny 처리하는 것을 권장합니다.
13. 유용한 조합 정리
| 상황 |
추천 명령/설정 |
| 처음 설치 후 프로바이더 연결 |
cline auth |
| API 키를 스크립트에서 비대화형으로 등록 |
cline auth --provider anthropic --apikey ... --modelid ... |
| 설계부터 하고 코드는 나중에 |
cline -p "..." 로 계획 확인 후 승인하고 실행 |
| CI/CD에서 완전 자동 실행 |
cline --auto-approve true --timeout 600 "..." |
| 백그라운드에 던져놓고 나중에 확인 |
cline --zen "..." |
| 여러 작업을 브랜치 충돌 없이 병렬 실행 |
cline --worktree "..." |
| 여러 전문 에이전트를 조율하는 큰 작업 |
cline --team-name ... "..." |
| Slack 등에서 원격으로 에이전트와 대화 |
cline connect slack --bot-token ... --app-token ... |
| 매일/매주 반복되는 리포트 자동화 |
cline schedule create "..." --cron "..." --prompt "..." |
| 설정이 꼬였을 때 |
cline doctor, cline config |
| Zed·Neovim·JetBrains 등 다른 에디터에서 사용 |
cline --acp |
마무리
Cline CLI는 VS Code 확장과 완전히 동일한 에이전트 코어를 공유한다는 점이 가장 큰 특징으로, 프로바이더·규칙·MCP 설정을 한 번만 해두면 터미널·에디터(ACP)·Slack 같은 메신저까지 그대로 이어집니다. 처음에는 cline auth로 원하는 인증 방식을 연결하고, 기본값인 Act 모드로 바로 시작하거나 -p로 Plan 모드를 거친 뒤, 자동화가 필요해지면 --auto-approve·--zen·schedule·CLINE_COMMAND_PERMISSIONS를 프로젝트 성격에 맞게 조합해가는 흐름을 추천합니다.