← All recipes
Cursor~4 min

Cursor: terminal-driven auto-loop

Cursor reads its integrated terminal as context. Pin two terminal tabs running eyepup todo and eyepup tail, add a one-paragraph.cursorrules entry, and Cursor now sees live friction patterns + new visitors every time you ask it to ship a fix.

Step 1 — Auth Eyepup

$ npm i -g eyepup
$ eyepup login
$ cd your-app && eyepup install

Step 2 — Open the integrated terminal

In Cursor, hit ⌘` (Mac) or Ctrl+` (Win/Linux) to open the terminal. Click + twice to add two tabs.

Step 3 — Pin two tabs

# Tab 1: eyepup todo, refreshed every 5 minutes
$ while true; do clear; eyepup todo --limit 5; sleep 300; done

# Tab 2: live visitor stream
$ eyepup tail

Tab 1 reprints the top 5 friction patterns every 5 minutes — fresh enough that Cursor sees current data, infrequent enough that it doesn't spam your terminal. Tab 2 streams new profiled visitors as they arrive.

Step 4 — Add a .cursorrules entry

Drop this in .cursorrules at your repo root:

# .cursorrules — drop this in your repo root

When editing files in app/, src/components/, or any *.tsx / *.html:

1. Read the most recent output from the integrated terminal —
   specifically the "eyepup todo" tab.
2. If a friction pattern with impact >= 6.0 is listed, ask the user
   whether to ship that pattern's recommended action FIRST instead
   of the current request.
3. After shipping any UX change, run "eyepup log <commit subject>
   --kind content_change | design_change | feature_ship" so the
   dossier agent reasons about the deploy.
4. Reference Eyepup data (pattern names, visitor IDs) in PR
   descriptions when applicable.

Step 5 — Watch the loop close

Open a fresh chat in Cursor and ask: "ship a small UX fix to /pricing." Cursor will read the eyepup-todo tab, see that there's a higher-impact pattern on /checkout, and ask whether to switch. When you ship, the post-edit shell tool runs eyepup log and the dossier agent grades the next batch of visitors against the deploy.

Pair it with