
A simple idle clicker game for Raycast with upgrades, made as a learning exercise for Raycast extensions development.
Use Command shortcuts on macOS and Control shortcuts on Windows. Progress is saved locally. When you reopen the game, you receive 50% of idle income earned while away.
npm cinpm run devnpm run fix-lintnpm run build
npm run lint
JonathanRReedFunassets/icon.png (512x512 PNG). Ensure high contrast in light/dark.Use Raycast Window Capture (Preferences → Advanced):

MIT
Play the idle clicker game with upgrades
lastUpdateRef (src/useGameState.ts).lastUpdateRef to now immediately after initial load to avoid an inflated first-tick delta (src/useGameState.ts).isLoading to prevent overwriting progress at startup (src/useGameState.ts).idle-menu-bar-active flag (package.json, src/GameView.tsx, src/useGameState.ts).src/useGameState.ts).src/menu-bar.tsx).GameView props (remove placeholder overrides) for clarity and top-level correctness (src/GameView.tsx).PRESTIGE_PP_DIVISOR from 800,000 to 500,000 for faster early prestige (src/constants.ts).src/menu-bar.tsx)calculatePrestigePoints() and replace duplicates (src/utils.ts, src/index.tsx, src/PrestigeView.tsx, src/useGameState.ts)package.json (reviewer-preferred casing)icon.png (Raycast resolves to assets/icon.png) in package.json.aiOptimizer as direct multiplierbulkPurchase upgrade; simplify UI & causing bugsfloor(sqrt(totalEarned / 800_000))package.json and refine descriptionsrc/index.tsx (both GameView prop and Stats).package.json.achievements.tsPRESTIGE_PP_DIVISOR constant and replace magic number in src/PrestigeView.tsx and src/useGameState.ts.effectDisplay metadata to prestige upgrades and refactor effect accessory rendering in src/PrestigeView.tsx.costMultiplier <= 0 in src/prestigeUpgrades.ts.package.json.