- 민감한 것(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는 됐지만 역할 부족).16서버 에러(플랫폼의 5xx).64명령 없음 또는 형식 잘못.
뭔가 안 될 때
- 전체 요청/응답을 보려면
--verbose. - 워크스페이스와 토큰을 확인하려면
nora auth status. - 고정된 Flow 확인:
nora flows current. - CI에서 exit 코드 echo:
nora flows publish support; echo "Exit: $?".