Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>PepperDash ToolkitNew to Visual Studio Code? Get it now.
PepperDash Toolkit

PepperDash Toolkit

PepperDash

|
3 installs
| (2) | Free
Manage PepperDash Essentials systems: inspect and update configurationFile.json versions against GitHub releases, and deploy to Crestron processors and touch panels.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

PepperDash Toolkit

A VS Code extension for managing Crestron systems running PepperDash Essentials. It reads *configurationFile*.json files, surfaces the versions block in a panel UI, and lets you view, add, update, and delete entries against live GitHub releases. It also provides an SSH-based deploy workflow for pushing files to Crestron processors and touch panels, and a bundler for building .cpz/.lpz/.cplz/.ch5z release artifacts.

Ships with the public PepperDash org configured out of the box. Private orgs and any GitHub Enterprise sources are added manually via the Sources panel — once added, they persist in your VS Code user settings across restarts and updates.


Requirements

  • VS Code ^1.90.0
  • GitHub authentication — no gh CLI required:
    • github.com sources use VS Code's built-in GitHub sign-in (prompted the first time you need authenticated access, or triggered manually from the Sources panel).
    • GitHub Enterprise (on-prem) sources use a personal access token, stored in VS Code's encrypted secret storage via the Sources panel or the PepperDash Toolkit: Set GHE PAT command.
  • 1Password CLI (op) (optional) — required only if you use 1Password as your deploy credential source.

Installation

From the Marketplace:

  1. Open the Extensions view (Cmd+Shift+X / Ctrl+Shift+X).
  2. Search for PepperDash Toolkit and click Install.

From a VSIX (pre-release or local builds):

  1. Download the VSIX from the Releases page.
  2. Open the Extensions view, click the … menu → Install from VSIX… → select the downloaded file.
# or from the terminal
code --install-extension pepperdash-toolkit-<version>.vsix

To update a VSIX install, install the newer file over the existing one — settings are preserved.


Getting Started

  1. Open a workspace containing a *configurationFile*.json file (e.g. a PepperDash super-project folder). The extension activates automatically.
  2. Click the PepperDash Toolkit icon in the Activity Bar to open its sidebar view.
  3. From the sidebar's welcome screen:
    • New Versions File / Open Versions File — create or open a configurationFile.json and launch the Versions panel.
    • New Deploy File / Open Deploy File — create or open a deploy.json and launch the System Deployments panel.
  4. The panel opens beside the editor with three tabs: Versions, System Deployments, and Bundle.

Features

Versions tab

Displays every entry in the versions block of the selected config file, grouped into four sections: Essentials (core framework), Packages (plugins), User Interfaces, and Touchpanel Wrapper.

Each entry card shows:

  • Name — editable inline; persisted to the JSON as the name field.
  • Package ID — the NuGet/package identifier.
  • Version — current version in the file, with a badge showing the latest GitHub release.
  • Repo — clickable link to the GitHub repository.

Card actions:

  • Check — fetch the latest release from GitHub for that entry.
  • Update → <tag> — write the latest version into the JSON (editor goes dirty; save with Ctrl+S / Cmd+S).
  • Delete — remove the entry from the array.

Toolbar actions:

  • Check — fetch latest releases for every entry in parallel.
  • Update all — apply all available updates in a single WorkspaceEdit.
  • Restore — revert the file to its last saved state.
  • Fetch from processor — connects to a live Crestron processor and compares its installed package manifest against the file, opening a diff dialog (grouped by section, badged New / Changed / Unchanged) that you can Apply to update the JSON in one edit.
  • Open / Save — open a different versions file, or save the current one.
  • Reload — re-read the file from disk, discarding unsaved changes.
  • Log — open the "PepperDash Toolkit" output channel to see every GitHub API request, status, and timing.
  • Sources — toggle the inline Sources panel (see below).

Adding entries:

  • Add package / Add UI — opens a dialog with two modes:
    • Search — select a source, type a query, and pick from results. Press Enter in the search field or click Search to run.
    • Paste URL — enter any GitHub repo URL directly.

All writes go through WorkspaceEdit — the JSON file goes dirty in the editor and you save explicitly. No surprise disk writes.


Sources panel

Toggled from the Sources button in the Versions toolbar. Manages the GitHub sources used when searching for packages and shows live authentication status per host.

  • Add source / edit / delete — each source has a label, host, org, and kind (public, private, or onprem).
  • Authentication status — one row per configured host:
    • github.com — Sign in with GitHub opens the VS Code account flow; sign out via the VS Code Accounts menu.
    • GitHub Enterprise hosts — Set personal access token prompts for a PAT (stored in secret storage); Clear token removes it.
    • Public-only hosts show a Public access only badge with an option to sign in for private-repo access.
  • Re-check — re-runs the auth check for a host.

System Deployments tab

SSH-based file deployment to Crestron processors and touch panels, backed by a per-workspace deploy.json (not the configurationFile.json).

Super-project root — set this (via the browse button) to your super-project's root folder. It anchors every mapping's local-root path and is also required by the Bundle tab.

Adding a device: click Add device and choose Processor or Touch Panel.

Device card:

  • Click the device name to rename it inline.
  • Collapse/expand the card body with the chevron button to keep the panel tidy when multiple devices are configured.

Credentials — choose one of two sources:

  • 1Password — provide a Vault UUID and Item UUID. The host IP is read from the item's saved URLs. Requires the op CLI.
  • Manual (session only) — prompted each time; nothing is stored.

Click Test connection to verify SSH access before deploying. A "Connected" badge confirms success.

File mappings — define what gets deployed and where:

  • Each mapping has a pattern (glob), a local root folder, and a remote directory on the processor.
  • .cpz and .lpz patterns automatically expand to include supporting files (config JSON, plugins, IR files, mobile control zips) with correct remote paths for the chosen program slot.
  • Click a mapping row to edit it, or use the upload icon to deploy just that mapping.

Deploy all — deploys every mapping for the device in order, streaming progress to the log panel below the card.


Bundle tab

Builds release artifacts for a system into the super-project root's output folder (set on the System Deployments tab). Four artifact types, each independently selectable:

Type Contents
Services Compiled Bundle Compiled programs, plugins, configs, and touchpanel files
Services Source Bundle Compiled bundle plus *_compiled.zip and touchpanel source companions
Asset Flat zip of the Essentials program's user files (config, plugins, IR, mobile control app)
Essentials with embedded Asset Copy of the Essentials .cpz with the asset zip injected

Solution — Solution ID and name; auto-detected from packages.json at the project root when present, or entered manually (required for Services bundles).

Version — a X.Y.Z version string plus an optional suffix (e.g. RC1).

Output folder — relative to the super-project root; artifacts land in <output>/bundles/, <output>/assets/, and <output>/cpz/.

Preview — shows the exact file tree each selected artifact will contain before building. Build runs the bundle, streaming progress (staging, zipping, done/error) to the log below.


Settings

Setting Default Description
essentialsVersions.sources 1 PepperDash default Array of { label, host, org, kind } sources available when adding entries. Managed via the Sources panel or VS Code settings; stored at the User (Global) scope, so entries you add persist across VS Code restarts and updates.
essentialsVersions.requestTimeoutMs 15000 Timeout (ms) for individual GitHub API requests.
essentialsVersions.deployTimeoutMs 30000 Timeout (ms) for SSH connections during deployment.
essentialsVersions.deploySshCompatMode auto SSH algorithm profile for deploy connections. auto tries the standard profile and retries once with a minimal profile on VPN/MTU-style handshake failures; standard and minimal pin one profile with no retry (minimal is useful when VS Code runs in a VM behind a host-level VPN, e.g. Parallels on macOS).

Default sources:

Label Host Org Kind
PepperDash github.com pepperdash public

For a GitHub Enterprise source, use the GHE hostname and "kind": "onprem".


License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft