Prevu CLI
Prevu는 SSH로 접속하고, 포트를 노출하며, 공개 URL을 통해 접근할 수 있는 지속적인 Linux VM을 프로비저닝합니다. prevu CLI가 지원되는 인터페이스입니다(인프라 도구는 사용하지 않음).
이 스킬은 참조입니다: 설치, 명령어 맵, 출력 계약, 종료 코드 등을 다루며, 더 자세한 내용은 references/*.md에 있습니다. 다단계 사용자 워크플로(로컬 개발을 휴대폰에서 볼 수 있는 프리뷰로 미러링, WIP 브랜드 공유 등)의 경우 prevu-flows 스킬을 참고하세요. 사용자가 단일 명령어보다 시나리오를 설명할 때 이 스킬을 로드하세요.
설치 및 로그인
npm install -g @prevu/cli
prevu --version # 0.2.0+ (slug-only URL 및 env exec 필요)
prevu auth login # https://app.prevu.cloud/keys 에서 토큰을 붙여넣습니다.
Node >= 20이 필요합니다. 토큰은 ~/.prevu/config.json (모드 0600)에 저장됩니다.
CI / 비-TTY 환경:
export PREVU_TOKEN=prv_...
해결 순서: --token 플래그 -> PREVU_TOKEN 환경 변수 -> ~/.prevu/config.json.
PREVU_API_URL의 기본값은 https://app.prevu.cloud입니다. 자체 호스팅 Prevu API의 경우에만 --api-url로 재정의하세요.
명령어 맵
| 네임스페이스 | 명령어 | 자세한 내용 위치 |
|---|---|---|
| auth | login / logout / whoami | references/auth.md |
| env | list, get, create, destroy | references/env.md |
| env | wait | references/env.md + references/lifecycle.md |
| env | ssh, ssh-command, exec | references/env.md |
| env | urls | references/env.md |
| env | service start/list/logs/restart/stop | references/env.md |
| env | expose, unexpose | references/env.md |
| keys | list | references/keys.md |
prevu <namespace> --help를 실행하면 인라인 도움말을 볼 수 있습니다.
출력 계약 - 파싱할 때 항상 --format json 사용
기본 출력은 사람이 읽을 수 있는 테이블입니다. 스크립트 호출 시에는 항상 --format json 플래그를 사용하세요. 봉투(envelope)는 고정되어 있습니다:
// 성공
{ "data": { ... } }
// 실패
{ "error": { "type": "auth", "message": "...", "hint": "..." } }
NO_COLOR=1 또는 --no-color는 테이블 모드에서 ANSI를 제거합니다. JSON은 항상 색상이 없습니다.
종료 코드 (stderr 텍스트가 아닌 이 코드를 파싱하세요)
| 코드 | 유형 | 의미 |
|---|---|---|
| 0 | 성공 | 계속 진행 |
| 1 | 일반 | 출력 후 중단 |
| 2 | 사용법 | 잘못된 플래그 - 수정 후 재시도 |
| 3 | 인증 | 사용자에게 prevu auth login 실행 안내 |
| 4 | 찾을 수 없음 | 환경/키가 존재하지 않음 - 생성하거나 다른 것을 선택 |
| 5 | 충돌 | 이미 존재함 / 잘못된 상태 - 일반적으로 무해함 |
| 6 | 속도 제한 | 최소 30초 대기 후 재시도 |
| 7 | 서버 | 일시적 오류 - 한 번 재시도 |
| 8 | 시간 초과 | env wait 실행 시간 초과 - 대시보드 열기 |
일반적인 복구 예시:
prevu env get my-project --format json >/dev/null 2>&1
case $? in
0) ;; # 존재함
4) prevu env create my-project --format json ;;
3) echo "Run \`prevu auth login\`" >&2; exit 1 ;;
*) exit 1 ;;
esac
하드 규칙 - 절대 위반하지 마세요
- 환경은 지속형 유료 제품입니다. 의도적으로 재사용하며; TTL이나 세션 종료 시 자동으로 삭제하지 마세요.
- 프로젝트당 하나의 환경, 작업당이 아닙니다. 세션 간에 동일한 슬러그를 재사용하세요. 사용자가 동일한 작업 공간으로 돌아옵니다.
- 브라우저 프리뷰에는 HTTPS 노출을 사용하세요 (기본값). TCP 모드는 Postgres와 같은 비-HTTP 서비스용입니다.
- 공개 URL을 눈에 띄게 출력하세요. 사용자는 종종 휴대폰을 사용 중입니다. URL을 셸 출력에 묻지 마세요.
- 장기 실행 앱 프로세스에는
env service를 사용하세요.nohup, PID 파일, 광범위한pkill -f명령어를 직접 작성하지 마세요. - CLI/API만 지원되는 인터페이스입니다. '인프라 도구'를 시도하지 마세요.
언제 더 자세한 내용을 로드할지
references/auth.md- 로그인 흐름, 토큰 위치, 종료 코드 3 복구.references/env.md- 모든 env 하위 명령어, 입력, 예제, SSH 키 해결 규칙.references/keys.md- 저장된 SSH 키 모델, 중복 제거,--ssh-key-id가 입력을 줄이는 경우.references/lifecycle.md- 상태 머신,wait가 반환되는 시점, 파괴적 작업 안내.references/troubleshooting.md- 구체적인 실패 모드와 해결 방법.
이 스킬을 로드하지 말아야 할 때
- 순수 로컬 파일 편집 또는 읽기 전용 저장소 작업 - Prevu는 코드를 원격으로 실행하기 위한 것입니다.
- 프로덕션 배포 / CI - Prevu는 스테이징용입니다.
- 사용자가 명시적으로 "내 노트북에 남아 있어"라고 말한 경우.
워크플로 시나리오는 prevu-flows에 있습니다.
사용자가 내 개발 환경을 휴대폰에 미러링, 모바일에서 프리뷰 보기, 이 브랜치를 URL로 공유, 자리 비움, 코딩 계속을 요청하면 - 이 스킬 대신(또는 추가로) prevu-flows 스킬을 로드하세요. 해당 흐름은 여기의 명령어를 올바른 기본값과 함께 다단계 루프로 연결합니다.