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

# Copy prompts, scorers, and datasets across projects

export const plans_0 = "Any"

export const deployments_0 = "Any"

export const data_plane_version_0 = undefined

export const use_case_0 = "Use case - Copying or referencing prompts, scorers, and filtered dataset rows from one project to another (e.g., a shared project into a personal Playground project)"

<Note>
  **Applies to:**

  * Plan - {plans_0}
  * Deployment - {deployments_0}
  * {data_plane_version_0}
  * {use_case_0}
</Note>

## Summary

**Goal:** Copy or share prompts, scorers, and dataset records from one Braintrust project to another.

**Features:** Cross-project UI picker, Python SDK, dataset export/import, BTQL filtering.

## Configuration steps

### Step 1: Reference resources cross-project in the Playground UI

No copying required for read-only use. In the Playground, click **+ Task**, **+ Scorer**, or **Select a dataset**. Each dropdown includes an **Other projects...** option to reference resources from another project directly.

### Step 2: Copy a prompt to another project (editable local copy)

Use the Python SDK to duplicate a prompt:

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import braintrust

# Get the prompt from source project
source_client = braintrust.init(project="Source Project Name")
source_prompt = source_client.get_prompt("prompt-slug")

# Create copy in target project
target_client = braintrust.init(project="Target Project Name")
target_client.prompts.create(
    name=source_prompt.name,
    slug=source_prompt.slug + "-copy",  # Use different slug to avoid conflicts
    prompt_data=source_prompt.prompt_data,
    description=source_prompt.description,
)
```

### Step 3: Copy a scorer to another project (editable local copy)

Use the Python SDK to duplicate a scorer function:

```python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
import braintrust

# Get scorer function from source project
source_client = braintrust.init(project="Source Project Name")
scorer_functions = source_client.functions.list()
source_scorer = next(f for f in scorer_functions if f.slug == "scorer-slug")

# Create copy in target project
target_client = braintrust.init(project="Target Project Name")
target_client.functions.create(
    slug=source_scorer.slug + "-copy",
    name=source_scorer.name,
    function_data=source_scorer.function_data,
    function_type="scorer"
)
```

Alternatively, recreate the scorer manually in the destination project via the UI using the same configuration.

### Step 4: Export filtered dataset rows and import to target project

1. Open the source dataset in the UI.
2. Apply your BTQL filter.
3. Download the filtered subset using the export/download button.
4. In the target project, create or open a dataset and upload the downloaded file.

The **Add to dataset** picker in the UI also supports selecting a dataset in another project as the target directly.

## Notes

* Cross-project references (Step 1) share the resource — changes in the source project affect all references.
* Steps 2–3 create independent local copies that can be modified without affecting the source.
* Use different slugs when copying to avoid naming conflicts.
* Ensure you have appropriate permissions in both source and target projects.
