Replit¶
Build a UiPath coded web app in Replit and deploy it to UiPath using @uipath/uipath-typescript + the uip CLI. Replit generates the app and deploys it for you, running the CLI in its own shell, which can read your stored Secrets.
Builds on Coded Apps
Replit apps deploy as standard UiPath coded apps. This page covers the Replit-specific steps; for platform, SDK, and CLI details see Coded Apps.
Watch the walkthrough¶
The full build, start to finish — prompt to a live app on a UiPath tenant.
The other builders are in the video gallery.
How it works¶
You build the app in Replit with the UiPath coded-apps skill (so it uses @uipath/uipath-typescript and the correct coded-app structure), then ask it to deploy — the skill runs the uip CLI for you (build → pack → publish → deploy) inside Replit. The deployed app is served at https://<org>.uipath.host/<app>.
Prerequisites¶
- A UiPath Automation Cloud account.
- Two external OAuth apps (UiPath Admin → External Applications):
- a non-confidential (public) app —
clientId+ scopes, used for end-user sign-in inside the app (baked into the build; safe to expose in the browser). - a confidential app —
clientId+clientSecret, used at deploy time byuip login. Give itApps.ReadandApps.Write, and assign it to the Orchestrator folder you will deploy to.
- a non-confidential (public) app —
See Coded Apps → Getting Started for the full external-app and uipath.json setup.
Step 1 — Load the UiPath coded-apps skill¶
Pick one:
Option 1 — reference the skill in your prompt (simplest). Add this line to your Step 2 build prompt so Replit's agent loads the skill directly from source:
Use the UiPath coded-apps skill at https://github.com/UiPath/skills/blob/main/skills/uipath-coded-apps/SKILL.md
Option 2 — install from npm. Replit has a shell, so run npm i @uipath/skills in the Shell and point your prompt at the coded-apps skill in that package. This pulls the published skill with no manual download or zip, and always gets the latest version.
Option 3 — import it as a Replit skill (zip). For a persistent workspace skill: download only the skills/uipath-coded-apps folder from the UiPath skills repo — not the whole repo, which is far too large to load as a skill — zip that folder, and upload it via Import code or design. (On paid plans you can install a folder as a skill directly.)
Step 2 — Build your app¶
With the skill loaded, just describe the app you want in plain language — there is no special wording or UiPath boilerplate to add. The skill handles the coded-app scaffolding for you.
The builder asks for the connection details it needs — organization, tenant, Data Fabric entity, and the public app's client ID — as it goes, so you don't supply them up front.

Must be a static SPA
Coded apps are static sites — the build must emit index.html at the dist root. The skill scaffolds this for you; if the builder defaults to a server-rendered (SSR) framework, switch it to a static/SPA build.
Step 3 — Add your deploy credentials¶
Add your confidential app's credentials in Replit's built-in Secrets (Tools → Secrets): UIPATH_CLIENT_ID and UIPATH_CLIENT_SECRET. Replit exposes Secrets as environment variables in the shell, so uip login can read them at deploy time — no secret in chat or code.

Step 4 — Deploy¶
Just ask Replit to deploy. Name the Orchestrator folder you want the app in — the skill resolves it and runs the whole uip pipeline in the Shell, reading the Secrets you set in Step 3:
Deploy this app to UiPath in the <folder-name> folder, using UIPATH_CLIENT_ID and UIPATH_CLIENT_SECRET from Secrets.
The skill signs in, builds, packs, publishes and deploys, then reports the hosted URL:

Open that URL and sign in to see the finished app:

Alternative — run the deploy yourself
If prompting gives you trouble (secrets not visible to the shell, agent stuck mid-deploy), open the Shell and run the same steps by hand:
uip login --client-id $UIPATH_CLIENT_ID --client-secret $UIPATH_CLIENT_SECRET \
--organization <org> --tenant <tenant> \
--scope "OR.Default Apps.Read Apps.Write"
npm run build
uip codedapp pack dist -n <app-name> --version 1.0.0
uip codedapp publish
uip codedapp deploy --folder-key <folder-key> # uip or folders list --output json
Troubleshooting¶
- Skill import won't accept a git URL — Replit's skill-import UI takes a zip (or a folder on paid plans), not an arbitrary git URL. This is only about the import UI: referencing the skill's
SKILL.mdURL in your prompt (Step 1, Option 1) still works. So for a persistent imported skill, use a zip.
Common to all builders:
index.html not foundduringuip codedapp pack— the build is SSR or the dist root is nested. Switch to a static SPA build soindex.htmlsits at the top ofdist/.401on publish/deploy — the deploy identity lacks access. Use a confidential app (client id + secret) or a PAT with the scopes above, and make sure it is assigned to the target Orchestrator folder.- Assets 404 after deploy — set Vite
base: './'and usegetAppBase()as your router basename. See Coded Apps → Getting Started. - Sign-in fails (
invalid_scope/Invalid redirect_uri) or deploy behaves oddly — see Troubleshooting sign-in and Deploy pitfalls.