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

# Manage Projects

> Rename, copy, fork, merge, transfer, export, and archive Domino Projects.

## Overview

Once a Project exists, you manage it through a handful of lifecycle operations: rename it, duplicate it (copy or fork), merge a fork's changes back, transfer it to a new owner, share its content with other Projects, and archive it when the work is done.

## How it works

* **Copying** creates an independent duplicate. What gets copied depends on the [Project type](/cloud/platform-capabilities/core-concepts/projects/index#project-types): DFS Projects copy through the UI in one step, while Git-based Projects support deep and reference copies.
* **Forking** (DFS Projects) creates a separate Project whose changes can be reviewed and merged back into the original, so many contributors can work independently.
* Only the Project **owner** can rename, transfer, or archive a Project. See the [permission tables](/cloud/platform-capabilities/core-concepts/projects/collaborate-on-projects#collaborator-permissions).

<Note>
  **Best practice:** Before starting from scratch, copy or fork an existing Project; it's faster and keeps setups consistent across the team. Rename the copy, and invite the original owner as a contributor for guidance.
</Note>

## Rename a Project

Renaming is quick but can't be undone, and it has consequences: the Project's endpoints are automatically unpublished and get new URLs when re-published, and local copies must be cloned again because their metadata points at the old name.

1. Go to **Settings** > **Access & Sharing** and enter a new name. Domino checks that the name isn't already in use.
2. Read the warning Domino shows. If any of the consequences are unacceptable, click **Cancel**.
3. Click **Rename Project**. You can keep working in the Project immediately.

## Copy a DFS Project

Copying a DFS Project creates a duplicate under your account with the same files and [restricted Project status](/cloud/admin/platform-configuration/manage-compute-environments/restricted-environments#restricted-projects). The copy does not include Project settings, run history, or scheduled Jobs.

1. Open the Project's **Overview** page and click the copy icon.
2. Enter a name for the new Project and click **Copy**.

## Copy a Git-based Project

Copying a Git-based Project bootstraps new work from a well-organized original. Two copy modes cover different needs:

* **Deep copy** creates an independent copy of the original repository. Use it to build a new Project from an existing one. Available from the UI or the API.
* **Reference copy** points the new Project at the same main Git repository, so changes in one Project appear in all referenced Projects. Use it when parallel Projects rely on one shared repository, a common pattern for statistical analysis in pharmaceutical work. Available only through the API.

What a copy includes:

|                       | Copied                                                                                            | Not copied                                                         |
| --------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| **Project overview**  | Tags, description, and README                                                                     |                                                                    |
| **Project materials** | Files, artifacts, code, Datasets and imported Git repositories, imported Projects                 | External data sources, audit data, run history, discussion history |
| **Project settings**  | Environment variables, Hardware Tier, Environment, results, exports, integrations, and visibility | Access and sharing                                                 |
| **Other**             |                                                                                                   | Published Apps, Domino endpoints, and Launchers                    |

To create a deep copy from the UI:

1. Open the Git-based Project and click **Copy**.
2. Enter a name for the new Project, then click **Next**.
3. Enter your Git credentials, then click **Copy**.

To create a copy from the API, POST to the `copy-project` endpoint with either a `deepCopy` or `referenceCopy` spec:

```python theme={null}
import json
import requests

project_id = 'asdf1234'
code_repo_credential_id = 'asdf123'
url = f'https://host.com/api/projects/v1/projects/{project_id}/copy-project'
body = {
    'name': 'my_new_project',
    'visibility': 'private',
    'copyDatasets': True,
    'gitCodeRepoSpec': {
        'credentialId': code_repo_credential_id,
        # Deep copy: an independent new repository.
        'deepCopy': {
            'visibility': 'private',
            'newRepoName': 'new_git_repo',
            'newRepoOwnerName': 'git_user'
        }
        # Reference copy instead: share the original repository.
        # 'referenceCopy': {'mainRepoUrl': 'https://github.com/user/repo.git'}
    }
}
headers = {
    'X-Domino-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}
requests.post(url, data=json.dumps(body), headers=headers)
```

Limitations and requirements:

* Only GitHub, GitHub Enterprise, GitLab, and GitLab Enterprise are supported. Bitbucket and other providers are not.
* SSH credentials are not supported; use a personal access token with repository read and write permissions.
* The GitHub repository you copy must be a [template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository).
* Collaborators on the parent Project are not copied.
* Datasets are copied only through the API with `copyDatasets: True`. A Dataset being copied is locked in a "copying" state; if you see the error `One or more of the datasets in this project are already being copied elsewhere`, the new Project was not created. Wait for the in-flight copy to finish and retry the same API call.

## Fork a DFS Project

Forking copies a Project's files into a new, separate Project for independent development. Changes in the fork can later be reviewed and merged back into the original. You must be the owner, a contributor, or a results consumer to fork a Project.

1. Open the Project overview and click **Fork**.
2. Enter a name for the fork.

The fork includes all files with their revision history, environment variables, Launchers, and restricted Project status. It does not include run history, Project settings (collaborators, Environment), or discussion history. Projects involved in a fork link to their related forks on the overview page.

### Merge a fork back

After making changes in the fork, click **Request Review** on its overview page (owner or contributor required). Review the changes and describe them in a message; contributors on the main-line Project are notified.

When a contributor accepts the review, Domino merges the changes and writes a new revision of the main-line Project. Click **Reviews** in the navigation pane to see the history and status of review requests.

## Transfer Project ownership

You can transfer any Project you own to another user or [organization](/cloud/platform-capabilities/features/collaboration/manage-organizations), for example to promote a private scratch Project into a shared team Project. Go to **Settings** > **Archive Project or Transfer Ownership**, click **Transfer Ownership**, and enter the new owner's username or organization name. The new owner receives an email (organizations don't).

<Warning>
  Any API endpoint in the Project stops serving requests after the transfer. The new owner can re-publish it, but the URL changes and your API key stops working unless you're given contributor access. Re-point external callers and coordinate around the downtime.
</Warning>

To transfer without endpoint downtime: give the new owner contributor or results consumer access, have them fork the Project and re-publish the endpoint there, point your systems at the new URL, then shut down the original endpoint and archive the original Project.

## Export and import Project content

One Project can import another Project's files, environment variables, or both. During runs, each imported Project's directory is mounted read-only at `/mnt/<username>/<project name>` and pulled in alongside the current Project's files.

<Note>
  Importing changes your own Project's path from `/mnt` to `/mnt/<username>/<project name>`. Replace any hardcoded `/mnt` paths in your code with the `$DOMINO_WORKING_DIR` environment variable.
</Note>

To export, go to **Settings** > **Exports** in the source Project and enable exports for **Files** and **Environment variables** separately, or export the files as a Python or R **Code Package**.

Nothing can be imported from a Project with no export enabled. By default the latest revision is exported; to export the revision a specific Job produced, tag that Job with the exact string `release` on the Jobs page.

To import, you need Project Importer, Contributor, or Owner permission on the source Project:

1. In the destination Project, go to **Code** and click **Other Projects**.
2. Click **Import a Project** and enter the source path as `<username>/<project-name>`, then click **Import**.

Imports are not transitive: if Project A is imported into Project B and you import B, you see only B's contents. See [Troubleshoot imports](/cloud/help/troubleshoot/troubleshoot-imports) if an import misbehaves.

## Archive a Project

Archive Projects you no longer need. Archiving stops all scheduled runs and runs in progress, blocks CLI file uploads and downloads for collaborators, and removes any globally discoverable published App.

Go to **Settings** > **Archive Project or Transfer Ownership** and click **Archive This Project**.

To unarchive a Project, contact your Domino representative.

## Related

* [Create Projects](/cloud/platform-capabilities/core-concepts/projects/create-projects): create from scratch or from a template.
* [Collaborate on Projects](/cloud/platform-capabilities/core-concepts/projects/collaborate-on-projects): roles and permissions behind these operations.
* [Project settings](/cloud/platform-capabilities/core-concepts/projects/project-settings): visibility, defaults, and environment variables.
