In this video· click a step to jump to it
Test recording
Ciel — app walkthrough
187,078 ms · 98,473 pixels changed
We built this regression test for ciel.mistjs.com — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against ciel.mistjs.com. Claim it into your own workspace and re-run it on every deploy — free.
export async function test(page, baseUrl, screenshotPath, stepLogger) {
const CFG = {"appEntry":"/dashboard","publicMaxNav":0,"fullPage":true,"steps":[{"goto":"/dashboard","dismiss":true,"waitMs":2600,"label":"ai-workspace-chat"},{"fill":[{"sel":"textarea","value":"Schedule a 30-minute product design review with the team next Tuesday at 2pm and email everyone the agenda","seq":true}],"waitMs":1200,"label":"ai-command-typed"},{"submit":"Send","waitMs":6000,"label":"ai-command-sent-response"},{"clickText":"Inbox","waitMs":2500,"label":"inbox-view"},{"clickText":"Calendar","waitMs":2500,"label":"calendar-view"},{"clickText":"Settings","waitMs":2500,"label":"settings-integrations"},{"clickText":"Shortcuts","waitMs":2000,"label":"keyboard-shortcuts"},{"clickText":"New Chat","waitMs":2200,"label":"new-chat-session"},{"clickText":"History","waitMs":2200,"label":"chat-history"},{"clickText":"Chat","waitMs":1800,"label":"back-to-chat"}]};
const shot = function(i, s){ return screenshotPath.replace('.png', '-' + i + '-' + s + '.png'); };
page.setDefaultTimeout(6000);
// single combined noise-abort route (1 action instead of ~10)
await page.route(function(u){ return /sentry|segment\.com|googletagmanager|google-analytics|hotjar|posthog|connect\.facebook|cdn-cgi\/scripts/.test(u.toString()); }, function(r){ r.abort().catch(function(){}); }).catch(function(){});
let n = 1;
const FP = CFG.fullPage !== false;
const GOTO = 11000;
const wait = function(ms){ return page.waitForTimeout(ms||500); };
const dismiss = async function(){ const d = page.getByRole('button', { name: /skip|dismiss|maybe later|not now|got it|close|no thanks|continue|get started/i }).first(); if (await d.isVisible().catch(function(){return false;})) { await d.click({ timeout:2000 }).catch(function(){}); await wait(400); } };
const clickByText = function(src){ return page.evaluate(function(s){Checks run
Notes from the demo run
AI-generatedCiel leads with a striking terminal/console aesthetic ('THE SPEED OF THOUGHT. THE POWER OF CIEL.') and drops you straight into an authenticated AI workspace with Chat, Inbox, Calendar and Settings tabs. The sign-in panel lives inline on the landing page rather than a separate route, and registration auto-sessions with no email-verify gate, so a new user is operating the product within seconds.
- Instant auto-session signupCreate-account on the landing page grants an authenticated session immediately (no verify-email round trip) — the fastest path-to-product of any tool in this batch.
- Single command surfaceA single chat textarea ("Ask Ciel to send emails, list messages, or schedule meetings") is the whole interface — keystroke-first, very on-brand for the developer audience.
- Honest connection stateThe workspace shows GMAIL/CALENDAR as NOT CONNECTED up front rather than hiding it, so users know exactly what to wire up.
- Token quota shown but emptyNew accounts show 0 / 100,000 tokens and require connecting Google before commands execute — worth a one-line nudge on first load so the empty chat does not feel broken.
- /signup and /login 404Direct navigation to /signup or /login returns a 404; auth only renders on the landing root. A redirect would help anyone who guesses the URL.
9 visual changes
Share this run
Proof your app is not AI slop
This test was built for ciel.mistjs.com — claim it free
One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.


























