Official agent skill

Vcpkg

by github in github/awesome-copilot

Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling.

OfficialMITAuto-check passedDevOps & Cloud

Install Vcpkg

skills CLI
$ npx skills add github/awesome-copilot --skill vcpkg -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install github/awesome-copilot vcpkg --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/github/awesome-copilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/vcpkg .claude/skills/vcpkg && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
vcpkg
GitHub stars
40k
Token cost
~2.6k tokens
SKILL.md length
969 words
Files
4 (incl. references)
Skills in repo
417
Repo updated
First seen
Licence
MIT

At a glance

Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling.

  • Works in 3 steps: Create vcpkg.json in your project root → Wire into CMakeLists.txt → Configure with vcpkg toolchain
  • A user is working with vcpkg project setup
  • SKILL.md covers Additional References (load on…, Important Behavioral Rules, Project Setup and Installing Dependencies, plus 2 more sections
  • Calls cmake

What it does

Vcpkg is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. 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, version pinning, baselines, overrides, triplets, and cross-compilation. Use when a user is working with vcpkg project setup, installation, version management, or cross-platform builds. For specialized tasks, additional references cover custom registries and overlay ports (references/registries.md), CI/CD and binary…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/ci.md`, `references/registries.md` and `references/troubleshooting.md`).

It sits in DevOps & Cloud, covering CI/CD and Caching. It works with C++ and GitHub. The repository describes itself as: Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. The licence is MIT.

When your agent uses it

  • A user is working with vcpkg project setup
  • Version management
  • Cross-platform builds

Example prompts

  • “/vcpkg”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Create vcpkg.json in your project root
  2. Wire into CMakeLists.txt
  3. Configure with vcpkg toolchain

What it can do on your machine

Read from SKILL.md and the folder at commit 727ff2e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cmake

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Vcpkg loads about 2.6k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 156 tokens; SKILL.md has 969 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~156
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from github/awesome-copilot at commit 727ff2e, republished under its MIT licence (© github). 969 words, ~2,578 tokens.

Download SKILL.mdSave it as .claude/skills/vcpkg/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
vcpkg
description
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, version pinning, baselines, overrides, triplets, and cross-compilation. Use when a user is working with vcpkg project setup, installation, version management, or cross-platform builds. For specialized tasks, additional references cover custom registries and overlay ports (references/registries.md), CI/CD and binary caching (references/ci.md), and troubleshooting and dependency lifecycle (references/troubleshooting.md).

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"]
}
  1. 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)
  1. 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 with a standalone vcpkg installation, run vcpkg integrate install once
  4. Or for per-project integration, add to .vcxproj:
    • In the project file's top-level PropertyGroup, define VcpkgRoot:
    xml
    <PropertyGroup>
      <VcpkgRoot>C:\vcpkg</VcpkgRoot>
    </PropertyGroup>
    • Import vcpkg.props near the top of the project file:
    xml
    <Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.props" />
    • Import vcpkg.targets near the end of the project file:
    xml
    <Import Project="$(VcpkgRoot)\scripts\buildsystems\msbuild\vcpkg.targets" />
Classic-to-Manifest Migration
  1. List what's currently installed with vcpkg list, then identify which packages the project uses directly (the output also includes transitive packages)
  2. Create vcpkg.json with only those direct dependencies
  3. Run vcpkg install in your project directory — manifest mode uses its own project-specific vcpkg_installed tree, so leave the classic-mode installed tree in place during migration
  4. Update your build system to use CMAKE_TOOLCHAIN_FILE if not already
  5. Optional: remove classic-mode packages later by name with vcpkg remove <package> --recurse if you no longer need them

Show full SKILL.md (371 more words)Show less

Installing Dependencies

Installing with Features (e.g., curl with SSL + HTTP2)

In manifest mode (vcpkg.json), specify features in the dependencies array:

json
{
  "dependencies": [
    {
      "name": "curl",
      "features": ["ssl", "http2"]
    }
  ]
}

In classic mode, use bracket syntax on the command line:

console
vcpkg install curl[ssl,http2]

To discover available features for any port:

console
vcpkg search curl

Or check the port's vcpkg.json in the registry: ports/curl/vcpkg.json → look at the "features" object.

Installing for a Specific Triplet
console
vcpkg install zlib:x64-linux
vcpkg install zlib:x64-windows
vcpkg install zlib:arm64-windows

In manifest mode, set the triplet via CMake:

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

Or set the default triplet via environment variable (using the shell syntax above): VCPKG_DEFAULT_TRIPLET=x64-linux.

Bulk-Adding Multiple Dependencies

In vcpkg.json, list them in the dependencies array:

json
{
  "dependencies": ["catch2", "cxxopts", "toml11"]
}

In classic mode:

console
vcpkg install catch2 cxxopts toml11

Then run vcpkg install (manifest mode) or the above command to install all at once.

Dev-Only Dependencies

Place test-only dependencies under an opt-in feature. The "host" field is reserved for build tools that must run on the host architecture:

json
{
  "dependencies": ["fmt"],
  "features": {
    "tests": {
      "description": "Build project tests",
      "dependencies": ["gtest"]
    }
  }
}

Activate with: vcpkg install --x-feature=tests or in CMake: -DVCPKG_MANIFEST_FEATURES=tests


Version Management

Setting Versions for Individual Dependencies

Prefer "version>=" for minimum-version constraints:

json
{
  "dependencies": [{ "name": "fmt", "version>=": "10.2.0" }],
  "builtin-baseline": "<commit-sha>"
}

Use overrides only when a hard pin is required:

json
{
  "dependencies": ["fmt"],
  "overrides": [{ "name": "fmt", "version": "10.2.0" }],
  "builtin-baseline": "<commit-sha>"
}

Use a baseline for the registry that resolves the dependency. For the builtin registry, that means builtin-baseline in vcpkg.json. For a custom default registry, set the baseline in vcpkg-configuration.json.

Key points:

  • overrides take precedence over all version constraints, including transitive ones.
  • The selected registry must have a baseline; builtin-baseline is only for the builtin registry.
  • Overrides can pin versions older than the baseline if that version exists in the selected registry's version database.
  • Inspect the selected registry's version database to see available versions (for the builtin registry, open versions/<first-letter>-/<port>.json in the vcpkg repository).

Cross-Platform

Cross-Compiling for arm64
console
vcpkg install <packages>:arm64-linux

VCPKG_TARGET_TRIPLET=arm64-linux selects dependency binaries; it does not by itself switch your project compiler or sysroot. On non-ARM64 hosts, use an ARM64 cross toolchain.

Configure CMake with vcpkg plus your cross toolchain:

console
cmake -B build -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=arm64-linux -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=<path-to-arm64-toolchain.cmake>

Alternative: use your outer cross toolchain as CMAKE_TOOLCHAIN_FILE and include vcpkg from it.

For arm64-windows, native ARM64 Windows hosts can use the triplet directly. On x64 Windows hosts, install the Visual Studio MSVC ARM64 build tools component or the build will fail:

console
vcpkg install <packages>:arm64-windows
Building for Android (NDK)
  1. Set ANDROID_NDK_HOME to your NDK path.
  2. Install packages:
console
vcpkg install <packages>:arm64-android

Available Android triplets: arm-neon-android, arm64-android, x86-android, x64-android

  1. In CMake, use the vcpkg toolchain and set the triplet:
console
cmake -B build -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=<android-ndk>/build/cmake/android.toolchain.cmake -DVCPKG_TARGET_TRIPLET=arm64-android -DANDROID_ABI=arm64-v8a

For expanded CI and shell-specific examples, see references/ci.md.

© github, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/vcpkg of github/awesome-copilot.

  • SKILL.md
  • references/ci.md
  • references/registries.md
  • references/troubleshooting.md

Open the folder on GitHubat commit 727ff2e

Compare with similar skills

Vcpkg next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Vcpkg compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Vcpkg this skillgithub/awesome-copilot40k—~2.6kAutomated safety check: PassMIT
Authoring CI WorkflowsPostHog/posthog-foss721—~11kAutomated safety check: PassMIT
Azure Pipelines Log Downloaderansible/ansible71k—~825Automated safety check: PassGPL-3.0
Nushellccusage/ccusage19k—~938Automated safety check: PassCustom licence
AI News RadarLearnPrompt/ai-news-radar1.8k—~2.5kAutomated safety check: NotesMIT
Make GitHub Actions Workflowdotnet/efcore15k—~1.7kAutomated safety check: PassMIT

Similar skills

  • Authoring CI Workflows

    PostHog/posthog-foss

    Official

    A skill your agent uses when adding or editing a GitHub Actions workflow, composite action, or reusable workflow under .github/ — new CI jobs, triggers, matrices, checkout/clone tuning, action…

    721 GitHub stars~11k tokensUpdated today
    DevelopmentAuto-check passed
  • Downloads Azure Pipelines CI logs for an Ansible pull request or build so the agent can analyze test failures, after asking you first.

    71k GitHub stars~825 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Nushell

    ccusage/ccusage

    Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.

    19k GitHub stars~938 tokensUpdated today
    DevOps & CloudAuto-check passed
  • AI News Radar

    LearnPrompt/ai-news-radar

    A skill your agent uses when working on AI News Radar, 24 小时 AI 更新雷达, AI 更新雷达, 伯乐Skill, or Scout Skill: finding high-signal AI/tech sources, adding RSS/OPML/GitHub feeds, checking source health…

    1.8k GitHub stars~2.5k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Official

    Create GitHub Actions workflows for CI, automation, or PR management.

    15k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • ONNX Runtime CI Management

    microsoft/onnxruntime

    Official

    Triggers, re-runs and unblocks the CI checks on an ONNX Runtime pull request, after diagnosing whether a failure is transient or needs a code change.

    22k GitHub stars~4.1k tokensUpdated today
    DevOps & CloudAuto-check passed

More from github/awesome-copilot

All 417 skills in this repo
  • Acquire Codebase Knowledge

    github/awesome-copilot

    Official

    Maps an unfamiliar codebase into seven evidence-backed documents in docs/codebase/, using a scan script and templates, for onboarding or architecture write-ups.

    40k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Azure Architecture Autopilot

    github/awesome-copilot

    Official

    Designs Azure infrastructure from a natural-language description, or diagrams an existing resource group, then refines the design through conversation and deploys it with Bicep.

    40k GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Draw.io Diagram Generator

    github/awesome-copilot

    Official

    Generates, edits and validates draw.io files with correct mxGraph XML, covering flowcharts, architecture, sequence, ER and UML class diagrams.

    40k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed
  • Credit Risk Data Cleaning

    github/awesome-copilot

    Official

    Cleans raw credit data and screens variables before loan modeling, dropping unstable, noisy or redundant features and writing an Excel report of every step.

    40k GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed
  • Daily Focus Board

    github/awesome-copilot

    Official

    Builds a warm, browser-based daily focus board the user updates by talking to their agent, with Eisenhower priorities, a brain-dump box and kind not-today carryover.

    40k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Python Pypi Package Builder

    github/awesome-copilot

    Official

    End-to-end skill for building, testing, linting, versioning, and publishing a production-grade Python library to PyPI.

    40k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed

Works with

Categories

Questions about Vcpkg

What does Vcpkg do?

Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling. Vcpkg is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling.

When should I use Vcpkg?

Vcpkg fits situations like: A user is working with vcpkg project setup; version management; cross-platform builds.

How do I install Vcpkg in Claude Code?

Run `npx skills add github/awesome-copilot --skill vcpkg -a claude-code`. Or copy the skill folder (skills/vcpkg in github/awesome-copilot) into .claude/skills/vcpkg in your project. Claude Code loads it when a task matches its description.

How do I install Vcpkg in Codex?

Run `npx skills add github/awesome-copilot --skill vcpkg -a codex`. Or copy the skill folder (skills/vcpkg in github/awesome-copilot) into .agents/skills/vcpkg in your project. Codex loads it when a task matches its description.

Can I use Vcpkg in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add github/awesome-copilot --skill vcpkg -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vcpkg, .gemini/skills/vcpkg, .github/skills/vcpkg and .opencode/skills/vcpkg in your project.

What does Vcpkg need to run?

Going by SKILL.md and its folder, Vcpkg needs the command-line tools its instructions call (cmake).

Does Vcpkg access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Vcpkg safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Vcpkg use?

Vcpkg is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Vcpkg use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.7k tokens, read only when the agent opens those files.

What are the alternatives to Vcpkg?

Skills that share tags, products or a category with Vcpkg: Authoring CI Workflows (PostHog/posthog-foss, 721 stars), Azure Pipelines Log Downloader (ansible/ansible, 71k stars), Nushell (ccusage/ccusage, 19k stars) and AI News Radar (LearnPrompt/ai-news-radar, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Vcpkg?

github (a GitHub organization, an official publisher) maintains it in github/awesome-copilot, which has 39,748 GitHub stars. The repository holds 417 skills in this directory. The repository was last updated on October 7, 2026.

Source: github/awesome-copilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.