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.
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.