While for Mac

Waiting for AI?
Meet someone who's waiting too.

Download for Mac

Free · macOS 14 or later · Apple silicon & Intel · 1.6 MB

CodeFileEditSelectionViewGoRunTerminalWindowHelpFri 26 Sep  2:14 AM
acme-web
2
EXPLORER···
⌄ ACME-WEB
›.github
⌄e2e
TSauth.spec.ts
⌄src
›app
⌄auth
TSjwt.ts
TSmiddleware.ts
TSsession.ts
›lib
⚙.env.example
{}package.json
M↓README.md
{}tsconfig.json
TS session.ts×TS middleware.ts
src › auth › session.ts › ƒ refreshSession
1import { cookies } from "next/headers";
2import { db } from "@/lib/db";
3import { sign, verify, type Claims } from "./jwt";
4
5const TTL = 60 * 60 * 24 * 7;
6const REFRESH_WINDOW = 60 * 5; // refresh in the last 5 minutes
7const now = () => Math.floor(Date.now() / 1000);
8
9export async function getSession() {
10 const token = (await cookies()).get("sid")?.value;
11 if (!token) return null;
12 const claims = await verify(token);
13 if (!claims) return null;
14 if (claims.exp - now() < REFRESH_WINDOW) {
15 return refreshSession(claims);
16 }
17 return claims;
18}
19
20export async function refreshSession(claims: Claims) {
21 const next = await sign({ ...claims, exp: now() + TTL });
22 await db.session.update({ id: claims.sid, token: next });
23 return verify(next);
24}
PROBLEMSOUTPUTDEBUG CONSOLETERMINALPORTS✻ claude

✻ Welcome to Claude Code!

  /help for help · cwd: ~/code/acme-web

> 

? for shortcuts⏵⏵ accept edits on

⟩⟨⎇ main⊗ 0 ⚠ 0Ln 22, Col 5Spaces: 2UTF-8{ } TypeScript
whilehideleave

Back to work.

Claude's done. While folded itself away.

Don't wait alone.

Claude is working.

How it works

Your AI is working.
So is everyone else's.

acme-web — claude

✻ Welcome to Claude Code!

  /help for help · cwd: ~/code/acme-web

> fix the flaky session refresh and add tests

⏺I'll start with how sessions get refreshed.

⏺Read(src/auth/session.ts)

⎿Read 64 lines

⏺Search(pattern: "refreshSession", path: "src")

⎿Found 4 files

⏺Two requests can refresh the same session at once — the second one overwrites the first token. I'll put a lock around it.

⏺Update(src/auth/session.ts)

⎿Updated src/auth/session.ts with 8 additions and 3 removals

⏺Write(src/auth/session.test.ts)

⎿Wrote 48 lines to src/auth/session.test.ts

⏺Bash(npm run test:e2e -- auth)

⎿Running…

✽Cogitating… (38s · ↓ 1.7k tokens · esc to interrupt)

> 

? for shortcuts⏵⏵ accept edits on

01

AI is working.

You hit send in Claude, ChatGPT or Cursor. Now you wait.

CodeFileEditView2:14 AM
02

While appears.

Two tiny eyes wake up in your notch, with a count of everyone else who's waiting.

whilelive · 1:1 with @mayahideleave

@maya

debugging a flaky test at 2am

you
next
03

Meet someone.

One click, a random 1:1 video call with a real person who's waiting too.

CodeFileEditView2:14 AM
04

Or play.

Nobody around? Three tiny games, right in the notch. Someone shows up — you'll know.

CodeFileEditView2:14 AM
05

Back to work.

Your AI finishes. While says so, then folds itself away.

The experience

Lives in the notch.

No window to find, no tab to keep open. While sits in the one part of your screen you never use.

  1. 01

    Asleep

    Two tiny eyes beside your notch. Green means people are around.

  2. 02

    Awake

    Hit send in Claude — or press ⌃⌥W — and it knows you're waiting.

  3. 03

    Who else is here

    Click it: how many people are waiting right now, and who wants to talk.

  4. 04

    Random call

    One click. A random person who's also waiting. The call opens right below.

  5. 05

    Play

    Nobody around? Three tiny games, inside the notch.

  6. 06

    Someone's here

    The moment someone shows up, a small pill. Join, or keep playing.

  7. 07

    Gone

    Your AI finishes. While folds back into two eyes and lets you work.

CodeFileEditView2:14 AM

Random video

Someone else is waiting too.

A live, one-to-one video call with a real person who's also waiting on their AI. Talk until it's done — or press next.

whilefinding someone who's also waitinghideleave

Finding someone who's also waiting…

Random human.

No profiles to browse, nobody to swipe. Just whoever is waiting when you are.

Right now.

Live and one-to-one. Nothing is recorded, and there's no chat history to keep.

While you wait.

When your AI finishes, you go back to work. That's the whole thing.

Adults only (18+). Report or block anyone in one click — and they're gone.

AI is what you're waiting for.

Humans are what you talk to.

While isn't an AI, and it never talks to you. It finds you a person — then gets out of the way.

No one around?

Play while you wait.

Three tiny games, built into the notch. Solo, quick, and gone the moment someone shows up.

CodeFileEditView2:14 AM
👀@sam.codes is waitingjoin video✕

Someone shows up mid-game? You'll see them right there. Join, and the game folds away.

Zero AI. No leaderboards to grind — just your best, and today's best.

Your AI can wait.
You don't have to.

While is made for Mac. Open this page on your Mac to download it.

Download the .dmg anyway

Free · macOS 14 or later · Apple silicon & Intel · 1.6 MB

Lives in the notch · Sign in with Google or email, inside the app