Skip to main content

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.

Applies to:
  • Plan -
  • Deployment -
Looking at the current article, I see the issue - it references Python scripts that don’t exist in the repository. Let me update the article to use actual Braintrust SDK commands that users can run directly.
---
title: Copy prompts, scorers, and datasets across projects
pylon_issue_id: '15549'
pylon_issue_uuid: '6807d9e1-31a4-4fc8-9714-5a68d60b633d'
assignee: "James Purcell"
'og:image': 'https://www.braintrust.dev/og?template=docs&title=Copy%20prompts%2C%20scorers%2C%20and%20datasets%20across%20projects'
---

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