TaskSultan runs on your machine. You need Node at a supported version, Git and a couple of minutes. This page takes you from an empty shell to a running demo application and a Studio you can open in a browser.
#What you need first
The engines field in package.json is the real requirement:
>=22.13.0 <23.0.0 || >=23.4.0
That means Node 22 from 22.13 upward, or Node 23 from 23.4 upward. Node 22 is what continuous integration builds and tests on, so it is the version to use if you want the fewest surprises. The floor is not arbitrary. The database capability runs on Node's built-in SQLite module, which does not exist on Node 20, so an older Node fails on capability code rather than at install time.
Git is needed because the automation is the artifact here. Runs are recorded, automations are reviewed and the history is the record of what changed. Install Git, then clone the repository:
git clone https://github.com/docoblack/tasksultan-rpa.git
cd tasksultan-rpa
#Install the dependencies
From the repository root:
npm install
This installs the runtime the platform is built on: tsx to run TypeScript directly, playwright and
@playwright/test for the browser engine, exceljs for the Excel capability plus React, Monaco and Vite for the
Studio. The packages land in node_modules/.
#Install the browser engine
Playwright ships the driver as a package, but the browser binary is a separate download. The Robot drives Chromium:
npx playwright install chromium
Skip this and npm install still reports success, then your first run dies when it tries to launch a browser that is
not there. Only Chromium is needed for the example. If you want the other engines later, npx playwright install
fetches them all.
#Start the demo application
The examples drive a small application that ships with the repository. Start it in its own terminal:
npm run demo
That runs node demo-app/server.mjs and serves an Order Processing app on http://127.0.0.1:4100. It has no
dependencies, no build step and it holds its state in memory. On start it prints the URL, a pending order list and its
own demo login. The login page labels the fields Username and Password. The automation signs in through that form
with a credential the Robot resolves by name, so no password is written into automation code.
The server reads a few environment variables. DEMO_PORT and DEMO_HOST move it. DEMO_FIXTURES chooses which queue
it seeds: default (success, business, flaky and outage orders), no-fail, empty, or bench for a large clean
queue. Leave it alone for the first run.
#Start the Studio
Open the Studio in a browser:
npm run studio
That starts the API server on port 4174 and a Vite dev server on port 4173, which proxies /api to the API. The command
prints http://127.0.0.1:4173 and http://127.0.0.1:4174 on start; open the first one. The Studio spawns the Robot per
run, so the same execution path runs whether you start work here or from the command line.
For a built copy served by the API server alone:
npm run start
That runs build:studio and then serves the built Studio on port 4174. Two narrower scripts exist if you want only one
half: npm run studio:server for the API, npm run studio:web for Vite.
#Things that catch people out
- The demo application must be listening before a run that targets it. Keep it in a second terminal, because a run against a closed port fails the queue request rather than the browser.
- Install the browser engine as a separate step. It is the one failure that looks like a working install.
artifacts/,data/andtest-results/are gitignored, so a fresh clone has none of them. The Excel examples seed their own workbooks withnpm run demo:data,npm run demo:ordersandnpm run demo:customers.- Restarting the demo application reseeds its in-memory queue, which is convenient for a repeat run.