Create a private Chrome app

This article is for Chrome administrators and developers with experience developing Chrome web apps.

Many schools and businesses want to be able to create bookmark apps such as an app pointing to their school calendar or HR website, and force install these apps on their students' computers.

Currently, in the Chrome settings page, you can specify the Home Page URL and Pages to Load on Startup. However, if you want to force install bookmark apps so that they appear for your users when they open a new tab in Chrome, follow the steps below.

You will need to own the site you're linking to and have it verified in your Google Webmaster Tools in order to link to it in a Chrome web app.

Step 1. Build your app

Create your app as a manifest.json file. You can do this in a text editor like Notepad on Windows or TextMate on Mac creating a .txt file, and saving it as manifest.json. Save the file in a folder on your desktop. Title the folder the name of your app.

Create a 128px by 128px logo for your app. Name the file 128.png and put it in the same folder as the manifest.json file.

Host your the JSON file and logo on App Engine or your own web server.

For example, you can host your file on a Google Site, corporate web server, or App Engine. Note that App Engine hosting is free for all types of G Suite users as long as you stay below their usage quotas.

Step 2. Test your app

Browse to and Select the folder where your manifest.json file is and logo.

If your file doesn't immediately load, check to make sure the JSON code is formatted correctly with the JSON Validator.

Open a new tab in Chrome to see if your app loads and functions correctly. If not, tweak it and test it until it's working correctly in your browser.

Step 3. Pack your app

When your app is ready, go to Tools > Extensions in Chrome and click Pack extension...

Select the folder on your desktop that contains the manifest.json file. Entering a private key is optional.

Click Pack Extension. You will receive a confirmation window, telling you to keep the .pem file safe and not to delete it.

Put the .crx file that's saved on your desktop in the same folder where you have the manifest.json file. (crx is a type of .zip file)

Uninstall the unpacked version of the Chrome app so it won't conflict with the packed app.

Drag and drop the new .crx file into Chrome browser to install the packed app.

Step 4. Find app ID

Download the Chrome ID Finder extension to get your app's ID. Currently, the only way to get your app's ID is by clicking this link to install the Chrome ID Finder extension on your Chrome browser.

Click the puzzle piece extension icon in the top-right of your browser to launch the extension. This opens a new page that lists the Chrome apps you have installed and their app ID. Copy and paste the ID for your app.

Create an auto-update.xml file like the one below and upload it to your hosting location. This ensures that your URL app will be updated if you create a new version.

Insert the app ID and location of where you want to store the packed app, such as in App Engine, Google Sites, or your server.