CLI 명령 참조
전역 플래그이 플래그는 모든
tier0 명령에서 사용할 수 있습니다.--json원본 JSON 출력--debugHTTP 요청/응답 상세 출력기본 작업
tier0 doctor로컬 Tier0 CLI 연결 및 인증 진단
사용법
tier0 doctor참고
- 로컬 설정, OpenAPI 연결, API key 존재 여부와 API key 신원을 확인합니다.
예시
tier0 doctortier0 config설정 보기 또는 업데이트
사용법
tier0 config플래그
--base-url- 플랫폼 base URL 설정
--api-key- API key 설정(tier0 login 대체 가능)
--lang- 지원 중단된 호환성 플래그입니다. CLI 출력은 영어만 지원합니다
예시
tier0 configtier0 config --base-url https://tier0.devtier0 config --api-key sk-per-xxxxxxtier0 loginDevice Flow로 인증
사용법
tier0 login플래그
--no-wait- 인증 URL을 출력하고 폴링 없이 종료
--setup-code- 새로 만들지 않고 기존 setup code로 폴링
--base-url- 플랫폼 base URL 재정의
참고
--no-wait를 사용하지 않으면 CLI가 최대 10분 동안 5초마다 폴링합니다.--no-wait--json을 사용하면 CLI가verification_url,setup_code,expires_in을 반환합니다.
예시
tier0 logintier0 login --no-wait --jsontier0 login --setup-code <setup_code>tier0 apiAPI endpoint 직접 호출
사용법
tier0 api <endpoint>플래그
--body- 요청 본문 JSON 문자열
--body-file- 파일에서 요청 본문 읽기
--method- HTTP 메서드(GET|POST|PUT|DELETE)
--dry-run- 실행하지 않고 요청 미리보기
참고
--body와--body-file은 함께 사용할 수 없습니다.
예시
tier0 api /openapi/v1/uns/browse --body '{"path":"/"}'tier0 api /openapi/v1/uns/read --body '{"topics":["demo"]}'tier0 api /openapi/v1/uns/write --body-file body.jsontier0 upgradeCLI를 최신 버전으로 업그레이드
사용법
tier0 upgrade플래그
--dry-run- 설치하지 않고 업데이트 확인
-v, --version- 특정 버전으로 업그레이드(기본값: latest)
예시
tier0 upgradetier0 upgrade --dry-runtier0 uninstalltier0 CLI 제거
사용법
tier0 uninstall플래그
--purge- 설정 파일(자격 증명)도 삭제
--remove-skills- 감지된 AI agents에서도 Tier0 Skill 제거
--keep-skills- agent skills 유지(지원 중단됨. 현재는 기본 동작)
참고
- Agent Skills와 설정은 기본적으로 유지됩니다.
- CLI 제거 중에는 로컬 내장 skills 디렉터리가 삭제됩니다.
예시
tier0 uninstalltier0 uninstall --purgetier0 uninstall --remove-skillstier0 uninstall --purge --remove-skillstier0 version버전 표시
사용법
tier0 version예시
tier0 version스킬
tier0 skills install이 CLI에 내장된 Skill 설치 또는 복구
사용법
tier0 skills install플래그
--force- 활성 Skill을 내장 기준 버전으로 교체
--no-sync- 감지된 AI agents와 동기화하지 않고 로컬에만 설치
예시
tier0 skills installtier0 skills install --forcetier0 skills list설치된 skills 목록 표시별칭: ls
사용법
tier0 skills list예시
tier0 skills listtier0 skills updateskills를 최신 버전으로 업데이트별칭: upgrade
사용법
tier0 skills update플래그
--dry-run- 설치하지 않고 업데이트 확인
예시
tier0 skills updatetier0 skills update --dry-runtier0 skills versionskills 버전 정보 표시별칭: ver
사용법
tier0 skills version예시
tier0 skills versiontier0 skills status활성 Skill과 내장 Skill 상태 표시
사용법
tier0 skills status예시
tier0 skills statustier0 skills sync활성 Skill을 감지된 AI agents에 동기화
사용법
tier0 skills sync예시
tier0 skills sync인증
tier0 auth whoami현재 API key 신원 표시
사용법
tier0 auth whoami참고
- 사용자, workspace, key 이름, key 유형, 역할 및 권한을 표시합니다.
예시
tier0 auth whoamitier0 auth whoami --jsonUNS
tier0 uns browseUNS namespace 트리 탐색
사용법
tier0 uns browse플래그
-p, --path- UNS 트리에서 탐색할 경로
-d, --max-depth- 최대 재귀 깊이(0 = 무제한)
--include-metadata- 노드 메타데이터 포함
--include-leaf-value- 리프 노드 값 포함
예시
tier0 uns browsetier0 uns browse --path /devicestier0 uns browse --path / --max-depth 2tier0 uns searchUNS topics 검색
사용법
tier0 uns search플래그
-k, --keyword- 이름 키워드로 검색
--path-prefix- 경로 접두사로 필터링
--topic-type- topic type으로 필터링
--page- 페이지 번호
-l, --size- 페이지 크기(최대 결과 수)
--include-metadata- 노드 메타데이터 포함
--include-leaf-value- 리프 노드 값 포함
예시
tier0 uns search --keyword temptier0 uns search --path-prefix /devices --size 50tier0 uns search --keyword temp --include-metadatatier0 uns readUNS topics의 현재 값 읽기
사용법
tier0 uns read [topic...]tier0 uns read --topic <topic>플래그
-t, --topic- 읽을 topic 이름(반복 가능, 위치 인수도 허용)
--include-metadata- topic 메타데이터(topicType, fields, description) 포함
--include-leaf-value- 리프 노드 값 포함
참고
- 위치 인수 또는
--topic으로 최소 하나의 topic이 필요합니다.
예시
tier0 uns read demotier0 uns read --topic demotier0 uns read temp humiditytier0 uns read --topic sensor1 --include-metadatatier0 uns writeUNS topic에 값 쓰기
사용법
tier0 uns write플래그
-t, --topic- 쓸 대상 topic 이름(필수)
-v, --value- JSON 값 문자열(--file과 함께 사용할 수 없음)
-f, --file- 파일에서 값 읽기(--value와 함께 사용할 수 없음)
--qos- MQTT QoS 레벨(0/1/2)
--retain- MQTT retain 플래그 설정
--dry-run- 실행하지 않고 요청 미리보기
참고
--value와--file은 함께 사용할 수 없습니다.- 값은 topic fields와 일치하는 유효한 JSON object여야 합니다.
예시
tier0 uns write --topic demo --value '{"temp":25}'tier0 uns write --topic demo --file payload.jsontier0 uns write --topic sensor1 --value '{"on":true}' --qos 1 --retaintier0 uns historytopics의 이력 데이터 조회
사용법
tier0 uns history플래그
-t, --topic- topic 이름(반복 가능, 필수)
--start- 시작 시간: 상대값(-1h/-30m/-7d), ISO 8601 또는 'now'(필수)
--end- 종료 시간: 상대값, ISO 8601 또는 'now'(기본값: now)
--page- 페이지 번호
-l, --size- 페이지 크기(최대 데이터 포인트 수)
--interval- 집계 간격(예: 1m, 1h, 1d)
--fn- 집계 함수(avg/max/min/sum/count)
--field- 집계 필드 이름
예시
tier0 uns history -t demo --start -1htier0 uns history -t demo --start -24h --end now --fn avg --interval 1htier0 uns history -t demo --start 2026-01-01T00:00:00Z --end 2026-01-02T00:00:00Ztier0 uns createUNS namespace 노드 생성
사용법
tier0 uns create플래그
-t, --topic- topic 경로 또는 리프 이름(--file을 사용하지 않을 때 필수)
--parent- 상위 경로 접두사(선택 사항, --topic과 결합)
--type- 노드 유형: 'path'(폴더) 또는 'topic'(데이터 포인트)
-d, --display-name- 표시 이름
--description- 설명
--alias- 별칭
-f, --file- JSON 파일에서 namespace 정의 읽기({"namespace":[]} 또는 배열만)
--topic-type- 지원 중단: topic type은 이제 경로(리프 앞의 Metric/Action/State 폴더)에서 파생됩니다.
--fields- schema fields JSON 배열
--fields-file- 파일에서 schema fields JSON 배열 읽기
--dry-run- 실행하지 않고 요청 미리보기
참고
--file을 사용하지 않으면--topic과--type이 필요합니다.--fields와--fields-file은 함께 사용할 수 없습니다.- topic 노드에서는 리프 바로 앞 경로 세그먼트가 Metric, Action 또는 State여야 합니다.
예시
tier0 uns create --topic Plant/Line1/Metric/Temperature --type topictier0 uns create --parent Factory1/Line1/Station1 --topic Metric/ProductionCount --type topictier0 uns create --topic Plant/Line1 --type path --display-name 'Line 1'tier0 uns create --file namespace.jsontier0 uns updateUNS topic 메타데이터 업데이트
사용법
tier0 uns update플래그
-p, --path- 업데이트할 topic 경로(필수)
-n, --name- 새 이름
--alias- 새 별칭
--description- 새 설명
--clear-description- 빈 shell 인수에 의존하지 않고 설명 지우기
-d, --display-name- 새 표시 이름
--extend-properties- 확장 속성 JSON object
--fields- schema fields JSON 배열
--fields-file- 파일에서 schema fields JSON 배열 읽기
--update-mask- 업데이트할 필드(반복 가능, 예: name,description,fields)
--dry-run- 실행하지 않고 요청 미리보기
참고
--description과--clear-description은 함께 사용할 수 없습니다.--fields와--fields-file은 함께 사용할 수 없습니다.- 업데이트할 필드를 하나 이상 지정해야 합니다.
예시
tier0 uns update --path Plant/Line1/Metric/Temperature --display-name 'Line 1 Temp'tier0 uns update --path Plant/Line1 --description 'Production line 1' --update-mask descriptiontier0 uns update --path Plant/Line1/Metric/Temperature --fields '[{"name":"temp","type":"float","unit":"C"}]' --update-mask fieldstier0 uns deleteUNS 노드 삭제
사용법
tier0 uns delete플래그
-p, --path- 삭제할 노드 경로(반복 가능, 필수)
--hard- 하드 삭제(되돌릴 수 없음)
-y, --yes- 고위험 작업 확인(필수)
--dry-run- 실행하지 않고 요청 미리보기
참고
- 기본값은 소프트 삭제이며 복원할 수 있습니다.
--hard는 되돌릴 수 없습니다.--dry-run을 사용하지 않는 한 고위험 작업에는--yes가 필요합니다.
예시
tier0 uns delete --path factory/line1/sensor/temp --yestier0 uns delete --path factory/line1/sensor/temp --path factory/line1/sensor/humi --yestier0 uns delete --path factory/line1/sensor/temp --hard --yestier0 uns restore이력에서 topic 복원
사용법
tier0 uns restore플래그
-p, --path- 복원할 topic 경로(필수)
-y, --yes- 고위험 작업 확인(필수)
--dry-run- 실행하지 않고 요청 미리보기
참고
--dry-run을 사용하지 않는 한 고위험 작업에는--yes가 필요합니다.
예시
tier0 uns restore --path Plant/Line1/Metric/Temperature --yesNode-RED 플로우
tier0 flow listflows 목록 표시별칭: ls
사용법
tier0 flow list플래그
-k, --keyword- 이름 키워드로 필터링
-t, --type- 유형별 필터링(SourceFlow/EventFlow)
--source- SourceFlow만 표시
--event- EventFlow만 표시
참고
--source와--event는 함께 사용할 수 없습니다.--type은--source또는--event와 함께 사용할 수 없습니다.
예시
tier0 flow listtier0 flow list --source --jsontier0 flow getflow 상세 정보 가져오기
사용법
tier0 flow get --id <id>tier0 flow get <id>플래그
--id- Flow ID
참고
--id또는 위치 인수로 양수 Flow ID를 지정해야 합니다.
예시
tier0 flow get --id 1 --jsontier0 flow get 1 --jsontier0 flow create새 flow 생성
사용법
tier0 flow create플래그
-n, --name- Flow 이름(필수)
-t, --type- Flow 유형: SourceFlow | EventFlow(필수)
--source- 유형을 SourceFlow로 설정
--event- 유형을 EventFlow로 설정
--desc- 설명
--template- 초기 템플릿 JSON 문자열
--template-file- 파일에서 초기 템플릿 읽기
--dry-run- 실행하지 않고 요청 미리보기
참고
- Flow 유형을 선택하려면
--type,--source,--event중 정확히 하나만 사용해야 합니다. --template과--template-file은 함께 사용할 수 없습니다.
예시
tier0 flow create --name "modbus-collector" --source --desc "Modbus TCP collector"tier0 flow create --name "alert-handler" --event --desc "Temperature alarm processor"tier0 flow updateflow 메타데이터 업데이트
사용법
tier0 flow update --id <id>tier0 flow update <id>플래그
--id- Flow ID(필수)
-n, --name- 새 이름
--desc- 새 설명
--template- 새 템플릿 JSON 문자열
--template-file- 파일에서 새 템플릿 읽기
--favorite- 즐겨찾기로 표시
--unfavorite- 즐겨찾기에서 제거
--dry-run- 실행하지 않고 요청 미리보기
참고
--id또는 위치 인수로 양수 Flow ID를 지정해야 합니다.--template과--template-file은 함께 사용할 수 없습니다.--favorite과--unfavorite은 함께 사용할 수 없습니다.- 업데이트할 필드를 하나 이상 지정해야 합니다.
예시
tier0 flow update --id 1 --name "line1-collector"tier0 flow update --id 1 --favoritetier0 flow dataNode-RED canvas JSON 가져오기
사용법
tier0 flow data --id <id>tier0 flow data <id>플래그
--id- Flow ID
-o, --out- 출력을 파일에 저장
참고
--id또는 위치 인수로 양수 Flow ID를 지정해야 합니다.
예시
tier0 flow data --id 1 --out flows.jsontier0 flow deployNode-RED canvas JSON 배포
사용법
tier0 flow deploy --id <id>tier0 flow deploy <id>플래그
--id- Flow ID(필수)
--flows-json- Node-RED canvas JSON 문자열
-f, --flows-file- 파일에서 Node-RED canvas JSON 읽기(권장)
-y, --yes- 고위험 작업 확인(필수)
--dry-run- 실행하지 않고 요청 미리보기
참고
--id또는 위치 인수로 양수 Flow ID를 지정해야 합니다.--flows-json과--flows-file은 함께 사용할 수 없습니다.- 배포하면 해당 Flow의 기존 Node-RED 노드가 모두 교체됩니다.
--dry-run을 사용하지 않는 한 고위험 작업에는--yes가 필요합니다.
예시
tier0 flow deploy --id 1 -f flows.json --dry-run --jsontier0 flow deploy --id 1 -f flows.json --yestier0 flow deleteflow 삭제별칭: del, rm
사용법
tier0 flow delete --id <id>tier0 flow delete <id>[,<id>...]플래그
--id- 삭제할 Flow ID(반복 가능)
-y, --yes- 고위험 작업 확인(필수)
--dry-run- 실행하지 않고 요청 미리보기
참고
- 위치 인수에는 쉼표로 구분된 Flow ID가 포함될 수 있습니다.
- 삭제하면 Node-RED 컨테이너가 중지되며 되돌릴 수 없습니다.
--dry-run을 사용하지 않는 한 고위험 작업에는--yes가 필요합니다.
예시
tier0 flow delete --id 1 --yestier0 flow nodes사용 가능한 Node-RED 노드 유형 목록 표시
사용법
tier0 flow nodes [source|event]tier0 flow nodes --type <SourceFlow|EventFlow>tier0 flow nodes --sourcetier0 flow nodes --event플래그
-t, --type- Flow 유형(SourceFlow/EventFlow)
--source- SourceFlow 노드 표시
--event- EventFlow 노드 표시
참고
- 위치 인수 Flow 유형은 최대 하나만 허용됩니다.
--source와--event는 함께 사용할 수 없습니다.- 위치/유형 입력을
--source또는--event와 함께 사용하지 마세요.
예시
tier0 flow nodes source --jsontier0 flow nodes --source --jsontier0 flow nodes --event --json파일
tier0 assets uploadTier0 object storage에 파일 업로드
사용법
tier0 assets upload <local-file>플래그
--business- 비즈니스 장면
--use-by- 사용 범위: user|workspace|platform
--visibility- 가시성: public|private
--app-instance-id- AI 앱 인스턴스 ID
--session-id- AI 세션 ID
--multipart-size- 멀티파트 파트 크기(예: 10MB, 최소 5MB)
--concurrency- 멀티파트 업로드 동시성(병렬 파트 수)
--resume- 중단된 멀티파트 업로드 재개
--abort- 중단된 멀티파트 업로드를 중단하고 상태 정리
참고
- 로컬 파일 인수는 정확히 하나만 필요합니다.
- 100MB보다 큰 파일은 자동으로 멀티파트 업로드를 사용합니다.
- CLI는 엄격한 최대 파일 크기를 강제하지 않으며, 서버가 플랜/할당량 제한을 적용합니다.
예시
tier0 assets upload ./report.csvtier0 assets upload ./report.csv --visibility public --business attachmenttier0 assets upload ./report.csv --use-by workspace --visibility privatetier0 assets upload ./large-backup.tar.gztier0 assets upload ./large-backup.tar.gz --resumetier0 assets upload ./large-backup.tar.gz --aborttier0 assets upload ./large-backup.tar.gz --multipart-size 20MB --concurrency 8tier0 assets downloadTier0 object storage에서 파일 다운로드
사용법
tier0 assets download플래그
--file-path- 업로드에서 반환된 파일 경로
-o, --output- 출력 파일 경로(기본값: stdout)
--content-disposition- 사용자 지정 Content-Disposition
예시
tier0 assets download --file-path workspace/.../report.csv -o ./report.csvtier0 assets download --file-path workspace/.../report.csvtier0 assets urlTier0 object storage 파일 접근 URL 가져오기
사용법
tier0 assets url플래그
--file-path- 업로드에서 반환된 파일 경로
--expired-sec- 사전 서명 URL 만료 시간(초)
--content-disposition- 사용자 지정 Content-Disposition
예시
tier0 assets url --file-path workspace/.../report.csvtier0 assets url --file-path workspace/.../report.csv --expired-sec 300tier0 assets deleteTier0 object storage 파일 삭제
사용법
tier0 assets delete플래그
--file-path- 업로드에서 반환된 파일 경로
-y, --yes- 고위험 작업 확인(필수)
--dry-run- 실행하지 않고 요청 미리보기
참고
- 삭제는 되돌릴 수 없습니다.
--dry-run을 사용하지 않는 한 고위험 작업에는--yes가 필요합니다.
예시
tier0 assets delete --file-path workspace/.../report.csv --dry-run --jsontier0 assets delete --file-path workspace/.../report.csv --yes일치하는 CLI 명령이 없습니다.