# Working in your IDE

> Push a locally built coded app into Studio Web with the UiPath CLI, and pull the last pushed source back into a local folder when you need to sync.

Because a coded app's source code is authored locally, most of your work happens in your own IDE. The UiPath CLI bridges that local workflow with the Studio Web project via two commands:

* `uip codedapp push` — upload your locally built app into the Studio Web project.
* `uip codedapp pull` — fetch the last pushed source from the Studio Web project into a local folder.

You do **not** need to pull before your first push. If you already have a local project ready, push it directly. If no project ID is provided, `push` interactively prompts to create a new coded app project in Studio Web and saves the resulting `UIPATH_PROJECT_ID` to `.env` for later pushes.

## Prerequisites

* Node.js 20.x or newer.
* The UiPath CLI. Install it globally with `npm install -g @uipath/cli`.
* Authenticate against the target UiPath org: `uip login`. This creates the `.env` file the CLI reads for `UIPATH_ORG_ID`, `UIPATH_TENANT_ID`, and `UIPATH_ACCESS_TOKEN`.
* A coded app project already initialized inside a solution in Studio Web (or let `push` create one interactively). See [Initializing a coded app project](https://docs.uipath.com/studio-web/automation-cloud/latest/user-guide/designing-coded-app-projects).

## Pushing your locally built app

From the project root, after producing the build output (for example, `npm run build`), run:

```bash
uip codedapp push --project-id <project-id>
```

The command uploads the build output directory (defaults to `dist`) to the Studio Web project.

If `UIPATH_PROJECT_ID` is set in `.env` — either from a previous auto-create or manually — you can omit the flag:

```bash
uip codedapp push
```

### Options

| Option | Description | Default |
|---|---|---|
| `--project-id <id>` | Studio Web project ID. | Read from `UIPATH_PROJECT_ID` in `.env`. Auto-created interactively if missing. |
| `--build-dir <dir>` | Build output directory to upload. | `dist` |
| `--ignore-resources` | Skip importing resources referenced by the app. | `false` |
| `--verbose` | Show detailed progress logs. | `false` |

On push, Studio Web:

* Stores every file in the pushed path and shows it in read-only mode under the project's **Source** view.
* Reads `bindings_v2.json`, if present at the root of the pushed content, and registers each declared resource under the project's **Resources** panel.

## Pulling the last pushed source

Use `pull` when you need to bring the last pushed source back into a local folder — for example, after a teammate pushed changes, or to reset a local working copy:

```bash
uip codedapp pull --project-id <project-id> --target-dir ./my-coded-app
```

### Options

| Option | Description | Default |
|---|---|---|
| `--project-id <id>` | Studio Web project ID. | Read from `UIPATH_PROJECT_ID` in `.env`. |
| `--target-dir <dir>` | Local directory to write pulled files to. | Current directory. |
| `--overwrite` | Overwrite existing files without prompting. | `false` |
| `--verbose` | Show detailed progress logs. | `false` |

The command writes the last pushed content into the target folder, exactly as it was pushed.

:::note
`uip codedapp pull` retrieves the files that were pushed, not any locally cached dependencies or build tooling. Reinstall dependencies (for example, `npm install`) after pulling before running the app.
:::

## Working with a teammate on the same project

Coded app projects do not have a built-in merge mechanism. If two developers push to the same project in parallel, the second push overwrites the first. To coordinate safely:

* Treat Git as the source of truth for source code, not the Studio Web project.
* Push to Studio Web from a known Git commit, ideally as part of a controlled release flow.
* Use `uip codedapp pull` to inspect what is pushed in Studio Web before overwriting it.

For the full CLI reference, see [`uip codedapp push`](https://docs.uipath.com/uipath-cli/standalone/latest/user-guide/uip-codedapp-push) and [`uip codedapp pull`](https://docs.uipath.com/uipath-cli/standalone/latest/user-guide/uip-codedapp-pull).
