> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# nora flows

> 터미널에서 Flow 관리 — 나열, 편집, 배포, 롤백.

`flows` 명령 그룹이 Flow 라이프사이클의 주요 핸들. 대부분 일상 CLI 작업이 이걸 통해 실행. `nora flows use <slug>` 로 활성 Flow 고정하면 모든 후속 명령이 그 Flow 기본.

## 명령

| 명령                                    | 설명                                   |
| ------------------------------------- | ------------------------------------ |
| `flows list`                          | 활성 워크스페이스의 모든 Flow 나열.               |
| `flows get <slug>`                    | 전체 Flow 페이로드 fetch.                  |
| `flows snapshot [slug]`               | 편집 가능 블록 + 엣지를 JSON 으로 인쇄.           |
| `flows apply <slug> <file>`           | JSON 파일에서 Flow 생성/upsert.            |
| `flows delete <slug>`                 | Flow 삭제.                             |
| `flows use <slug>`                    | 활성 Flow 고정.                          |
| `flows current`                       | 활성 Flow slug 인쇄.                     |
| `flows publish [slug]`                | Draft 를 라이브 버전으로 얼림.                 |
| `flows rollback <slug> <seq>`         | 라이브 포인터를 옛 버전으로 롤.                   |
| `flows versions list [slug]`          | 버전 나열.                               |
| `flows versions get <slug> <seq>`     | 한 버전 fetch.                          |
| `flows versions restore <slug> <seq>` | 옛 버전을 Draft 에 복사.                    |
| `flows settings get [slug]`           | [Flow 설정](/ko/cli/flow-settings) 참고. |
| `flows settings update [slug]`        | [Flow 설정](/ko/cli/flow-settings) 참고. |

## `flows list`

```bash theme={null}
nora flows list
```

활성 워크스페이스의 모든 Flow 를 slug, 이름, 마지막 배포 버전, 마지막 수정 시간과 표시.

기계 출력에 `--json` 추가 — Flow 당 한 줄.

## `flows get`

```bash theme={null}
nora flows get <slug>
```

전체 Flow 페이로드 인쇄: 블록, 와이어, 설정, 배포 상태, 타임스탬프. 항상 JSON.

흔한 용도:

* 위험 변경 전 Flow 백업: `nora flows get support > support-backup.json`.
* 특정 블록 검사: `nora flows get support | jq '.blocks[] | select(.id=="ag_1")'`.
* 두 워크스페이스 비교: `diff <(nora --workspace ws1 flows get x) <(nora --workspace ws2 flows get x)`.

## `flows snapshot`

```bash theme={null}
nora flows snapshot > my-flow.json
```

**편집 가능 페이로드** (블록과 엣지 — 설정이나 배포 상태 아님) 만 덤프. 이상적:

* Nora 밖에서 Flow git 추적.
* `jq` 나 `yq` 로 벌크 편집.
* 템플릿: 한 Flow 스냅샷, JSON 조정, 새 Flow 로 적용.

## `flows apply`

```bash theme={null}
nora flows apply <slug> my-flow.json
```

JSON 파일에서 Flow upsert. `<slug>` 가 없으면 생성됨. 업데이트에는 JSON 이 새 Draft 됨 — 별도 배포.

옵션 `--name "..."` 이 생성 시 표시 이름 설정.

전형 config-as-code 워크플로우:

```bash theme={null}
# git 의 정본
nora flows snapshot support > flows/support.json
git add flows/support.json && git commit -m "sync support flow"

# main 머지 시 CI 에서
nora flows apply support flows/support.json
nora flows publish support --note "$(git log -1 --pretty=%s)"
```

## `flows delete`

```bash theme={null}
nora flows delete <slug>
```

Flow 삭제. 배포된 버전이 ID 로 유예 기간 동안 접근 가능하지만 slug 는 즉시 해제.

`--yes` 안 넘기면 확인 필요. `--yes` 는 스크립트용 — 인터랙티브에 타이핑 전 생각.

## `flows use` 와 `flows current`

```bash theme={null}
nora flows use support-agent
nora flows current  # "support-agent" 인쇄
```

워크스페이스별 Flow 고정. Flow 에 기본하는 모든 명령 (`agents create`, `tools list`, `flows publish` 등) 이 고정된 slug 사용.

워크스페이스 전환? 고정이 따라옴 — 각 워크스페이스가 자체 고정 Flow 기억.

고정 변경 없이 한 명령만 오버라이드:

```bash theme={null}
nora --flow other-flow tools list
```

## 배포

```bash theme={null}
nora flows publish [slug] --note "release 2026-07-31 refund cleanup"
```

현재 Draft 를 새 버전으로 스냅샷하고 라이브 포인터 이동. Owner 와 Manager 만 배포 가능.

옵션 플래그:

* `--note <text>` — 릴리스 노트 (강력 권장; versions list 와 감사 트레일에 표시).
* `--author-label <text>` — 버전 카드에 표시. 계정 이름 기본.

사전 배포 서버 체크: 사이클 없음, 모든 입력 와이어링, 빈 프롬프트 없음, Draft ≠ 현재 배포 (no-op 배포 없음).

흔한 CI 레시피:

```bash theme={null}
nora flows apply support flows/support.json
nora flows publish support --note "$(git log -1 --pretty=%B | head -n1)"
```

## 롤백

```bash theme={null}
nora flows versions list <slug>
nora flows rollback <slug> <seq>
```

라이브 포인터를 옛 버전으로 롤. Draft 안 만짐. 즉시 — 재배포가 아닌 포인터 플립.

롤백 안전: 아무것도 잃지 않음. 언제든 새 버전으로 다시 롤 포워드 가능.

## 버전에서 Draft 복원

```bash theme={null}
nora flows versions restore <slug> <seq>
```

옛 버전 페이로드를 Draft 에 복사. 프로덕션 안 만짐. 옛 버전을 있는 그대로 출시 안 하고 *편집* 하고 싶을 때 사용.

흔한 경우: 출혈 멈추려 v14 로 롤백; v16 변경을 오프라인에서 수정하고 싶음. 스크래치 Flow 에 v16 을 Draft 로 복원, 손 편집, 다시 적용, 배포.

## 버전 메타데이터

```bash theme={null}
nora flows versions list <slug>          # 요약
nora flows versions get <slug> <seq>     # 전체 메타데이터 (페이로드 제외)
```

버전 이력이 배포, 롤백, 복원 커버. "누가 언제 뭐 배포했나" 재구성에 좋음.

구조화 출력에 `--json` 추가.

## 워크스페이스 간 작업

많은 명령이 호출별 `--workspace` 수용해 스크립트가 전환 없이 여러 워크스페이스에 액션 가능:

```bash theme={null}
for ws in acme-dev acme-staging acme-prod; do
  nora --workspace $ws flows list --json | jq -r '.[].slug'
done
```

<Note>
  빈 캔버스와 동일한 Flow 재배포는 서버 쪽 거부. 앱의 **Publish** 버튼과 같은 가드레일.
</Note>
