# Install tools on the command line using vcpkg

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/)
- [Install vcpkg](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/installation/)
- [Initialize vcpkg](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/initialization/)
- [Create a vcpkg-configuration.json file](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/config_creation/)
- [Use vcpkg](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/usage/)
- [Activate a license](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/licenseactivation/)
- [Remove vcpkg](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/removal/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/vcpkg-tool-installation/_next-steps/)

## About this Learning Path

|               |               |
|---------------|---------------|
| Skill level:  | Advanced      |
| Reading time: | 10 min        |
| Last updated: | 14 Aug 2026   |

|               |                                                    |
|---------------|----------------------------------------------------|
| Author:       | Christopher Seidl, Arm                             |
| Arm IP:       | [Cortex-M](https://support.arm.com/?tab=compute-ip&Product%20Type=Microcontrollers) |
| Tags:         | CI-CD, Linux, Windows, macOS, vcpkg               |

## Who is this for?

This is an introductory topic for software developers who want to create reproducible tool installations on the command line.

## What will you learn?

Upon completion of this Learning Path, you will be able to:

- Install vcpkg
- Initialize vcpkg
- Create a vcpkg-configuration.json file
- Use vcpkg
- Activate tool licensing
- Remove vcpkg

## Prerequisites

Before starting, you will need the following:

- A basic understanding of the [development tools for Arm Cortex-M](https://developer.arm.com/Tools%20and%20Software/)
- Command line access to your machine

## Summary

You’ll install and initialize `vcpkg` on Linux, Windows, or macOS for reproducible command-line tool setup for projects. First, you’ll run the shell-specific initialization script and create `vcpkg-configuration.json` for your host. Then, you’ll run `vcpkg-shell activate`, inspect installed artifacts, and activate a Keil MDK Community license with `armlm` for Arm tooling.

## Frequently asked questions

<details>
<summary>Do I need to run the vcpkg init script every time I open a new terminal?</summary>
Yes. Run the appropriate script from `~/.vcpkg` for your shell (`vcpkg-init.cmd` on Windows cmd, `vcpkg-init.ps1` in PowerShell, or `vcpkg-init` on Linux and macOS). Initialization is required in every new terminal window before using `vcpkg`.
</details>

<details>
<summary>What does my vcpkg-configuration.json control, and why create it before activation?</summary>
The configuration ensures consistent installation across platforms and selects the correct binaries for the host OS and architecture. Create it first so activation installs and exposes the tools defined for your environment.
</details>

<details>
<summary>How do I know that vcpkg activation worked?</summary>
After running `vcpkg-shell activate`, you should see a summary of artifacts with their `Version` and `Status`, such as `installed`. The listed tools come from your `vcpkg-configuration.json`.
</details>

<details>
<summary>What should I do if I see a warning that vcpkg-artifacts is experimental?</summary>
The activation output can include a warning that `vcpkg-artifacts` is experimental and might change at any time. This is expected, and no action is necessary.
</details>

<details>
<summary>How do I activate and verify the Keil MDK Community license for Arm Compiler for Embedded?</summary>
Activate it using `armlm activate -product KEMDK-COM0 -server https://mdk-preview.keil.arm.com`, then optionally run `armlm inspect` to confirm an active product entry such as Keil MDK Community. Use of Arm tools is subject to the End User License Agreement located in the `license_terms` folder of the downloaded archive.
</details>
