---
name: cloud-shell-getting-started
title: Getting started with IBM Cloud Shell
description: In this getting started tutorial, you use IBM&reg; Cloud Shell to clone a sample Node.js app. IBM Cloud Shell is a cloud-based shell workspace that you can access through your browser. Cloud Shell is preconfigured with the full IBM Cloud CLI and tons of plug-ins and tools that you can use to manage apps, resources, and infrastructure.
last-updated: 2025-02-20
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/cloud-shell?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Getting started with IBM Cloud Shell
{: #getting-started}
{: toc-content-type="tutorial"}
{: toc-services=""}
{: toc-completion-time="30m"}

In this getting started tutorial, you use IBM&reg; Cloud Shell to clone a sample Node.js app. IBM Cloud Shell is a cloud-based shell workspace that you can access through your browser. Cloud Shell is preconfigured with the full [IBM Cloud CLI](https://cloud.ibm.com/docs/cli?topic=cli-getting-started&format=markdown) and tons of plug-ins and tools that you can use to manage apps, resources, and infrastructure.
{: shortdesc}

New to Cloud Shell? [Watch the demo video](https://www.youtube.com/watch?v=a8YHFyYfpVI){: external} to see how you can start to use the service from the IBM Cloud console.
{: tip}

## Before you begin
{: #prereqs}

- If you don't already have an IBM Cloud account, [sign up for one](https://cloud.ibm.com/registration/){: external} and log in.
- Note the following account access information that might affect your access to Cloud Shell and its features:
   - An account administrator can grant specific users access to Cloud Shell and its features, even if Cloud Shell settings are disabled at the account level. For more information, see [Assigning access to Cloud Shell and its features at a user level](https://cloud.ibm.com/docs/account?topic=account-shell-settings&format=markdown#shell-access-user).
   - Account owners or users with Cloud Shell administrator access can enable or disable Cloud Shell features for an account. The available features in this release are **File upload and download** and **Web preview**. The feature settings apply only to the enabled Cloud Shell locations. For more information, see [Enabling or disabling Cloud Shell features for an account](https://cloud.ibm.com/docs/account?topic=account-shell-settings&format=markdown#shell-features-enable).
   - For more information, see [IAM roles and actions](https://cloud.ibm.com/docs/account?topic=account-iam-service-roles-actions&format=markdown#cloudshell-roles).

## Start a session in IBM Cloud Shell
{: #open-shell}
{: step}

In the IBM Cloud console, click the IBM Cloud Shell icon ![IBM Cloud Shell icon](../icons/terminal-cloud-shell.svg). A session starts and automatically logs you in through the IBM Cloud CLI.

## Clone the Node.js sample app
{: #clone-app}
{: step}

Your Cloud Shell session starts in the temporary home directory, `/home/<user-name>`. Clone the [Node.js Express sample app](https://github.com/IBM/nodejs-express-app){: external} to this directory and then change to the sample app directory by running the following commands.

```bash
git clone https://github.com/IBM/nodejs-express-app.git
```
{: pre}

```bash
cd nodejs-express-app
```
{: pre}

From your app directory, run the following command to view the new files.

```bash
ls
```
{: pre}

You can see that your `nodejs-express-app` directory contains all of the sample app files and folders.

```text
Dockerfile  Dockerfile-tools  LICENSE  README.md  package-lock.json
package.json  public  scripts  server  test
```
{: screen}

## Preview the app locally
{: #preview-app-locally}
{: step}

You can start it in Cloud Shell and preview it locally.

1. First, download project dependencies for the Node.js sample app.

   ```bash
   npm install --only=prod
   ```
   {: pre}

1. Start the app.

   ```bash
   npm run start
   ```
   {: pre}

   When the app is running, it outputs the location where the app UI is available. For Cloud Shell, you need to note only the port, which in this case is `3000` .

   ```text
   > nodejsexpressapp@1.0.0 start /home/my-user-name/nodejs-express-app
   > node server/server.js

   App UI available http://localhost:3000
   Swagger UI available http://localhost:3000/swagger/api-docs
   ```
   {: screen}

1. In the Cloud Shell menu bar, click the **Web preview** icon ![Web preview](../icons/view.svg), and select port 3000.

   Your app preview opens in a new window. If you see the congratulations message, your app is running locally in Cloud Shell!

1. Press `Control+C` to stop the app.

## Next steps
{: #next-steps}

From Cloud Shell, you can quickly run commands on your IBM Cloud account. For example:

- [Managing IAM access, API keys, service IDs, and access groups](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_iam&format=markdown)
- [Viewing billing and usage information](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_billing&format=markdown)

In addition to the IBM Cloud CLI, Cloud Shell is preconfigured with all IBM Cloud CLI plug-ins and many tools and runtimes to help you work in the cloud. For the full list, see [Installed plug-ins and tools](https://cloud.ibm.com/docs/cloud-shell?topic=cloud-shell-plugins-tools&format=markdown).