Skip to main content
많은 CLI 명령이 이런 콘텐츠를 받음:
  • 민감한 것(API 키, 토큰, DB URL).
  • 큰 것(멀티라인 프롬프트, 마크다운 노트, JSON 페이로드).
  • 다른 프로세스에서 온 것(이전 명령의 출력).
CLI가 모든 서브커맨드에서 일관된 입력 문법을 지원.

입력 모드 셋

CLI가 시크릿·파일·파이프가 될 수 있는 값을 받는 곳에서 이렇게 인식:
  • ? 인터랙티브 프롬프트. 시크릿 필드는 가려서, 아니면 그대로 입력.
  • - stdin에서 한 줄 읽기. 파이프에 좋음.
  • @<path> 파일에서 읽기. 전체 파일 내용이 값이 됨.
  • 그 밖의 값 리터럴로 사용. 시크릿 필드면 셸 히스토리 경고.
예:

어느 필드가 어느 모드를 받나

시크릿이 아닌 필드 대부분(이름, 설명, 프롬프트)이 파일 입력에 @<path>를 받음. 시크릿에 민감한 필드(--api-key, --auth-value, 헤더 값, DB URL)도 가림 프롬프트에 ?, stdin에 -를 받음. 애매하면 <command> --help가 플래그마다 입력 계약을 표시.

다른 CLI에서 값 읽기

리터럴을 넘길 수 있는 곳이면 서브셸도 넘길 수 있음:

멀티라인 콘텐츠 넘기기

멀티라인이면 무엇이든 @file로. 프롬프트, 노트 본문, JSON 페이로드:
또는 heredoc + stdin:
주의: 모든 명령이 그 플래그에 -를 지원하는 건 아님. --help로 확인.

시크릿과 셸 히스토리

명령줄에 시크릿을 리터럴로 넘기면 셸 히스토리에 남음. 위험할 뿐 아니라 보안 정책 위반일 때가 많음. 증상:
해결:
CLI가 시크릿 모양 리터럴을 감지하면 경고하지만 거절하진 않음. 이유가 있으면 그냥 진행 가능.

nora 명령 사이 파이핑

많은 명령이 --json을 지원하므로 조합 가능:

jq로 복잡한 구조 읽기

--json 출력 대부분이 배열이나 객체. 흔한 패턴:

CI 용 환경변수

CLI가 auth와 워크스페이스 맥락용 env var를 읽음:
그다음 명령은:
명령줄에 자격증명이 없고, 디스크에 상태를 안 씀.

인용 룰

Bash와 zsh가 셸 값의 특수 문자를 다르게 처리. 값에 공백·$·!·#가 있으면:
보간이 많은 JSON 페이로드는 jq -c로 JSON 파일을 한 줄로 압축:

Exit 코드

CLI가 표준 Unix exit 코드를 따름:
  • 0 성공.
  • 1 일반 에러.
  • 2 오용(잘못된 플래그, 필수 인자 누락).
  • 4 인증 안 됨.
  • 8 권한 거부(auth는 됐지만 역할 부족).
  • 16 서버 에러(플랫폼의 5xx).
  • 64 명령 없음 또는 형식 잘못.
CI가 exit 코드로 막을 수 있음:

뭔가 안 될 때

  • 전체 요청/응답을 보려면 --verbose.
  • 워크스페이스와 토큰을 확인하려면 nora auth status.
  • 고정된 Flow 확인: nora flows current.
  • CI에서 exit 코드 echo: nora flows publish support; echo "Exit: $?".