- 민감 (API 키, 토큰, DB URL).
- 큼 (멀티라인 프롬프트, 마크다운 노트, JSON 페이로드).
- 다른 프로세스에서 옴 (이전 명령의 출력).
세 입력 모드
CLI 가 시크릿·파일·파이프 될 수 있는 값 수용하는 곳에서 인식:?— 인터랙티브 프롬프트. 시크릿 필드는 마스킹 입력, 아니면 노출.-— stdin 에서 한 줄 읽기. 파이프 친화.@<path>— 파일에서 읽기. 전체 파일 콘텐츠가 값 됨.- 다른 어떤 값 — 리터럴로 사용, 시크릿 필드에 셸 히스토리 경고.
어느 필드가 어느 모드 수용
대부분 비시크릿 필드 (이름, 설명, 프롬프트) 가 파일 기반 입력에@<path> 수용. 시크릿 민감 필드 (--api-key, --auth-value, 헤더 값, DB URL) 도 마스킹 프롬프트에 ?, stdin 에 - 수용.
의심되면 <command> --help 가 각 플래그의 특정 입력 계약 표시.
다른 CLI 에서 값 읽기
리터럴 넘길 수 있는 곳 어디든 서브셸 넘길 수 있음:멀티라인 콘텐츠 넘김
멀티라인 어떤 것이든@file — 프롬프트, 노트 본문, JSON 페이로드:
- 지원하는 건 아님 — --help 가 확인.
시크릿과 셸 히스토리
명령줄에 리터럴로 시크릿 넘김이 셸 히스토리에 씀. 위험할 뿐 아니라 — 종종 보안 정책 위반. 증상:nora 명령 간 파이핑
많은 명령이--json 지원하므로 조합:
jq 로 복잡 구조 읽기
대부분--json 출력이 배열이나 객체. 흔한 패턴:
CI 용 환경변수
CLI 가 auth 와 워크스페이스 컨텍스트용 env var 읽음:인용 룰
Bash 와 zsh 가 셸 값의 특수 문자에 다르게 인용 처리. 값이 공백·$·!·# 담으면:
jq -c 로 JSON 파일을 한 줄로 압축:
Exit 코드
CLI 가 표준 Unix exit 코드 따름:0— 성공.1— 일반 에러.2— 오용 (나쁜 플래그, 누락 필수 인자).4— 인증 안 됨.8— 권한 거부 (auth OK 지만 역할 부족).16— 서버 에러 (플랫폼의 5xx).64— 명령 없음 또는 형식 잘못.
뭔가 작동 안 할 때
- 전체 요청/응답 보려고
--verbose켬. - 워크스페이스와 토큰 확인 위해
nora auth status. - 고정된 Flow 확인:
nora flows current. - CI 에서 exit 코드 echo:
nora flows publish support; echo "Exit: $?".