> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI 치트 시트

> 모든 vesslctl 명령어를 한눈에 확인하고 바로 복사해서 사용할 수 있는 예제를 알아봐요.

## 인증

| 명령어 | 설명 |
| - | - |
| `vesslctl auth login` | 브라우저 OAuth로 로그인(이메일/비밀번호로 폴백) |
| `vesslctl auth logout` | 로그아웃하고 저장된 자격 증명 삭제 |
| `vesslctl auth status` | 현재 인증된 사용자 표시 |

## 조직 & 팀

| 명령어 | 설명 |
| - | - |
| `vesslctl org list` | 소속된 조직 목록 조회 |
| `vesslctl org show` | 현재 조직의 상세 정보 표시 |
| `vesslctl org switch <name>` | 기본 조직 전환 |
| `vesslctl org create --name <name>` | 새 조직 생성 |
| `vesslctl team list` | 현재 조직의 팀 목록 조회 |
| `vesslctl team show` | 현재 팀의 상세 정보 표시 |
| `vesslctl team switch <name>` | 기본 팀 전환 |
| `vesslctl team create --name <name>` | 새 팀 생성 |

## 설정

| 명령어 | 설명 |
| - | - |
| `vesslctl config show` | 현재 CLI 설정 표시 |
| `vesslctl config set default_org <name>` | 기본 조직 설정 |
| `vesslctl config set default_team <name>` | 기본 팀 설정 |
| `vesslctl config set output_format <fmt>` | 기본 출력 형식 설정(`table`, `json`, `csv`) |

## Workspace

별칭: `vesslctl ws`

| 명령어 | 설명 |
| - | - |
| `vesslctl workspace list` | 현재 팀의 Workspace 목록 조회 |
| `vesslctl workspace show <slug>` | Workspace 상세 정보 및 상태 표시 |
| `vesslctl workspace create` | 새 Workspace 생성(아래 플래그 참조) |
| `vesslctl workspace ssh <slug>` | 실행 중인 Workspace에 SSH 접속 |
| `vesslctl workspace logs <slug>` | Workspace 로그 확인 |
| `vesslctl workspace metrics <slug>` | GPU/CPU/메모리 메트릭 요약 표시 |
| `vesslctl workspace pause <slug>` | Workspace 일시정지(환경 보존) |
| `vesslctl workspace start <slug>` | 일시정지된 Workspace 재시작 |
| `vesslctl workspace terminate <slug>` | Workspace 종료 및 삭제 |

**주요 create 플래그:**

```bash theme={null}
vesslctl workspace create \
  --name <name> \
  --cluster <cluster> \
  --resource-spec <spec> \
  --image <image> \
  --ssh-key <ssh-key-slug> \
  --port api:8000:http
```

<Tip>
  실행 중인 Workspace 안에서는 워크로드 토큰(`VESSLCTL_ACCESS_TOKEN`, `VESSLCTL_ORG`, `VESSLCTL_TEAM`)이 미리 세팅돼 있어요. JupyterLab 터미널에서 `vesslctl workspace list`나 `vesslctl job create` 같은 명령을 별도 인증 없이 그대로 사용할 수 있어요.
</Tip>

## SSH 키

| 명령어 | 설명 |
| - | - |
| `vesslctl ssh-key list` | 계정에 등록된 SSH 키 조회 |
| `vesslctl ssh-key add --name <name> --public-key-file <path>` | 파일에서 공개 키 등록 |
| `vesslctl ssh-key add --name <name> --generate` | 서버에서 키페어 생성(개인 키는 한 번만 출력) |
| `vesslctl ssh-key delete <ssh-key-slug>` | slug로 SSH 키 삭제(`-y`로 확인 프롬프트 건너뛰기) |

## Job

| 명령어 | 설명 |
| - | - |
| `vesslctl job list` | 현재 팀의 Job 목록 조회 |
| `vesslctl job show <slug>` | Job 상세 정보 및 상태 표시 |
| `vesslctl job create` | 새 배치 잡 제출(아래 플래그 참조) |
| `vesslctl job logs <slug>` | Job 출력 로그 확인 |
| `vesslctl job metrics <slug>` | GPU/CPU/메모리 메트릭 요약 표시 |
| `vesslctl job export <slug>` | Job 설정을 JSON으로 내보내기 |
| `vesslctl job terminate <slug>` | 실행 중인 Job 취소 |
| `vesslctl job tag attach <slug> <tag>` | Job에 태그 달기 |
| `vesslctl job tag detach <slug> <tag>` | Job에서 태그 해제 |

**주요 create 플래그:**

```bash theme={null}
vesslctl job create \
  --name <name> \
  --resource-spec <spec> \
  --image <image> \
  --cmd "<command>"
```

## 클러스터 & 리소스

| 명령어 | 설명 |
| - | - |
| `vesslctl cluster list` | 사용 가능한 클러스터 조회 |
| `vesslctl resource-spec list` | 리소스 스펙 조회(GPU/CPU 설정) |
| `vesslctl resource-spec list --cluster <slug>` | 특정 클러스터의 스펙 조회 |

## Storage & Volume

별칭: `vesslctl vol`

| 명령어 | 설명 |
| - | - |
| `vesslctl storage list` | 저장소 조회 |
| `vesslctl storage show <slug>` | 저장소 상세 정보 표시 |
| `vesslctl storage create` | Cluster storage 생성(`--name`, `--cluster`, `--capacity` 필수) |
| `vesslctl storage delete <slug>` | 저장소 삭제 |
| `vesslctl volume list` | Volume 조회 |
| `vesslctl volume show <slug>` | Volume 상세 정보 표시 |
| `vesslctl volume create --name <n> --storage <slug> --teams <team>` | 새 Volume 생성(`--name`, `--storage`, `--teams` 필수) |
| `vesslctl volume ls <slug> --prefix /` | Volume 내 파일 목록 조회(루트는 `/`) |
| `vesslctl volume token <slug>` | Volume의 임시 S3 자격 증명 받기 |
| `vesslctl volume upload <slug> <local_path>` | 로컬 파일을 Volume에 업로드 |
| `vesslctl volume download <slug> <local_path>` | Volume의 파일을 로컬에 다운로드 |
| `vesslctl volume update <slug>` | Volume 메타데이터 업데이트(`--name`, `--description`, `--teams` 중 하나 이상) |
| `vesslctl volume delete <slug>` | Volume 삭제 |

## 태그

| 명령어 | 설명 |
| - | - |
| `vesslctl tag list` | 현재 조직의 태그 조회 |
| `vesslctl tag create <value>` | 태그 생성(선택: `--color "#ff0000"`) |
| `vesslctl tag delete <value>` | 값으로 태그 삭제(또는 `-s <slug>`) |

## AI 스킬

| 명령어 | 설명 |
| - | - |
| `vesslctl skill install` | AI 코딩 에이전트용 스킬 설치 |
| `vesslctl skill show` | 번들된 스킬 내용 표시 |

## 유틸리티

| 명령어 | 설명 |
| - | - |
| `vesslctl update` | vesslctl을 최신 버전으로 업데이트(`-y`로 확인 프롬프트 건너뛰기) |
| `vesslctl version` | vesslctl 버전 출력 |
| `vesslctl install` | vesslctl을 PATH 디렉터리에 설치 |
| `vesslctl completion install` | 셸 자동 감지 후 자동완성 스크립트 설치 |
| `vesslctl completion bash\|zsh\|fish\|powershell` | 셸 자동완성 스크립트 수동 생성 |

***

## 주요 워크플로우

### 처음 설정

```bash theme={null}
# 설치
curl -fsSL https://api.cloud.vessl.ai/cli/install.sh | bash

# 인증
vesslctl auth login

# 기본값 설정
vesslctl config set default_org <your-org>
vesslctl config set default_team <your-team>

# 확인
vesslctl auth status
vesslctl config show
```

### Workspace 실행 및 접속

```bash theme={null}
vesslctl workspace create \
  --name dev-box \
  --cluster <cluster-name> \
  --resource-spec <spec-name> \
  --image pytorch/pytorch:2.3.0-cuda12.1-cudnn8-devel

# `vesslctl workspace list`에서 Workspace slug(예: dev-box-abc123)를 복사해요.
vesslctl workspace show <workspace-slug>    # "running" 상태가 될 때까지 대기
vesslctl workspace ssh <workspace-slug>     # 접속
vesslctl workspace pause <workspace-slug>   # 오늘은 여기까지
```

### 배치 잡 제출

```bash theme={null}
vesslctl job create \
  --name train-v2 \
  --resource-spec <spec-name> \
  --image pytorch/pytorch:2.3.0-cuda12.1-cudnn8-devel \
  --cmd "python train.py --epochs 50"

vesslctl job logs train-v2 --follow
```

### Object storage에 데이터 업로드

```bash theme={null}
# Volume 생성(--name, --storage, --teams 필수)
vesslctl volume create --name my-dataset --storage <storage-name> --teams <team>

# `vesslctl volume list`에서 Volume slug(예: my-dataset-abc123)를 복사해요.
vesslctl volume upload <volume-slug> ./data/

# 확인
vesslctl volume ls <volume-slug> --prefix /
```

S3 호환 도구(DVC, `aws s3 cp`, 커스텀 파이프라인 등)와 연동하려면 `vesslctl volume token <volume-slug>`으로 임시 S3 자격 증명과 엔드포인트 URL을 받아서 쓰면 돼요.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.