**ober** This CLI tool will help you submit .appxupload packages straight to the Windows Store. It uses the submission API to achieve this.

uwp, submission, API, windows, store, appxupload, submit, ci, cd, continuous, deployment, delivery, C#, console, cli
Install-Package ober -Version 0.5.56



Build status Coverage GitHub release chocolatey Nuget package

Automate your Windows Store App deploys

This CLI tool is made to help you make use of the Windows Store Submission API. The setup is similar to the Analytics API, a guide can be found here.

Just make sure the App ID URL is https://manage.devcenter.microsoft.com and not anything app specific. This will also allow access to the analytics API, the documentation is a bit off.

My steps were:

  • Navigate to the old Azure portal and select the correct directory (the one associated with the Store)
  • Select Applications
  • Add new and select Add an application my organization is developing
  • Enter a name and select Web application and/or web API
  • Sign on URL doesn't matter, APP ID URL is https://manage.devcenter.microsoft.com
  • Wait for it to configure
  • You will have to create a new key and copy that and the Client ID
  • Get the tenant ID from the URL above: https://manage.windowsazure.com/@<your_tenant_name>#workspaces/ActiveDirectoryExtension/Directory/<your_tenant_ID>/direcotryQuickStart
  • Add the application by selecting it from the list in your Windows Store's settings (Manage Users)


Ober get's it's settings from a YAML config file called .oberconfig in your user's root folder (~.oberconfig). Create or edit that file to get started, the template is as follows:

  ClientId: <clientID>
  Key: <key>
  TenantId: <tenantID>


Currently only the submit command has been implemented, it can be used to deploy packages to the Store for both regular releases and flights. The submission API wants all assets bundled in a .zip file, so provide all .appxupload files in the zip. Ober will not allow the submission when no packages are found inside of the zip file.


ober submit -a "<appID>" -p "<zip location>"
ober submit -a "<appID>" -f "<flightID>" -p "<zip location>"

If you need a more detailed log (WIP, it might break the progress indicators for now), you can use -v to toggle verbose logging.

Jan-Joris, Ober and Out!