# **Copy Processor**
## Overview
The **Copy Processor** (`copy`) duplicates one or more files from specified source paths to target paths without modification.
Useful for routing intermediate files, renaming outputs, or propagating cached artifacts.
Note that arbitrary inputs require matching outputs. The example uses "subject" and "metadata" but any names will do.
---
## Example Usage
```yaml
- processor:
processor: "copy"
step: "load_cache"
condition: "{exists:cache/subject.png}"
inputs:
subject: "cache/subject.png"
metadata: "input/metadata.json"
params:
overwrite: True
outputs:
subject: "mem/subject.png"
metadata: "mem/metadata.json"
```
---
## Inputs
| **Key** | **Required** | **Description** |
| ------- | -----------: | --------------------------------------- |
| `
` | **Yes** | Virtual filepath(s) of file(s) to copy. |
---
## Params
| **Key** | **Type** | **Required** | **Default** | **Description** |
| ----------- | --------: | -----------: | ----------: | --------------------------------------------------------------------------------------- |
| `overwrite` | `boolean` | | `True` | If `True`, overwrite existing target files; if `False`, skip copies when target exists. |
---
## Outputs
| **Key** | **Required** | **Description** |
| ------- | -----------: | -------------------------------------------------------------- |
| `` | **Yes** | Virtual filepath(s) where the corresponding inputs are copied. |