Skip to content

Commit c449466

Browse files
Document Cursor Cloud VM setup for Node, Bun, and Playwright (#95)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
1 parent 94e0d9e commit c449466

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,45 @@ regular schedule.
2525
- [Naming and structure](docs/agents/naming-and-structure.md)
2626
- [Scripts](docs/agents/scripts.md)
2727
- [Security](docs/agents/security.md)
28+
29+
## Cursor Cloud specific instructions
30+
31+
See also [.cursor/CLOUD.md](.cursor/CLOUD.md) for the command quick reference.
32+
33+
### Node and Bun on the VM
34+
35+
The default `node` on Cursor Cloud VMs may be `/exec-daemon/node` (older than the
36+
repo’s `^24` requirement). Use nvm Node 24 and Bun on your `PATH` before running
37+
scripts, for example:
38+
39+
```bash
40+
export NVM_DIR="$HOME/.nvm"
41+
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
42+
nvm use 24
43+
export PATH="$HOME/.nvm/versions/node/v24.16.0/bin:$HOME/.bun/bin:$PATH"
44+
```
45+
46+
Install Bun once if missing: `curl -fsSL https://bun.sh/install | bash`
47+
48+
### First-time database setup
49+
50+
After `bun install`, run `bun run setup:env` (copies `.env.example`, migrates
51+
SQLite, generates Prisma client). Optional full local bootstrap:
52+
`bun run setup:local` (build, seed, Playwright Chromium).
53+
54+
### Dev server
55+
56+
`bun run dev` serves on port 3000 with `MOCKS=true` (MSW mocks Twilio/Stripe).
57+
Use a tmux session for long-running dev.
58+
59+
### Seeded demo account
60+
61+
After `bunx prisma db seed`, log in as username `kody` / password `kodylovesyou`
62+
and open `/recipients` to exercise the core product flow.
63+
64+
### Playwright in this environment
65+
66+
`bunx playwright install --with-deps chromium` can stall after the download
67+
reaches 100%. If browser binaries are incomplete, kill stuck install processes,
68+
remove `~/.cache/ms-playwright/__dirlock`, and retry—or run UI checks with
69+
`chromium.launch({ channel: 'chrome' })` using the system Google Chrome package.

0 commit comments

Comments
 (0)