본문 바로가기
AI

Mistral Vibe 2.0 완벽 가이드 — 터미널 네이티브 AI 코딩 에이전트 마스터하기

by IsaacOth 2026. 2. 8.

1. Mistral Vibe란?

2026년 1월 27일, Mistral AI가 Vibe 2.0을 발표했다. Vibe는 터미널 네이티브 코딩 에이전트로, 자연어로 코드베이스를 탐색하고 수정할 수 있는 CLI 도구다. Claude Code, Cursor Agent, Windsurf와 경쟁하는 Mistral의 야심작이다.

핵심 가치

  • 터미널 네이티브: GUI 없이 터미널에서 모든 작업 수행
  • 오픈소스 기반: Apache 2.0 라이선스로 코어 공개
  • Devstral 2 모델: 코딩 특화 모델 패밀리로 구동
  • MCP 지원: Model Context Protocol로 외부 도구 연동
  • 에이전트 시스템: 커스텀 에이전트와 스킬로 확장

왜 Vibe인가?

특징 Vibe 2.0 Claude Code Cursor
인터페이스 터미널 (TUI) 터미널 GUI (IDE)
오픈소스 O (Apache 2.0) X X
로컬 실행 O O X
가격 (API) $0.40/M input $3/M input 구독제
MCP 지원 O O X

Vibe는 개발자 친화적인 터미널 환경합리적인 가격, 오픈소스 확장성을 동시에 제공한다.


2. Vibe 2.0 신기능 Deep Dive

2.0에서 추가된 핵심 기능들을 상세히 살펴본다.

2.1 Custom Subagents

특화된 작업을 수행하는 하위 에이전트를 정의할 수 있다.

사용 시나리오:

  • Deploy 스크립트 전문 에이전트
  • PR 리뷰 자동화 에이전트
  • 테스트 생성 전문 에이전트
  • 문서화 작업 에이전트

작동 방식:
메인 에이전트 -> task 도구 호출 -> Subagent 작업 수행 -> 결과 반환

Subagent는 독립적인 컨텍스트에서 실행되어 메인 에이전트의 토큰을 소비하지 않으면서도 복잡한 작업을 병렬로 처리할 수 있다.

2.2 Multi-choice Clarifications

기존 문제: 모호한 요청 시 AI가 추측해서 잘못된 방향으로 진행

Vibe 2.0 해결책: 여러 해석이 가능한 상황에서 사용자에게 선택지 제시

User: "이 함수를 최적화해줘"

Vibe: 어떤 방식으로 최적화할까요?
1. 실행 속도 개선 (알고리즘 변경)
2. 메모리 사용량 감소
3. 가독성/유지보수성 개선
4. 위 모두

선택: _

이 기능은 불필요한 재작업을 방지하고 사용자의 의도를 정확히 파악한다.

2.3 Slash-command Skills

/ 접두사로 특정 스킬을 즉시 호출할 수 있다.

내장 스킬 예시:

/deploy          # 배포 스크립트 실행
/lint            # 코드 린팅
/docs            # 문서 자동 생성
/test            # 테스트 생성
/review          # 코드 리뷰

커스텀 스킬 정의:

~/.vibe/skills/ 또는 프로젝트의 .vibe/skills/ 디렉토리에 SKILL.md 파일로 정의:

---
name: my-skill
description: 내 커스텀 스킬 설명
user-invocable: true
allowed-tools:
  - read_file
  - grep
  - bash
---

# 스킬 실행 시 따를 지침

이 스킬이 호출되면:
1. 먼저 프로젝트 구조를 파악한다
2. 관련 파일을 찾는다
3. 작업을 수행한다

2.4 Unified Agent Modes

도구, 권한, 동작을 조합한 커스텀 모드를 정의할 수 있다.

기본 제공 에이전트:

에이전트 특징 용도
default 모든 도구 승인 필요 안전한 기본값
plan 읽기 전용 탐색/계획만
accept-edits 파일 편집만 자동 승인 편집 작업 효율화
auto-approve 모든 도구 자동 승인 완전 자동화

커스텀 에이전트 정의:

~/.vibe/agents/custom.toml:

display_name = "Security Auditor"
safety = "safe"
auto_approve = false
enabled_tools = ["read_file", "grep", "search"]
disabled_tools = ["bash", "write_file"]

3. 설치 및 초기 설정

3.1 시스템 요구사항

  • Python: 3.12 이상
  • OS: macOS, Linux (Windows는 지원하지만 UNIX가 공식 타겟)
  • 터미널: 모던 터미널 에뮬레이터 권장 (iTerm2, Alacritty, Wezterm 등)

3.2 설치 방법

방법 1: 공식 설치 스크립트 (권장)

curl -LsSf https://mistral.ai/vibe/install.sh | bash

이 스크립트는:

  • Python 버전 확인
  • vibe 바이너리 다운로드
  • PATH에 추가
  • 쉘 설정 업데이트

방법 2: uv 패키지 매니저

# uv가 없다면 먼저 설치
curl -LsSf https://astral.sh/uv/install.sh | sh

# vibe 설치
uv tool install mistral-vibe

방법 3: pipx (Python 도구 관리자)

pipx install mistral-vibe

3.3 설치 확인

vibe --version
# 출력: mistral-vibe 2.0.1 (2026-01-27)

3.4 최초 실행 및 설정

프로젝트 디렉토리로 이동 후 vibe 실행:

cd ~/my-project
vibe

최초 실행 시 설정 마법사:

  1. 테마 선택: 라이트/다크/시스템
  2. API 키 입력: Mistral API 키 또는 다른 프로바이더
  3. 기본 모델 선택: Devstral 2, Devstral 2 Small 등
  4. 안전 모드 설정: default, auto-approve 등

설정 파일 위치:

  • 전역 설정: ~/.vibe/config.toml
  • 프로젝트별 설정: ./.vibe/config.toml
  • API 키: ~/.vibe/.env

4. 기본 사용법 마스터하기

4.1 인터랙티브 모드

vibe

터미널에서 대화형 인터페이스가 열린다. 자연어로 요청하면 된다:

> 이 프로젝트의 구조를 설명해줘

Vibe: 프로젝트 구조를 분석하겠습니다...
[read_file 실행 중: package.json]
[read_file 실행 중: src/index.ts]

이 프로젝트는 TypeScript로 작성된 Express.js 백엔드입니다.
주요 구조:
- src/: 소스 코드
- src/routes/: API 라우트
- src/models/: 데이터 모델
- tests/: 테스트 파일
...

4.2 핵심 단축키

단축키 기능
Ctrl+J / Shift+Enter 줄바꿈 (멀티라인 입력)
Ctrl+G 외부 에디터로 편집
Ctrl+O 도구 출력 토글 (상세/요약)
Ctrl+T Todo 뷰 토글
Shift+Tab 자동 승인 모드 토글
Ctrl+C 현재 작업 중단
Ctrl+D 세션 종료

4.3 특수 구문

@ 파일 참조:

> @src/utils/auth.ts 이 파일의 validateToken 함수를 분석해줘

! 쉘 명령어:

> !git status
> !npm test

/ 슬래시 커맨드:

> /lint src/
> /test auth.ts

4.4 도구 승인 워크플로우

Vibe는 기본적으로 파일 수정이나 쉘 명령 실행 전 승인을 요청한다:

Vibe: 다음 파일을 수정하려고 합니다:
      src/auth.ts (라인 45-60)

[a] 승인  [e] 편집  [r] 거부  [s] 모두 승인: _
  • a (approve): 이 작업만 승인
  • e (edit): 수정 내용을 편집 후 승인
  • r (reject): 거부하고 다른 방법 시도 요청
  • s (skip asking): 이후 유사 작업 모두 자동 승인

5. 고급 설정

5.1 config.toml 완전 가이드

~/.vibe/config.toml 예시:

# 활성 모델
active_model = "devstral-2"

# 테마 설정
theme = "dark"

# 자동 업데이트
auto_update = true

# 기본 에이전트
default_agent = "default"

# 토큰 제한
max_tokens = 8192

# 온도 (창의성)
temperature = 0.3

# 타임아웃 (초)
timeout = 300

# 히스토리 저장
save_history = true
history_dir = "~/.vibe/history"

5.2 커스텀 프로바이더 설정

Mistral 외에 OpenRouter, Anthropic 등 다른 프로바이더 사용:

# OpenRouter 프로바이더
[[providers]]
name = "openrouter"
api_base = "https://openrouter.ai/api/v1"
api_key_env_var = "OPENROUTER_API_KEY"
api_style = "openai"
backend = "generic"

# OpenRouter의 모델 정의
[[models]]
name = "anthropic/claude-3.5-sonnet"
provider = "openrouter"
alias = "claude-sonnet"

[[models]]
name = "google/gemini-pro-1.5"
provider = "openrouter"
alias = "gemini"

# Ollama 로컬 프로바이더
[[providers]]
name = "ollama"
api_base = "http://localhost:11434/v1"
api_style = "openai"
backend = "generic"

[[models]]
name = "codellama:34b"
provider = "ollama"
alias = "codellama-local"

5.3 MCP 서버 연동

Model Context Protocol로 외부 도구를 연결한다:

# 웹 페이지 가져오기
[[mcp_servers]]
name = "fetch"
transport = "stdio"
command = "uvx"
args = ["mcp-server-fetch"]

# 파일시스템 확장
[[mcp_servers]]
name = "filesystem"
transport = "stdio"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]

# GitHub 연동
[[mcp_servers]]
name = "github"
transport = "stdio"
command = "uvx"
args = ["mcp-server-github"]
env = { GITHUB_TOKEN = "ghp_..." }

# Slack 연동
[[mcp_servers]]
name = "slack"
transport = "stdio"
command = "npx"
args = ["-y", "@anthropic/mcp-server-slack"]

6. 에이전트와 스킬 시스템

6.1 기본 에이전트 상세

default 에이전트:

  • 모든 도구 사용 가능
  • 각 도구 실행 전 승인 필요
  • 가장 안전한 모드

plan 에이전트:

  • read_file, grep, search만 허용
  • 쓰기/실행 도구 차단
  • 코드베이스 탐색 및 계획 수립용

accept-edits 에이전트:

  • 파일 편집(write_file, search_replace)만 자동 승인
  • bash, 삭제 등은 여전히 승인 필요
  • 리팩토링 작업에 적합

auto-approve 에이전트:

  • 모든 도구 자동 승인
  • 주의: 신뢰할 수 있는 작업에만 사용
  • 배치 작업, CI/CD 연동에 적합

6.2 커스텀 에이전트 만들기

~/.vibe/agents/security-auditor.toml:

display_name = "Security Auditor"
description = "보안 취약점을 찾는 전문 에이전트"

# 안전 수준: safe, neutral, destructive, yolo
safety = "safe"

# 자동 승인 비활성화 (보안 에이전트라 신중히)
auto_approve = false

# 허용된 도구만 명시
enabled_tools = [
    "read_file",
    "grep",
    "search",
    "web_search"
]

# 명시적 차단
disabled_tools = [
    "bash",
    "write_file",
    "delete_file"
]

# 시스템 프롬프트 추가
system_prompt = """
You are a security auditor. Your job is to:
1. Find potential security vulnerabilities
2. Check for common security anti-patterns
3. Review authentication and authorization code
4. Look for hardcoded secrets or credentials
5. Identify SQL injection, XSS, and other attack vectors

Never suggest changes directly. Always report findings in a structured format.
"""

사용 방법:

vibe --agent security-auditor

6.3 스킬 정의하기

~/.vibe/skills/deploy/SKILL.md:

---
name: deploy
description: 프로덕션 배포를 수행합니다
user-invocable: true
allowed-tools:
  - read_file
  - bash
  - grep
---

# Deploy Skill

이 스킬은 프로덕션 배포를 수행합니다.

## 사전 조건 확인

1. 먼저 현재 브랜치가 main인지 확인합니다
2. 커밋되지 않은 변경사항이 없는지 확인합니다
3. 테스트가 모두 통과하는지 확인합니다

## 배포 절차

1. npm run build 실행
2. 빌드 결과물 확인
3. deploy.sh 스크립트 실행
4. 배포 성공 여부 확인

## 롤백 절차

배포 실패 시:
1. 이전 버전 태그 확인
2. rollback.sh 실행
3. 상태 모니터링

호출:

> /deploy

Vibe: Deploy 스킬을 시작합니다.
      현재 브랜치 확인 중...

7. 프로그래매틱 사용

7.1 CLI 배치 모드

비대화형으로 단일 작업 실행:

# 단일 프롬프트 실행
vibe --prompt "이 프로젝트의 README를 생성해줘"

# 최대 턴 수 제한
vibe --prompt "버그를 찾아서 수정해줘" --max-turns 10

# 비용 제한
vibe --prompt "전체 테스트 생성" --max-price 5.0

# 출력 형식 지정
vibe --prompt "분석해줘" --output json
vibe --prompt "분석해줘" --output text
vibe --prompt "분석해줘" --output streaming

# 특정 도구만 활성화
vibe --prompt "코드 분석" --enabled-tools read_file,grep,search

7.2 세션 관리

# 마지막 세션 이어서 작업
vibe --continue

# 특정 세션 재개
vibe --resume SESSION_ID

# 세션 목록 확인
vibe sessions list

# 세션 내보내기
vibe sessions export SESSION_ID --format markdown > session.md

7.3 CI/CD 통합 예시

GitHub Actions에서 Vibe 사용:

name: Auto Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Vibe
        run: curl -LsSf https://mistral.ai/vibe/install.sh | bash

      - name: Run Code Review
        env:
          MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
        run: |
          vibe --agent plan \
               --prompt "PR의 변경사항을 리뷰하고 개선점을 제안해줘" \
               --max-turns 5 \
               --output json > review.json

      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const review = require('./review.json');
            github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.issue.number,
              body: review.output
            });

8. 실전 워크플로우

8.1 새 기능 개발

> 사용자 인증 기능을 추가하고 싶어. JWT 기반으로.

Vibe: JWT 기반 인증 기능을 구현하겠습니다.

먼저 현재 프로젝트 구조를 파악하겠습니다...
[read_file: package.json]

필요한 패키지를 설치할까요?
1. jsonwebtoken
2. bcryptjs
3. express-jwt

[a] 승인: a

[bash 실행: npm install jsonwebtoken bcryptjs]

다음 파일들을 생성하겠습니다:
- src/middleware/auth.ts
- src/routes/auth.ts
- src/models/User.ts

[a] 승인: a
...

8.2 레거시 코드 리팩토링

> @src/legacy/old-api.js 이 파일을 TypeScript로 마이그레이션해줘

Vibe: old-api.js 분석 중...

이 파일은:
- 콜백 기반 비동기 코드
- any 타입이 많이 필요할 예정
- 500줄 정도

마이그레이션 방식을 선택해주세요:
1. 점진적 마이그레이션 (기존 파일 유지, .ts 파일 추가)
2. 전체 교체 (기존 파일을 .ts로 변환)
3. 새 구조로 재작성 (모던 패턴 적용)

선택: _

8.3 버그 디버깅

> npm test 실행하면 auth.test.ts에서 실패해. 원인 찾아줘.

Vibe: 테스트 실패 원인을 조사하겠습니다.

[bash 실행: npm test -- --verbose]
[read_file: src/auth.ts]
[read_file: tests/auth.test.ts]

원인을 찾았습니다:
- auth.ts 라인 45에서 토큰 만료 시간을 잘못 계산하고 있습니다
- 현재: Date.now() (밀리초)
- 예상: Math.floor(Date.now() / 1000) (초)

수정할까요? [a/r]: _

9. 가격 및 플랜

9.1 Le Chat 플랜 (웹 + Vibe 통합)

플랜 가격 특징
Free $0 제한된 사용량
Pro $14.99/월 무제한 대화, Vibe 포함
Pro (학생) $7.49/월 학생 50% 할인
Team $24.99/시트/월 팀 협업 기능

9.2 API 직접 사용 가격

모델 Input Output
Devstral 2 $0.40/M tokens $2.00/M tokens
Devstral 2 Small $0.10/M tokens $0.30/M tokens

Experiment 플랜: 현재 Devstral 2는 무료 실험 중

9.3 비용 추정

일반적인 개발 세션 (1시간 작업 기준):

  • 평균 Input: ~50K tokens
  • 평균 Output: ~20K tokens
  • Devstral 2 비용: 약 $0.06/시간
  • 하루 8시간: 약 $0.48/일
  • 월 20일: 약 $9.60/월

Le Chat Pro ($14.99/월)와 비교하면, 중간 수준 사용자는 Pro 플랜이 더 경제적이다.


10. 경쟁 서비스 비교

10.1 vs Claude Code

항목 Vibe 2.0 Claude Code
모델 Devstral 2 (코딩 특화) Claude 3.5/4 (범용)
가격 $0.40/M input $3/M input
오픈소스 O X
컨텍스트 128K 200K
강점 가격, 확장성 추론 능력, 안정성

10.2 vs Cursor

항목 Vibe 2.0 Cursor
인터페이스 터미널 (TUI) GUI (IDE)
설치 CLI 설치 데스크톱 앱
커스터마이징 높음 (config, agents) 중간
가격 API 기반 $20/월 구독
강점 가벼움, 유연성 통합 IDE 경험

10.3 선택 가이드

Vibe를 선택하세요 if:

  • 터미널 중심 워크플로우 선호
  • 비용 효율성 중요
  • 커스텀 에이전트/스킬 필요
  • 오픈소스 확장성 원함

Claude Code를 선택하세요 if:

  • 복잡한 추론 작업 많음
  • 최고 수준의 코드 품질 필요
  • 대규모 컨텍스트 필요

Cursor를 선택하세요 if:

  • IDE 통합 경험 선호
  • GUI 기반 작업 선호
  • 팀 협업 기능 필요

11. 팁과 Best Practices

11.1 효율적인 프롬프트 작성

Good:

> @src/auth.ts의 validateToken 함수에서 만료 시간 계산 버그를 수정해줘.
> 현재 밀리초를 반환하는데, JWT 표준인 초 단위로 변경해야 해.

Bad:

> 버그 고쳐줘

팁:

  • 구체적인 파일/함수 언급
  • 현재 상태와 원하는 상태 명시
  • 컨텍스트 제공

11.2 컨텍스트 관리

# 대화 초기에 프로젝트 설명
> 이 프로젝트는 Express.js 백엔드야. TypeScript 사용하고, 
> PostgreSQL 데이터베이스를 Prisma ORM으로 연결해.
> 이후 작업에서 이 컨텍스트를 기억해줘.

# 관련 파일 미리 참조
> @prisma/schema.prisma @src/models/User.ts 이 스키마를 기반으로...

11.3 안전한 사용

  1. production에서는 plan 에이전트로 시작: 먼저 읽기 전용으로 탐색
  2. auto-approve는 신뢰할 수 있는 작업에만: 배치 작업, 잘 정의된 스킬
  3. Git 상태 확인: 커밋하지 않은 변경사항은 백업
  4. 비용 제한 설정: --max-price로 예산 통제

11.4 디버깅

# 상세 로그 활성화
vibe --verbose

# 도구 호출 로그 확인
vibe --debug-tools

# 특정 도구 테스트
vibe --prompt "test" --enabled-tools bash --dry-run

12. 문제 해결 (Troubleshooting)

12.1 설치 문제

문제: Python 버전 오류

Error: Python 3.12+ required, found 3.10

해결:

# pyenv로 Python 3.12 설치
pyenv install 3.12
pyenv global 3.12

# 또는 uv 사용 (자체 Python 관리)
uv tool install mistral-vibe

문제: PATH 문제

# 쉘 설정 새로고침
source ~/.zshrc  # 또는 ~/.bashrc

# 수동 PATH 추가
export PATH="$HOME/.local/bin:$PATH"

12.2 API 연결 문제

문제: API 키 인식 안됨

Error: MISTRAL_API_KEY not found

해결:

# 환경 변수 설정
export MISTRAL_API_KEY="your-key"

# 또는 .env 파일
echo "MISTRAL_API_KEY=your-key" >> ~/.vibe/.env

문제: Rate Limit

Error: 429 Too Many Requests

해결:

  • 잠시 대기 후 재시도
  • 더 작은 모델 (Devstral 2 Small) 사용
  • Pro 플랜 업그레이드

12.3 성능 문제

문제: 느린 응답

해결:

# config.toml에서 스트리밍 활성화
streaming = true

# 더 작은 모델 사용
active_model = "devstral-2-small"

# 컨텍스트 크기 제한
max_context_tokens = 32000

TL;DR

  • Mistral Vibe 2.0은 터미널 네이티브 AI 코딩 에이전트로, Devstral 2 모델 기반
  • 신기능: Custom Subagents, Multi-choice Clarifications, Slash-command Skills, Unified Agent Modes
  • 설치: curl -LsSf https://mistral.ai/vibe/install.sh | bash 한 줄로 완료
  • 핵심 단축키: @파일참조, /슬래시커맨드, !쉘명령, Shift+Tab(자동승인)
  • 에이전트 시스템: default(안전), plan(읽기전용), accept-edits(편집자동), auto-approve(완전자동)
  • 스킬: ~/.vibe/skills/에 SKILL.md로 정의, /로 호출
  • 가격: Devstral 2 API $0.40/M input, Le Chat Pro $14.99/월
  • 경쟁력: 오픈소스, 저렴한 가격, 높은 커스터마이징, MCP 지원

참고 링크