Uniform Siphon - Sitecore Download commands Reference
This page is the command-line reference for the download (extract) phase of a Sitecore migration — the commands of Siphon.Download.exe that pull items, media, and presentation out of a live Sitecore instance through the deployed UniformMigrationService.aspx endpoint.
The executables, how configuration and environment variables are resolved, logging, and the common options shared by every command are documented once on the common reference. Each switch below lists its command-scoped environment variable; the global SIPHON_{PARAMETER} form works too.
If you are migrating for the first time, start with the Sitecore migration walkthrough — it explains when and why to run each command.
configure-download#
Interactive wizard (part of the siphon wrapper) that walks you through the download-phase settings and writes a ready-to-use .env. Run it once at the start of a migration instead of assembling environment variables by hand — it saves progress after each answer, so you can re-run it to resume or edit.
It prompts for the work directory, the common connection settings (database, service URL, secret), and per-command options for download-items, download-media, and (optionally) download-presentation, then writes keys such as SIPHON_DOWNLOAD_ITEMS_ROOT and SIPHON_DOWNLOAD_ITEMS_OUTPUTDIR. See the download guide for a full sample session. (For a blank template covering every key instead of a guided wizard, use siphon generate-dot-env.)
download-items#
Download Sitecore content items (and, optionally, their rendering datasources and field-referenced items) through the migration service. This is the backbone of the migration — every later phase reads from these files.
Required parameters#
SIPHON_DOWNLOAD_ITEMS_ROOT = <guid> (--root)
Root item whose subtree (item + all descendants) is downloaded. For a single site pass its Home item; for a multi-site solution either download sites one by one, or pass the all-content root 11111111-1111-1111-1111-111111111111 to grab everything.
SIPHON_DOWNLOAD_ITEMS_DATABASE = <string> (--database)
The Sitecore database to download from. Use web — the database that serves published content (i.e. your publishing target) — for a normal migration; if your solution publishes to a different database, use that one instead. You can run a second pass against master to also pull unpublished / draft content, but this is not recommended: reconciling draft and published versions adds significant complexity. Prefer publishing all required content before the content freeze and migrating from web only.
SIPHON_DOWNLOAD_ITEMS_UNIFORMSERVICEURL = <url> (--uniformServiceUrl)
Full URL to the UniformMigrationService.aspx you deployed to the Sitecore CM, e.g. https://sc.dev/layouts/UniformMigrationService.aspx.
SIPHON_DOWNLOAD_ITEMS_SECRET = <string> (--secret)
The secret phrase configured inside UniformMigrationService.aspx.
SIPHON_DOWNLOAD_ITEMS_OUTPUTDIR = <path> (--outputDir)
Local folder the downloaded items are written to.
Optional parameters#
SIPHON_DOWNLOAD_ITEMS_DOWNLOADRENDERINGSDATASOURCES = true|false (--downloadRenderingsDatasources)
Also download the rendering datasource items referenced from each page's Shared/Final Renderings layout, even when they live outside --root. Recommended, so components keep their content. Default: false.
SIPHON_DOWNLOAD_ITEMS_DOWNLOADFIELDSREFERENCES = true|false (--downloadFieldsReferences)
Also download items referenced from fields (links, droptrees, multilists, …) when they fall outside --root. Recommended, so references resolve during migration. Default: false.
SIPHON_DOWNLOAD_ITEMS_DEVICEID = (empty)|<guid> (--deviceId)
Sitecore device whose layout is read (default: the Default device {FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}).
SIPHON_DOWNLOAD_ITEMS_EXCLUDEITEMSFILE = (empty)|<path> (--excludeItemsFile)
Skip specific items. Point at a JSON file (or pass its contents) shaped as { "item-guid-1": "any comment", ... } — the keys are the item IDs to exclude.
SIPHON_DOWNLOAD_ITEMS_FORCE = true|false (--force)
Re-download items that already exist locally instead of skipping them. Use it to refresh a stale download. Default: false.
SIPHON_DOWNLOAD_ITEMS_INPUTFILE = (empty)|<path> (--inputFile)
Download only the items listed in a _missing-datasources-and-media-{timestamp}.json file (produced by an earlier run) — used to fetch items that were reported missing.
SIPHON_DOWNLOAD_ITEMS_UNSUCCESSFULDOWNLOADSFILENAME = (empty)|<string> (--unsuccessfulDownloadsFileName)
Override the name of the _unsuccessful_downloads-{timestamp}.json report file.
SIPHON_DOWNLOAD_ITEMS_DISABLEKEEPALIVECHECK = true|false (--disableKeepAliveCheck)
Stop polling /sitecore/service/keepalive.aspx. Use it when that endpoint is restricted or removed on the target instance. Default: false.
SIPHON_DOWNLOAD_ITEMS_THREADS = (empty)|<int> (--threads)
Number of parallel download workers. Default: 4.
SIPHON_DOWNLOAD_ITEMS_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each item before it is recorded as unsuccessful. Default: 3.
SIPHON_DOWNLOAD_ITEMS_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for each request to the migration service, in milliseconds. Default: 60000 (must be > 100).
SIPHON_DOWNLOAD_ITEMS_STOPONERROR = true|false (--stopOnError)
Abort the download on the first error instead of collecting errors and continuing. Default: false.
SIPHON_DOWNLOAD_ITEMS_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the download output folders before writing — use it when combining several runs into one folder. Default: false.
Plus the common options (--languages, logging).
Resuming a download
download-items is resumable. Items already present on disk ({outputDir}/{language}/{item-id}.json) are skipped, so an interrupted download can simply be re-run. Note that content created between attempts may not be picked up automatically — pass --force to refresh everything.
download-media#
Download Sitecore media library items and their binary files. Run it after download-items so --skipUnusedMedia can limit the download to the media your content actually references.
Required parameters#
SIPHON_DOWNLOAD_MEDIA_DATABASE = <string> (--database)
The Sitecore database — normally web (the publishing target); match whatever you used for download-items. See download-items for when a second master pass makes sense.
SIPHON_DOWNLOAD_MEDIA_UNIFORMSERVICEURL = <url> (--uniformServiceUrl)
URL to the deployed UniformMigrationService.aspx.
SIPHON_DOWNLOAD_MEDIA_SECRET = <string> (--secret)
Service secret.
SIPHON_DOWNLOAD_MEDIA_OUTPUTDIR = <path> (--outputDir)
Destination folder for the media item JSON (typically the same items folder used by download-items, so references line up).
Optional parameters#
SIPHON_DOWNLOAD_MEDIA_SKIPUNUSEDMEDIA = true|false (--skipUnusedMedia)
Download only the media files referenced by previously-downloaded content. Usually a large reduction in volume. Cannot be combined with --root. Default: false.
SIPHON_DOWNLOAD_MEDIA_ROOT = (empty)|<guid> (--root)
Media library subtree to download from (or, with --skipUnusedMedia off, to filter by). Not supported together with --skipUnusedMedia.
SIPHON_DOWNLOAD_MEDIA_MEDIAROOTDIR = (empty)|<path> (--mediaRootDir)
Folder the binary files are written to (default: {outputDir}/media). Keep it separate from the items folder.
SIPHON_DOWNLOAD_MEDIA_MEDIAPREFIX = (empty)|<string> (--mediaPrefix)
The media URL prefix to recognise/strip (default /-/media/). Change it only if your instance serves media under a different prefix.
SIPHON_DOWNLOAD_MEDIA_EXCLUDEUNSUPPORTEDMIMETYPES = true|false (--excludeUnsupportedMimeTypes)
Skip files whose MIME type Uniform does not yet support, instead of downloading them. Default: false.
SIPHON_DOWNLOAD_MEDIA_DEVICEID = (empty)|<guid> (--deviceId)
Sitecore device whose layout is read (default: the Default device {FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}).
SIPHON_DOWNLOAD_MEDIA_EXCLUDEITEMSFILE = (empty)|<path> (--excludeItemsFile)
Exclude specific media items via a JSON file shaped as { "item-guid": "comment", ... }.
SIPHON_DOWNLOAD_MEDIA_FORCE = true|false (--force)
Re-download media that already exists locally. Default: false.
SIPHON_DOWNLOAD_MEDIA_INPUTFILE = (empty)|<path> (--inputFile)
Fetch only the media listed in a _missing-…json file from an earlier run.
SIPHON_DOWNLOAD_MEDIA_UNSUCCESSFULDOWNLOADSFILENAME = (empty)|<string> (--unsuccessfulDownloadsFileName)
Override the name of the unsuccessful-downloads report file.
SIPHON_DOWNLOAD_MEDIA_DISABLEKEEPALIVECHECK = true|false (--disableKeepAliveCheck)
Stop polling keepalive.aspx. Default: false.
SIPHON_DOWNLOAD_MEDIA_THREADS = (empty)|<int> (--threads)
Number of parallel media-download workers. Default: 4.
SIPHON_DOWNLOAD_MEDIA_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each media file before it is recorded as unsuccessful. Default: 3.
SIPHON_DOWNLOAD_MEDIA_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for each request to the migration service, in milliseconds. Default: 60000 (must be > 100).
SIPHON_DOWNLOAD_MEDIA_STOPONERROR = true|false (--stopOnError)
Abort the download on the first error instead of collecting errors and continuing. Default: false.
SIPHON_DOWNLOAD_MEDIA_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the download output folders before writing — use it when combining several runs into one folder. Default: false.
Plus the common options (--languages, logging).
Versioned media
To download unversioned media files, set Media.RequestProtection.Enabled to false and clear the cache via /sitecore/admin/cache.aspx on the source instance first.
download-presentation#
Download the Sitecore presentation layer — each page's rendered markup captured in Experience Editor mode (its special markup carries the hierarchical placeholder/rendering structure Siphon needs). This lets the migration reconstruct the component hierarchy of compositions and, experimentally, code-generate React components. It is optional: skip it for a content-only migration.
The command logs into Sitecore with Playwright and finds every previously-downloaded item under --startPath that has presentation assigned (a non-empty Layout or Page Design field). Install Playwright first with .\playwright.ps1 install (see the installation guide).
Required parameters#
SIPHON_DOWNLOAD_PRESENTATION_INPUTDIR = <path> (--inputDir)
Folder of the previously downloaded Sitecore items (the download-items output).
SIPHON_DOWNLOAD_PRESENTATION_OUTPUTDIR = <path> (--outputDir)
Destination for the presentation files (index.html + index.json per page).
SIPHON_DOWNLOAD_PRESENTATION_HOST = <url> (--host)
The Sitecore CM URL, e.g. https://sc.dev/. A bare host is upgraded to https:// (or http:// for localhost/IPs).
SIPHON_DOWNLOAD_PRESENTATION_PRODUCTIONHOST = <url> (--productionHost)
The production/CD host used for production-HTML comparison, e.g. when --host is https://cm.example.com the production host is https://www.example.com.
SIPHON_DOWNLOAD_PRESENTATION_STARTPATH = <path> (--startPath)
Site root item, e.g. /sitecore/content/Habitat/Home.
SIPHON_DOWNLOAD_PRESENTATION_LOGINURL = <url> (--loginUrl)
Sitecore login page used, with --username/--password, to authenticate the Playwright session.
SIPHON_DOWNLOAD_PRESENTATION_USERNAME = <string> (--username)
Sitecore user for the Experience Editor session.
SIPHON_DOWNLOAD_PRESENTATION_PASSWORD = <string> (--password)
Password for that user.
SIPHON_DOWNLOAD_PRESENTATION_DATABASE = <string> (--database)
The Sitecore database — normally web (the publishing target), matching your download-items run; defaults to the logged-in user's context database. See download-items for the master/draft-content note.
Optional parameters#
SIPHON_DOWNLOAD_PRESENTATION_VIRTUALPATH = (empty)|<path> (--virtualPath)
Capture only a sub-tree of the site, e.g. /about-habitat.
SIPHON_DOWNLOAD_PRESENTATION_SITENAME = (empty)|<string> (--siteName)
The Sitecore <site> name (from <sites> in showconfig, or the SXA Site item) to render under in Experience Editor, e.g. website.
SIPHON_DOWNLOAD_PRESENTATION_ASSETHOST = (empty)|<url> (--assetHost)
Asset host used to make media URLs absolute, e.g. https://sc.blob.core.windows.net/assets.
SIPHON_DOWNLOAD_PRESENTATION_ASSETS = true|false (--assets)
Also download the presentation assets (stylesheets, scripts, images) referenced in the production HTML of each page. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_SKIPDESCENDANTS = true|false (--skipDescendants)
Capture only the matched items themselves, not their descendants. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_EXCLUDETEMPLATES = (empty)|<list> (--excludeTemplates)
Pipe-separated list of templates (names or IDs) to skip downloading.
SIPHON_DOWNLOAD_PRESENTATION_RESTOREINITIALCOOKIES = true|false (--restoreInitialCookies)
After a successful login, save the cookies and restore them before every subsequent request (helps with instances that rotate session state). Default: false.
SIPHON_DOWNLOAD_PRESENTATION_FORCE = true|false (--force)
Re-download the Experience Editor HTML and regenerate the index.json files even if they are already cached. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_WHATIF = true|false (--whatIf)
Dry run: make no web requests, only log the intended actions. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_DISABLEKEEPALIVECHECK = true|false (--disableKeepAliveCheck)
Stop polling keepalive.aspx. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_THREADS = (empty)|<int> (--threads)
Number of parallel page captures (Experience Editor sessions). Default: 4.
SIPHON_DOWNLOAD_PRESENTATION_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each page before it is recorded as unsuccessful. Default: 3.
SIPHON_DOWNLOAD_PRESENTATION_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for each request to Sitecore, in milliseconds. Default: 60000 (must be > 100).
SIPHON_DOWNLOAD_PRESENTATION_STOPONERROR = true|false (--stopOnError)
Abort the download on the first error instead of collecting errors and continuing. Default: false.
SIPHON_DOWNLOAD_PRESENTATION_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the output folders before writing — use it when combining several runs into one folder. Default: false.
Plus the common options (--languages, logging).
Utility commands#
These auxiliary Siphon.Download.exe commands are not part of the normal download flow but are handy for testing, troubleshooting, and reprocessing already-downloaded data. Each also accepts the common options.
test-connection#
Verify connectivity and authentication to the deployed UniformMigrationService.aspx before starting a real download — it simply downloads the list of languages and reports success or failure.
SIPHON_TEST_CONNECTION_DATABASE = <string> (--database)
Sitecore database — required; normally web (the publishing target). See download-items.
SIPHON_TEST_CONNECTION_UNIFORMSERVICEURL = <url> (--uniformServiceUrl)
URL of the deployed UniformMigrationService.aspx — required.
SIPHON_TEST_CONNECTION_SECRET = <string> (--secret)
Service secret — required.
SIPHON_TEST_CONNECTION_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each connection attempt before it is recorded as unsuccessful. Default: 3.
SIPHON_TEST_CONNECTION_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for the request to the migration service, in milliseconds. Default: 60000 (must be > 100).
SIPHON_TEST_CONNECTION_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the output folders before writing — use it when combining several runs into one folder. Default: false.
debug-get-item#
Fetch a single downloaded item and print its JSON — useful when diagnosing why a specific item migrated the way it did.
SIPHON_DEBUG_GET_ITEM_INPUTDIR = <path> (--inputDir)
required; the downloaded items folder.
SIPHON_DEBUG_GET_ITEM_ITEM = <guid>|<path> (--item)
required; the item to dump, as an ID ({110D559F-…}) or a path (/sitecore/content/Home).
SIPHON_DEBUG_GET_ITEM_LANGUAGE = (empty)|<string> (--language)
optional; language version to read (defaults to --defaultLanguage).
SIPHON_DEBUG_GET_ITEM_THREADS = (empty)|<int> (--threads)
Worker count (rarely relevant for a single item). Default: 4.
SIPHON_DEBUG_GET_ITEM_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each fetch before it is recorded as unsuccessful. Default: 3.
SIPHON_DEBUG_GET_ITEM_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for the request, in milliseconds. Default: 60000 (must be > 100).
SIPHON_DEBUG_GET_ITEM_STOPONERROR = true|false (--stopOnError)
Abort the run on the first error instead of collecting errors and continuing. Default: false.
SIPHON_DEBUG_GET_ITEM_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the output folders before writing — use it when combining several runs into one folder. Default: false.
reindex#
Rebuild the item index (index.json) from the items already on disk — run it after manually adding, removing, or editing downloaded item files so later stages see a consistent index. (The media index is not rebuilt.) Also available from Siphon.Migration.exe.
SIPHON_REINDEX_INPUTDIR = <path> (--inputDir)
required; the downloaded items folder.
SIPHON_REINDEX_THREADS = (empty)|<int> (--threads)
Number of parallel reindex workers. Default: 4.
rebuild-presentation#
Regenerate the presentation index.json files from the cached index.html files without re-downloading — useful after a layout-parser change to reprocess captured markup quickly.
SIPHON_REBUILD_PRESENTATION_INPUTDIR = <path> (--inputDir)
required; the downloaded items folder.
SIPHON_REBUILD_PRESENTATION_PRESENTATIONDIR = <path> (--presentationDir)
required; the folder holding the cached index.html files.
SIPHON_REBUILD_PRESENTATION_STARTPATH = <path> (--startPath)
required; the site root item.
SIPHON_REBUILD_PRESENTATION_OUTPUTDIR = (empty)|<path> (--outputDir)
where the regenerated index.json files go (defaults to --presentationDir).
SIPHON_REBUILD_PRESENTATION_PRODUCTIONHOST = (empty)|<url> (--productionHost)
production/CD host used for the component-HTML comparison.
SIPHON_REBUILD_PRESENTATION_ASSETHOST = (empty)|<url> (--assetHost)
asset host used to make media URLs absolute.
SIPHON_REBUILD_PRESENTATION_SKIPEXISTING = true|false (--skipExisting)
skip pages whose index.json already exists. Default: false.
SIPHON_REBUILD_PRESENTATION_THREADS = (empty)|<int> (--threads)
Number of parallel page workers. Default: 4.
SIPHON_REBUILD_PRESENTATION_RETRYCOUNT = (empty)|<int> (--RetryCount)
Retry attempts for each page before it is recorded as unsuccessful. Default: 3.
SIPHON_REBUILD_PRESENTATION_TIMEOUT = (empty)|<int> ms (--Timeout)
Timeout for each request, in milliseconds. Default: 60000 (must be > 100).
SIPHON_REBUILD_PRESENTATION_STOPONERROR = true|false (--stopOnError)
Abort the run on the first error instead of collecting errors and continuing. Default: false.
SIPHON_REBUILD_PRESENTATION_SKIPCLEARINGFOLDERS = true|false (--skipClearingFolders)
Do not clear the output folders before writing — use it when combining several runs into one folder. Default: false.
File structure after download#
When all downloads complete, your work directory holds the raw Sitecore export:
Related pages#
- Common reference — executables, configuration, environment variables, logging, and the common options.
- Migrate commands reference — the transform commands (
uniform-canvas,uniform-content). - Push commands reference — the load-phase commands.
- Sitecore migration walkthrough — the end-to-end, explained migration process.