YAML Multi-Document Splitter

Split a multi-document YAML stream into separate documents you can copy, download or export as a ZIP.

Paste YAML above to split it into separate documents.

No uploads. Your files stay on your device.

Free forever, no sign-up, no cookies. Buy me a coffee

How it works

Paste a YAML stream and this tool splits it into its separate documents, following the document-marker rules in the YAML 1.2 specification (section 9): a line that is exactly --- at column 0 (the directives-end marker) starts a new document, and a line that is exactly ... at column 0 (the document-end marker) closes the current one. Because the spec forbids those markers from appearing at column 0 inside any scalar, a --- that sits indented inside a block scalar such as an embedded shell script is left alone instead of cutting your document in half. Content before the first marker is treated as a bare first document, and %YAML / %TAG directive lines stay attached to the document that follows them.

Every piece is then parsed with a full YAML parser so you can see at a glance which documents are valid and which are not, along with their line range, byte size and, for Kubernetes manifests, their kind and metadata.name โ€” which is also used to name the downloaded file. Copy a single document, download it as .yaml, or grab everything as a ZIP archive. All of it runs in JavaScript on your device, so manifests, CI pipelines and Compose files with tokens or internal hostnames never leave your browser.

Frequently asked questions

How do I split a multi-document YAML file?

Paste the whole stream into the box and the documents appear below it straight away, one card each with its line range, size and validity. Copy a single document, download it as a .yaml file, or use Download all (.zip) to get every document at once. Nothing is installed and no account is needed.

Will a --- inside a block scalar break the split?

No. The splitter follows section 9 of the YAML 1.2 specification, where a document marker is only recognised when --- or ... stands alone at column 0. An indented --- inside a block scalar, such as an embedded shell script or certificate, stays part of its document. %YAML and %TAG directive lines are kept with the document that follows them.

Are my Kubernetes manifests uploaded anywhere?

No. The splitting, parsing and ZIP packaging all happen in JavaScript inside your browser, so manifests with tokens, internal hostnames or cluster names never leave your device. Documents with a kind and metadata.name are even named after them, so a Deployment called api downloads as deployment-api.yaml.

Report a bug