A single command that installs everything needed for the ESS Maker Kit: VS Code, Python 3.12, Git, GitHub CLI, the .NET runtime, NuGet, Copilot extensions, pip dependencies, and clones the repo.
Windows (PowerShell):
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap.ps1)macOS (Terminal):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-mac.sh)"Once complete, the installer asks in the terminal which experience you want — Maker (guided rail layout — recommended) or Developer (default VS Code view with the rendered README). Under a non-interactive shell (CI, piped input) the installer silently picks Maker. VS Code then opens at solutions/ess-maker-skills/. When you're ready, run /setup in Copilot Chat — in Maker mode, follow the Getting started walkthrough — to connect the workspace to an existing editable DA Dev agent. /setup is not run automatically in either mode. Review the workspace trust prompt before accepting it, then follow the purpose-specific sign-in guidance below.
GitHub Copilot subscription is required for the in-editor maker experience. This script installs the toolchain and extension scaffolding; it does not grant the Copilot entitlement.
The full Maker and Developer experiences use two independent authentication stages:
- GitHub Copilot sign-in activates Copilot Chat, the interface where you run
/setupand the other ESS maker commands. Sign in with a GitHub account that has an active GitHub Copilot entitlement. This sign-in does not grant access to Power Platform. - Power Platform sign-in authorizes the kit to discover environments and agents and to call the required Microsoft services. When
/setupopens a browser, sign in with the Microsoft work account that can access the target Power Platform environment and agent.
You may see more than one Microsoft account-selection or consent window because setup and FlightCheck call multiple Microsoft services. These prompts are separate from GitHub Copilot authentication.
Cloning the public repository and installing VS Code do not normally require GitHub authentication. A private fork or branch may require GitHub or GitHub CLI authentication, and Codespaces requires a GitHub account because it is a GitHub-hosted service.
FlightCheck-only mode does not require VS Code, GitHub, or GitHub Copilot. It still opens the Microsoft sign-in required to inspect the selected Power Platform environment and its services.
The one-shot installer (bootstrap.ps1 / bootstrap-mac.sh) asks you to choose between Maker and Developer in the terminal before VS Code launches, so mode selection is a one-line choice from the main installer — no separate command needed. Maker was previously called "Lite" and Developer was previously called "Standard"; the old names still work for pinned scripts and previously-installed users.
For scripts and docs that need to pin the choice up front (bypassing the terminal prompt), mode-specific shortcuts are available:
Windows (PowerShell):
# Maker mode (guided rail)
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-lite.ps1)
# Developer mode (default VS Code layout)
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-dev.ps1)macOS (Terminal):
# Maker mode (guided rail)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-lite-mac.sh)"
# Developer mode (default VS Code layout)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-dev-mac.sh)"
bootstrap-lite.ps1/bootstrap-lite-mac.share kept at their original URLs for back-compat with existing docs and links, and now pin Maker mode (the renamed Lite mode).
Maker mode is the same install as Developer mode plus the ESS Maker Profile extension applying:
- A guided layout: a focused activity-bar rail with the walkthrough and chat, developer surfaces tucked away
- A Customization rail listing common tasks (Customize landing page, Create a topic, Update a topic, Scan for issues, Run a flightcheck, Generate tests, Push to Copilot Studio)
- A built-in Getting started walkthrough explaining each step
Run /setup yourself in Copilot Chat when you're ready — it isn't triggered automatically. You can restore the default VS Code layout at any time with ESS Maker: Restore Developer Layout from the Command Palette.
Free tier available: GitHub accounts include 120 core-hours/month of free Codespaces usage (60 hours on a 2-core machine). Compute is only billed while the Codespace is running — it stops automatically after 30 minutes of inactivity. For organizational accounts, your admin may need to enable Codespaces — see managing Codespaces for your organization.
For users who prefer a cloud-based development environment — no local toolchain or VS Code desktop install required. Just a browser and a GitHub account:
The Codespace comes pre-configured with Python 3.12, pip dependencies, and GitHub Copilot. Select the 2-core machine type (sufficient for the maker kit). Once it starts:
- Open the
solutions/ess-maker-skillsfolder (File → Open Folder →/workspaces/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills) - Run
/setupin Copilot Chat to connect an existing editable DA Dev agent
The same Codespace environment can be used to run FlightCheck without the full maker kit setup. After creating the Codespace above:
- Open the
solutions/ess-maker-skillsfolder (File → Open Folder →/workspaces/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills) - Open a terminal and run:
python scripts/flightcheck/cli.py --scope full --no-open
--no-openskips the auto-launch of the HTML report (Codespaces can't open a localfile://URL in your browser). Open the savedworkspace/flightcheck/report.htmlmanually from the file explorer instead. - Follow the prompts to sign in and select your environment
Run FlightCheck without coding tools or VS Code. The Windows standalone
installer checks a selected Declarative Agent (DA), using the same setup
diagnostics and report as /flightcheck in a configured DA workspace.
It does not run legacy/custom-engine or environment-only checks.
Windows (PowerShell):
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1)That's it. The script handles everything automatically:
- Installs Python and Git (if not already present)
- Accepts your DA's Copilot Studio URL, or offers environment and native-agent selection
- Opens sign-in for the Microsoft work account that can access that agent
- Verifies the exact selected agent and saves its standalone configuration
- Runs the full DA setup diagnostics and opens the report
Dataverse and completed foundation setup are not required. Checks needing unavailable evidence explain what remains unverified. Local-file checks need an agent workspace; the installer does not export a Dataverse solution.
macOS retains its existing standalone discovery workflow:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck-mac.sh)"For DA diagnostics on macOS, use the direct command below from an already configured DA workspace.
Re-run the same Windows command and select the intended DA. Older
environment-only/legacy standalone configurations are replaced only after
the new target is verified. Existing maker-workspace configurations are not
overwritten; use /flightcheck there or choose a separate -InstallRoot.
iex (irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1)The FlightCheck-only installer targets the Power Platform prod service ring by default (where customer environments live). To validate a preprod or test environment, pass -Ring / --ring. A supplied Copilot Studio URL must match that ring:
Windows (PowerShell):
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck.ps1))) -Ring preprodmacOS (Terminal):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/microsoft/Employee-Self-Service-Agent-Developer-Kit/main/setup/bootstrap-flightcheck-mac.sh)" _ --ring preprodAccepted values: prod, preprod, test.
Once you've run the installer once, you can re-run FlightCheck directly without going through setup again. The HTML report opens in your default browser when the run finishes — pass --no-open to skip (useful for CI / headless / SSH sessions).
Windows:
cd $env:USERPROFILE\source\Employee-Self-Service-Agent-Developer-Kit\solutions\ess-maker-skills
python scripts/flightcheck/cli.py --scope fullmacOS:
cd ~/source/Employee-Self-Service-Agent-Developer-Kit/solutions/ess-maker-skills
../../.venv/bin/python scripts/flightcheck/cli.py --scope full| File | Purpose |
|---|---|
Install-EssAdk.ps1 |
Windows orchestrator. Installs toolchain via winget, pip dependencies, clones repo, installs extensions, launches VS Code. With -FlightCheckOnly, installs minimal toolchain and runs FlightCheck. |
install-ess-adk.sh |
macOS orchestrator. Same as above but uses Homebrew. Set FLIGHTCHECK_ONLY=true for FlightCheck-only mode. |
bootstrap.ps1 |
Windows one-liner entry point (asks Maker vs Developer in the terminal before VS Code launches). |
bootstrap-lite.ps1 |
Windows one-liner entry point (Maker mode - guided rail layout; previously named "Lite"). |
bootstrap-dev.ps1 |
Windows one-liner entry point (Developer mode - default VS Code layout; previously named "Standard"). |
bootstrap-flightcheck.ps1 |
Windows one-liner entry point (FlightCheck only). |
bootstrap-mac.sh |
macOS one-liner entry point (asks Maker vs Developer in the terminal before VS Code launches). |
bootstrap-lite-mac.sh |
macOS one-liner entry point (Maker mode - guided rail layout; previously named "Lite"). |
bootstrap-dev-mac.sh |
macOS one-liner entry point (Developer mode - default VS Code layout; previously named "Standard"). |
bootstrap-flightcheck-mac.sh |
macOS one-liner entry point (FlightCheck only). |
ess-adk-setup.winget.yaml |
Declarative DSC config consumed by winget configure (optional Windows path). |
telemetry/install-telemetry.ps1 |
Installer telemetry emitter (PowerShell). Fail-open; emits install start/step/completion to Aria/1DS. |
telemetry/install-telemetry.sh |
Installer telemetry emitter (bash) — macOS/Linux mirror of the PowerShell emitter. |
.devcontainer/devcontainer.json |
Codespace configuration. Pre-installs Python 3.12, pip dependencies, and Copilot extensions. |
Installer telemetry. The installers emit pseudonymous setup-reliability
telemetry (install start / per-step / success-failure-cancelled completion, with
the installer variant, platform, failing step and a scrubbed error category)
natively from PowerShell/bash, because they run before Python exists. It is
fail-open — a telemetry issue never affects the install — and honors the unified
opt-out (ESS_ADK_TELEMETRY=off, or python scripts/adk_telemetry.py off). The
bootstraps download the emitter into their temp dir and pass its path via
ESS_INSTALL_TELEMETRY_LIB; if it can't be fetched, the install proceeds with
no-op stubs. See the ADK "Telemetry & Privacy" section for the full data model.
The installer provisions the following dependencies. Users do not need to install these manually — the one-shot installer or Codespace handles everything.
| Tool | Version | Purpose | FlightCheck only? |
|---|---|---|---|
| Python | 3.12 | Runtime for FlightCheck and maker scripts | ✅ |
| Git | Latest | Clone the repo, version control | ✅ |
GitHub CLI (gh) |
Latest | Device-code auth flow for private repo clone | ❌ |
| VS Code | Latest | Editor and Copilot host | ❌ |
| PowerShell 7 | Latest | Script execution (Windows only) | ❌ |
| .NET runtime | 10 | Runtime for Microsoft Object Model serialization | ❌ |
| NuGet | Latest available | Retrieves Microsoft Object Model packages using configured package sources | ❌ |
| Package | Purpose |
|---|---|
msal |
Microsoft Authentication Library — Entra ID auth for FlightCheck |
requests |
HTTP client for Dataverse / Graph API calls |
urllib3 |
HTTP transport layer (requests dependency, pinned) |
httpx |
Async HTTP client for the AgentConfiguration API |
mcp |
MCP server runtime for landing-page configuration tools and widgets |
PyYAML |
YAML parsing for topic schema validation |
defusedxml |
Safe XML parsing for Workday SOAP responses (XXE-hardened) |
pythonnet |
Loads the Microsoft Object Model serializer in Python (full install only) |
| Extension | Purpose |
|---|---|
GitHub.copilot |
GitHub Copilot AI completions |
GitHub.copilot-chat |
Copilot Chat — the primary maker interface |
ms-python.python |
Python language support, linting, debugging |
The devcontainer provides an equivalent pre-built environment:
- Base image:
mcr.microsoft.com/devcontainers/python:3.12(includes Python, git, common dev tools) - Python packages: Installed from
scripts/requirements.txtviapostCreateCommand - VS Code extensions: Copilot, Copilot Chat, Python (specified in
customizations.vscode.extensions) - Additional features: GitHub CLI (via devcontainer features)
- Additional runtime: .NET 10, Mono, and NuGet for Microsoft Object Model serialization
The full installer retrieves the exact Microsoft Object Model package versions required by the kit. NuGet uses the standard machine, user, and repository configuration hierarchy, including enterprise feeds, credentials, proxies, and package-source mappings.
If the runtime, NuGet, or Object Model packages cannot be installed, setup warns and continues. Object Model serialization remains unavailable until the reported dependency is installed and the package installer below is rerun.
To use a specific NuGet configuration, set ESS_ADK_NUGET_CONFIG before running the installer. To use one package source or an offline package directory, set ESS_ADK_NUGET_SOURCE instead.
For an existing clone, install the packages directly:
python solutions\ess-maker-skills\scripts\install_agentbuilder_object_model.pyFrom this folder:
# Run the full installer end-to-end:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallRoot $env:USERPROFILE\source-testUseful flags during testing:
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipExtensions # skip code --install-extension calls
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipClone # skip git clone (toolchain only)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipLaunch # don't open VS Code at the end
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -FlightCheckOnly # minimal install for FlightCheck only
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallMode maker # pin Maker mode (guided rail)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -InstallMode developer # pin Developer mode (default VS Code layout)
powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-EssAdk.ps1 -SkipMakerProfile # legacy alias: coerced to Developer modeFor air-gapped / locked-down environments, IT can mirror the files internally and serve them from an intranet URL by passing -SourceBaseUrl.
From this folder:
# Full installer (asks Maker or Developer in the terminal before VS Code launches):
bash install-ess-adk.sh
# Pin Maker mode (guided rail layout):
INSTALL_MODE=maker bash install-ess-adk.sh
# Pin Developer mode (default VS Code layout):
INSTALL_MODE=developer bash install-ess-adk.sh
# Legacy alias (still accepted; coerced to INSTALL_MODE=developer):
SKIP_MAKER_PROFILE=true bash install-ess-adk.sh
# FlightCheck only:
FLIGHTCHECK_ONLY=true bash install-ess-adk.sh
# Custom install location:
ESS_ADK_INSTALL_ROOT=~/projects bash install-ess-adk.sh
# Test against a branch:
ESS_ADK_BRANCH=my-feature bash install-ess-adk.shFor air-gapped environments, set ESS_ADK_SOURCE_URL in the bootstrap scripts to point at your internal mirror.