---
title: Multi-Root Workspace Installation
description: Set up your enterprise fork of HVE-Core using VS Code multi-root workspaces
author: Microsoft
ms.date: 2026-02-18
ms.topic: how-to
keywords:
  - multi-root workspace
  - installation
  - github copilot
  - codespaces
  - devcontainer
  - enterprise fork
estimated_reading_time: 8
---

Forking HVE-Core lets your enterprise customize agents, prompts, instructions, and skills for your organization while staying connected to upstream improvements. Multi-root workspaces bring that fork into any project workspace, giving teams a portable configuration that works across Local VS Code, Devcontainers, and Codespaces.

## When to Use This Method

✅ **Use this when:**

* Your enterprise maintains a fork of HVE-Core with org-specific customizations
* You need a single configuration that works across Local VS Code, Devcontainers, and Codespaces
* Teams share a common set of customized agents, prompts, and instructions
* You want to pull upstream improvements on your own schedule

❌ **Consider alternatives when:**

* Your team needs version-pinned dependencies without a fork → [Submodule](submodule.md)
* You're contributing back to HVE-Core itself → [Peer Clone](peer-clone.md)

## How It Works

Your enterprise forks the `microsoft/hve-core` repository, adds org-specific agents, prompts, and instructions, then uses a `.code-workspace` file to bring that fork into any project as a secondary root. VS Code treats the fork as part of your project, making all paths work correctly.

```text
┌──────────────────────────────────────────────────┐
│           VS Code Multi-Root Workspace           │
├──────────────────────────────────────────────────┤
│  📁 My Project (primary)                         │
│     └── Your application code                    │
│  📁 HVE-Core Fork (secondary)                    │
│     └── .github/agents, prompts, instructions    │
│     └── Org-specific customizations              │
└──────────────────────────────────────────────────┘
         ↑
   .code-workspace file defines this

   microsoft/hve-core (upstream)
         ↓  sync on your schedule
   your-org/hve-core (fork)
```

## Quick Start

Use the `hve-core-installer` agent:

1. Open GitHub Copilot Chat (`Ctrl+Alt+I`)
2. Select `hve-core-installer` from the agent picker
3. Say: "Install HVE-Core using multi-root workspace from our fork"
4. Follow the guided setup

## Manual Setup

> [!TIP]
> The `hve-core-installer` agent can automate the steps below, including forking, cloning, workspace file creation, and devcontainer configuration. See [Quick Start](#quick-start) to use the guided flow instead.

### Step 1: Fork and Clone

If your organization has not already forked HVE-Core, create a fork of `microsoft/hve-core` under your org's GitHub account. Then clone your fork.

**Local VS Code:**

```bash
# Clone your org's fork next to your project
cd /path/to/your-projects
git clone https://github.com/your-org/hve-core.git

# Add upstream for syncing improvements
cd hve-core
git remote add upstream https://github.com/microsoft/hve-core.git
```

**Codespaces/Devcontainer:** Your fork will be cloned automatically (see Step 3).

### Step 2: Create the Workspace File

Create `.devcontainer/hve-core.code-workspace` in your project:

```jsonc
{
  "folders": [
    {
      "name": "My Project",
      "path": ".."
    },
    {
      "name": "HVE-Core Fork",
      "path": "/workspaces/hve-core"
    }
  ],
  "settings": {
    "chat.agentFilesLocations": {
      "HVE-Core Fork/.github/agents": true,
      "My Project/.github/agents": true
    },
    "chat.promptFilesLocations": {
      "HVE-Core Fork/.github/prompts": true,
      "My Project/.github/prompts": true
    },
    "chat.instructionsFilesLocations": {
      "HVE-Core Fork/.github/instructions": true,
      "My Project/.github/instructions": true
    }
  },
  "extensions": {
    "recommendations": [
      "github.copilot",
      "github.copilot-chat"
    ]
  }
}
```

**For local development**, use a relative path instead:

```jsonc
{
  "name": "HVE-Core Fork",
  "path": "../../hve-core"
}
```

### Step 3: Configure Devcontainer (Codespaces)

Update `.devcontainer/devcontainer.json` to clone your org's fork:

```jsonc
{
  "name": "My Project + HVE-Core",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",

  "onCreateCommand": "git clone --depth 1 https://github.com/your-org/hve-core.git /workspaces/hve-core 2>/dev/null || git -C /workspaces/hve-core pull --ff-only || true",

  "customizations": {
    "vscode": {
      "extensions": [
        "github.copilot",
        "github.copilot-chat"
      ]
    }
  }
}
```

### Step 4: Open the Workspace

> [!WARNING]
> You must open the `.code-workspace` file, not the folder.

* `File` → `Open Workspace from File...` → select `hve-core.code-workspace` (Local)
* Run `code .devcontainer/hve-core.code-workspace` in terminal (Codespaces)

The VS Code title bar should show your workspace name, not just the folder name.

## Path Resolution

Multi-root workspaces use folder names for paths:

| Path Style           | Example                                 | Recommended       |
|----------------------|-----------------------------------------|-------------------|
| Folder name relative | `"HVE-Core Fork/.github/agents"`        | ✅  Yes            |
| Absolute path        | `"/workspaces/hve-core/.github/agents"` | ⚠️  Less portable |

The folder names in your `.code-workspace` file (`"name": "HVE-Core Fork"`) become path prefixes in settings.

## Keeping Your Fork Updated

Sync your fork with upstream `microsoft/hve-core` to pick up new agents, prompts, and improvements. Pull from your fork into workspaces on a schedule that suits your team.

### Syncing Upstream Changes into Your Fork

```bash
# From your fork's local clone
git fetch upstream
git merge upstream/main
# Resolve any conflicts with your org customizations, then push
git push origin main
```

### Pulling Fork Updates into Workspaces

| Strategy       | Configuration                                       | When Updates Apply |
|----------------|-----------------------------------------------------|--------------------|
| Manual         | Run `git -C /workspaces/hve-core pull` when desired | On demand          |
| On rebuild     | Add `updateContentCommand` to devcontainer.json     | Container rebuild  |
| On every start | Add `postStartCommand` to devcontainer.json         | Every startup      |

> [!TIP]
> Update on rebuild for stability:

```jsonc
{
  "updateContentCommand": "git -C /workspaces/hve-core pull --ff-only || true"
}
```

## Verification

After setup, verify HVE-Core is working:

1. Check the Explorer sidebar shows both folders
2. Open Copilot Chat (`Ctrl+Alt+I`)
3. Click the agent picker dropdown
4. Verify HVE-Core agents appear (task-planner, task-researcher, etc.)

## Troubleshooting

### Agents not appearing

* Confirm the workspace is open by checking that the title bar shows the workspace name
* Ensure `path` values in `.code-workspace` point to the correct locations
* Reload the window with `Ctrl+Shift+P` → "Developer: Reload Window"

### "Folder not found" error

* For local setups, verify HVE-Core is cloned at the relative path specified
* For Codespaces, check that `onCreateCommand` ran successfully in creation logs

### Settings not applying

* Folder settings override workspace settings, so check for conflicts at the folder level
* Use folder names (`"HVE-Core Fork/..."`) instead of absolute paths

## Next Steps

* [Your First Workflow](../first-workflow.md) - Try HVE-Core with a real task
* [RPI Workflow](../../rpi/README.md) - Research, Plan, Implement methodology
* [Back to Installation Guide](../install.md) - Compare other methods

---

<!-- markdownlint-disable MD036 -->
*🤖 Crafted with precision by ✨Copilot following brilliant human instruction,
then carefully refined by our team of discerning human reviewers.*
<!-- markdownlint-enable MD036 -->
