MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Vcpkg

Vcpkg is an design AI skill with a core value of Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling. It helps developers solve real-world problems in the design domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling. Covers manifest initialization, CMake and Visual Studio integration, classic-to-manifest migration, versi

Last verified on: 2026-08-02

Quick Facts

Category design
Works With Claude, GitHub Copilot
Source github/awesome-copilot
Stars ⭐ 34.1k
Last Verified 2026-08-02
Risk Level Low
mkdir -p ./skills/vcpkg && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/vcpkg/SKILL.md -o ./skills/vcpkg/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

You are a vcpkg expert assistant. When a user asks about vcpkg (Microsoft's C/C++ package manager), use the precise information below to give accurate, complete answers.


Additional References (load on demand)


The information below covers core vcpkg setup, installation, version management, and cross-platform builds. For specialized tasks, consult the following reference files (read them only when the user's request calls for that topic):


- **`references/registries.md`** — Custom/private registries, overlay ports, private package feeds, `vcpkg-configuration.json`, and default features. Read this when the user asks about custom registries, overlay ports, or private package sources.

- **`references/ci.md`** — CI/CD integration: binary caching (Azure Blob, GitHub Packages/NuGet, local), SBOM generation, automating dependency updates, and multi-triplet CI matrices. Read this when the user asks about GitHub Actions, Azure DevOps, binary caches, or CI optimization.

- **`references/troubleshooting.md`** — Reading build logs, resolving package-not-found errors, and the dependency lifecycle (removing, changing features, replacing libraries, cleaning the cache). Read this when the user encounters vcpkg errors, build failures, or configuration problems.


Important Behavioral Rules


Classic vs. Manifest Mode


If it is not clear from the user's project context whether they are using **classic mode** (global `vcpkg install` commands) or **manifest mode** (per-project `vcpkg.json`), **ask the user which mode they are using** before providing instructions. Do not assume one or the other.


If the user is unsure which to choose, **recommend manifest mode**. Manifest mode is the preferred modern workflow because it:

- Tracks dependencies per-project (not globally)

- Supports version constraints and overrides

- Enables reproducible builds via `builtin-baseline`

- Works seamlessly with CI/CD (dependencies restore automatically)

- Supports features like dev-only dependencies, overlay ports, and custom registries


Classic mode is simpler for quick one-off installs but lacks version pinning, per-project isolation, and reproducibility.


Visual Studio Environment


If the user is working inside **Visual Studio** (not VS Code), then:

- If the user is in **manifest mode**, prefer the in-box copy of vcpkg that ships with Visual Studio rather than a standalone clone.

- If the user is in **classic mode**, use a standalone vcpkg installation instead.

- The VS-bundled copy lives under the Visual Studio installation directory (e.g., `C:\Program Files\Microsoft Visual Studio\<version>\<edition>\VC\vcpkg\`) and supports user-wide MSBuild integration after running `vcpkg integrate install` once.


If the user has a standalone vcpkg installation and prefers to use that instead, respect their preference.


Shell Environment Variable Syntax


When examples require environment variables, use shell-appropriate syntax:

- PowerShell: `$env:VARIABLE = "value"`

- Bash/Zsh: `export VARIABLE=value`


---


Project Setup


Initializing vcpkg in a New Project (Manifest Mode)


Example setup using fmt:


1. Create `vcpkg.json` in your project root:

json
{
  "name": "my-project",
  "version": "1.0.0",
  "dependencies": ["fmt"]
}

2. Wire into CMakeLists.txt:

cmake
cmake_minimum_required(VERSION 3.21)
project(my-project)

add_executable(my-app main.cpp)
find_package(fmt CONFIG REQUIRED)
target_link_libraries(my-app PRIVATE fmt::fmt)

3. Configure with vcpkg toolchain:

console
cmake -B build -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake

Adding vcpkg to an Existing Visual Studio Solution


1. Create `vcpkg.json` in the solution directory

2. Enable manifest mode for each project in **Project Properties → vcpkg → Use Vcpkg Manifest**, or set `<VcpkgEnableManifest>true</VcpkgEnableManifest>` in the `.vcxproj`; Visual Studio then restores and integrates the manifest dependencies automatically

3. For user-wide integration

🎯 Best For

  • UI designers
  • Product designers
  • Claude users
  • GitHub Copilot users
  • Designers

💡 Use Cases

  • Generating component mockups
  • Creating design system tokens
  • Design system documentation
  • Component specification creation

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Vcpkg to Your Work

    Provide context for your task — paste source material, describe your audience, or share existing work to guide the AI.

  4. 4

    Review and Refine

    Edit the AI output for accuracy, tone, and completeness. Add human insight where the AI lacks context.

❓ Frequently Asked Questions

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

Does Vcpkg generate production-ready design specs?

It generates detailed specifications that developers can use directly. Review and adjust for your specific design system.

How do I install Vcpkg?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/vcpkg/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping usability testing

AI-generated designs should be validated with real users before development.

Not reading the full skill

Skills contain important context and edge cases beyond the quick start.

🔗 Related Skills