From ebf3f5fce6f2cdc7dc2839ee715de0f66cbe1dd4 Mon Sep 17 00:00:00 2001 From: CodyKoInABox Date: Thu, 30 Jul 2026 01:51:29 -0300 Subject: [PATCH 1/2] landing page website --- README.md | 2 +- docs/assets/icon.png | Bin 0 -> 5886 bytes docs/assets/install.png | Bin 0 -> 15309 bytes docs/assets/sidebar.png | Bin 0 -> 35466 bytes docs/index.html | 203 +++++++++++++++ docs/script.js | 22 ++ docs/styles.css | 529 ++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 8 files changed, 756 insertions(+), 2 deletions(-) create mode 100644 docs/assets/icon.png create mode 100644 docs/assets/install.png create mode 100644 docs/assets/sidebar.png create mode 100644 docs/index.html create mode 100644 docs/script.js create mode 100644 docs/styles.css diff --git a/README.md b/README.md index 618190a..d9428d7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **See your Cursor plan usage without leaving the editor.** -Live **Cursor Models** and **Other Models** percentages in a dockable sidebar and status bar chip — so you always know where you stand in the billing cycle. +[Website](https://codykoinabox.github.io/cursor-plan-usage/) · Live **Cursor Models** and **Other Models** percentages in a dockable sidebar and status bar chip — so you always know where you stand in the billing cycle. #### You can easily install the extension through the Extensions tab inside Cursor: image diff --git a/docs/assets/icon.png b/docs/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..be270fad9cde9d7cf3e793133341965091dead2d GIT binary patch literal 5886 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 literal 0 HcmV?d00001 diff --git a/docs/assets/sidebar.png b/docs/assets/sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..b82b17693b500dd02f758d07c29c391968d2c13d GIT binary patch literal 35466 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 literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..5506ed0 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,203 @@ + + + + + + Cursor Plan Usage + + + + + + + + + + + + +
+
+
+

Cursor Plan Usage

+

+ See your Cursor plan usage without leaving the editor. +

+

+ Live Cursor Models and Other Models percentages in a dockable + sidebar and status bar chip — so you always know where you stand in + the billing cycle. +

+ +
+
+ Plan Usage sidebar showing Cursor Models and Other Models percentages +
+
+ +
+
+

What you get

+

Everything you need to track plan burn without leaving Cursor.

+
+
    +
  • + Sidebar panel + CM / OM usage at a glance in the activity bar +
  • +
  • + Status bar chip + Always-visible CM n% · OM n% — or Usage so far + deltas +
  • +
  • + Billing cycle + Progress through the period, end time, and a simple projection +
  • +
  • + Session deltas + Last-hour and IDE-session usage while the extension is sampling +
  • +
  • + Usage so far + Resettable window that persists across reloads; auto-resets on a + new billing cycle +
  • +
  • + Smart refresh + Updates on focus and AI activity; pauses when Cursor is unfocused +
  • +
+
+ +
+
+

Install

+

Search in Cursor’s Extensions tab, or grab it from Open VSX.

+
+
+ Installing Cursor Plan Usage from the Extensions tab in Cursor +
+
    +
  1. Open Extensions in Cursor
  2. +
  3. Search for Cursor Plan Usage
  4. +
  5. Install, then open the Plan Usage icon in the activity bar
  6. +
+

+ Or install via + Open VSX + / sideload a + .vsix release. +

+
+
+
+ +
+
+

Cursor only

+

+ Built for + Cursor, + not plain VS Code. It reads Cursor’s local session data and talks to + Cursor’s dashboard API. +

+
+
+

Privacy

+

+ Your access token stays in memory (or SecretStorage if you set an + override). It is never written to disk by this extension. No + telemetry. The only network call is the usage request to Cursor’s + API. +

+
+
+
+ + + + + + diff --git a/docs/script.js b/docs/script.js new file mode 100644 index 0000000..bc5967b --- /dev/null +++ b/docs/script.js @@ -0,0 +1,22 @@ +(() => { + const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches; + const nodes = document.querySelectorAll(".reveal"); + + if (reduceMotion || !("IntersectionObserver" in window)) { + nodes.forEach((el) => el.classList.add("is-visible")); + return; + } + + const observer = new IntersectionObserver( + (entries) => { + for (const entry of entries) { + if (!entry.isIntersecting) continue; + entry.target.classList.add("is-visible"); + observer.unobserve(entry.target); + } + }, + { rootMargin: "0px 0px -8% 0px", threshold: 0.12 } + ); + + nodes.forEach((el) => observer.observe(el)); +})(); diff --git a/docs/styles.css b/docs/styles.css new file mode 100644 index 0000000..d0979ac --- /dev/null +++ b/docs/styles.css @@ -0,0 +1,529 @@ +:root { + color-scheme: dark; + --cm: #3b82f6; + --cm-deep: #2563eb; + --om: #f59e0b; + --om-deep: #d97706; + --cycle: #22c55e; + --bg: #0b0f14; + --bg-elevated: #121820; + --fg: #e8eef6; + --muted: #9aa8b8; + --line: color-mix(in srgb, var(--fg) 14%, transparent); + --font-display: "Sora", sans-serif; + --font-body: "IBM Plex Sans", sans-serif; + --max: 1120px; + --pad: clamp(1.25rem, 4vw, 2.5rem); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + min-height: 100vh; + color: var(--fg); + font-family: var(--font-body); + font-size: 1.0625rem; + line-height: 1.55; + background: var(--bg); + overflow-x: hidden; +} + +img { + max-width: 100%; + height: auto; + display: block; +} + +a { + color: var(--cm); + text-decoration-thickness: 1px; + text-underline-offset: 0.18em; +} + +a:hover { + color: color-mix(in srgb, var(--cm) 75%, white); +} + +code { + font-size: 0.92em; + padding: 0.1em 0.35em; + border-radius: 0.25rem; + background: color-mix(in srgb, var(--fg) 8%, transparent); +} + +.atmosphere { + position: fixed; + inset: 0; + z-index: -1; + pointer-events: none; + overflow: hidden; + background: + radial-gradient(1200px 600px at 10% -10%, color-mix(in srgb, var(--cm) 22%, transparent), transparent 60%), + radial-gradient(900px 500px at 90% 0%, color-mix(in srgb, var(--om) 16%, transparent), transparent 55%), + linear-gradient(180deg, #0d131b 0%, var(--bg) 45%, #080b10 100%); +} + +.mesh { + position: absolute; + width: 42vw; + max-width: 520px; + aspect-ratio: 1; + border-radius: 50%; + filter: blur(80px); + opacity: 0.35; +} + +.mesh-cm { + top: 8%; + left: -8%; + background: var(--cm-deep); +} + +.mesh-om { + top: 18%; + right: -10%; + background: var(--om-deep); +} + +.usage-bars { + position: absolute; + inset: auto 0 12% 0; + display: flex; + flex-direction: column; + gap: 10px; + padding: 0 var(--pad); + opacity: 0.18; +} + +.usage-bar { + display: block; + height: 4px; + border-radius: 999px; + transform-origin: left center; + animation: shimmer-grow 4.5s ease-in-out infinite; +} + +.bar-cm { + width: 72%; + background: linear-gradient(90deg, var(--cm-deep), var(--cm)); +} + +.bar-om { + width: 48%; + background: linear-gradient(90deg, var(--om-deep), var(--om)); + animation-delay: 0.6s; +} + +.bar-cycle { + width: 61%; + background: linear-gradient(90deg, #15803d, var(--cycle)); + animation-delay: 1.2s; +} + +@keyframes shimmer-grow { + 0%, + 100% { + transform: scaleX(0.92); + filter: brightness(0.85); + } + 50% { + transform: scaleX(1); + filter: brightness(1.15); + } +} + +.site-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + max-width: var(--max); + margin: 0 auto; + padding: 1.1rem var(--pad); +} + +.brand-mark { + display: inline-flex; + align-items: center; + gap: 0.65rem; + color: var(--fg); + text-decoration: none; + font-family: var(--font-display); + font-weight: 600; + font-size: 0.95rem; + letter-spacing: -0.02em; +} + +.brand-mark img { + border-radius: 6px; +} + +.site-header nav { + display: flex; + gap: 1.15rem; + font-size: 0.92rem; +} + +.site-header nav a { + color: var(--muted); + text-decoration: none; +} + +.site-header nav a:hover { + color: var(--fg); +} + +.hero { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); + align-items: center; + gap: clamp(1.5rem, 4vw, 3rem); + max-width: var(--max); + margin: 0 auto; + min-height: calc(100svh - 4.5rem); + padding: clamp(1.25rem, 4vh, 2.5rem) var(--pad); +} + +.hero-copy { + padding-block: 0.5rem; + margin-top: -6vh; +} + +.brand-hero { + margin: 0 0 0.85rem; + font-family: var(--font-display); + font-size: clamp(2.4rem, 6vw, 4.1rem); + font-weight: 700; + line-height: 1.05; + letter-spacing: -0.045em; + background: linear-gradient(120deg, #fff 20%, color-mix(in srgb, var(--cm) 70%, white) 55%, color-mix(in srgb, var(--om) 65%, white)); + -webkit-background-clip: text; + background-clip: text; + color: transparent; +} + +.tagline { + margin: 0 0 0.85rem; + font-family: var(--font-display); + font-size: clamp(1.15rem, 2.4vw, 1.45rem); + font-weight: 500; + line-height: 1.35; + letter-spacing: -0.02em; + color: var(--fg); + max-width: 28ch; +} + +.lede { + margin: 0 0 1.6rem; + color: var(--muted); + max-width: 38ch; +} + +.cta-row { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.72rem 1.15rem; + border-radius: 0.55rem; + font-family: var(--font-display); + font-size: 0.92rem; + font-weight: 600; + letter-spacing: -0.01em; + text-decoration: none; + transition: + transform 160ms ease, + background-color 160ms ease, + border-color 160ms ease, + color 160ms ease, + box-shadow 160ms ease; +} + +.btn:hover { + transform: translateY(-1px); +} + +.btn-primary { + color: #061018; + background: linear-gradient(135deg, var(--cm), color-mix(in srgb, var(--cm) 55%, var(--cycle))); + box-shadow: 0 0 0 1px color-mix(in srgb, var(--cm) 40%, transparent); +} + +.btn-primary:hover { + color: #061018; + box-shadow: + 0 0 0 1px color-mix(in srgb, var(--cm) 55%, transparent), + 0 10px 28px color-mix(in srgb, var(--cm) 28%, transparent); +} + +.btn-ghost { + color: var(--fg); + background: transparent; + border: 1px solid var(--line); +} + +.btn-ghost:hover { + color: var(--fg); + border-color: color-mix(in srgb, var(--fg) 35%, transparent); + background: color-mix(in srgb, var(--fg) 5%, transparent); +} + +.hero-visual { + justify-self: end; + display: flex; + align-items: center; + margin-right: calc(-1 * var(--pad)); + max-height: calc(100svh - 5.5rem); +} + +.hero-visual img { + width: min(100%, 380px); + height: auto; + max-height: calc(100svh - 5.5rem); + object-fit: contain; + object-position: center right; +} + +.section { + max-width: var(--max); + margin: 0 auto; + padding: clamp(3.5rem, 10vh, 6rem) var(--pad); +} + +.section-intro { + margin-bottom: 2rem; + max-width: 40rem; +} + +.section-intro h2, +.note h2 { + margin: 0 0 0.45rem; + font-family: var(--font-display); + font-size: clamp(1.55rem, 3vw, 2rem); + font-weight: 600; + letter-spacing: -0.03em; +} + +.section-intro p, +.note p { + margin: 0; + color: var(--muted); +} + +.feature-list { + list-style: none; + margin: 0; + padding: 0; + border-top: 1px solid var(--line); +} + +.feature-list li { + display: grid; + grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr); + gap: 0.75rem 1.5rem; + padding: 1.15rem 0; + border-bottom: 1px solid var(--line); +} + +.feature-list strong { + font-family: var(--font-display); + font-weight: 600; + letter-spacing: -0.02em; +} + +.feature-list span { + color: var(--muted); +} + +.install-body { + display: grid; + grid-template-columns: auto minmax(0, 1fr); + gap: clamp(1.5rem, 4vw, 2.75rem); + align-items: center; +} + +.install-body > img { + width: 268px; + border: 1px solid var(--line); + background: var(--bg-elevated); +} + +.install-copy ol { + margin: 0 0 1rem; + padding-left: 1.2rem; + color: var(--muted); +} + +.install-copy li + li { + margin-top: 0.4rem; +} + +.install-copy strong { + color: var(--fg); +} + +.notes { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: clamp(1.5rem, 4vw, 3rem); + border-top: 1px solid var(--line); +} + +.note h2 { + font-size: 1.2rem; +} + +.site-footer { + max-width: var(--max); + margin: 0 auto; + padding: 2rem var(--pad) 3rem; + border-top: 1px solid var(--line); + color: var(--muted); + font-size: 0.92rem; +} + +.site-footer p { + margin: 0; +} + +.site-footer a { + color: var(--muted); + text-decoration: none; +} + +.site-footer a:hover { + color: var(--fg); +} + +.reveal { + opacity: 0; + transform: translateY(18px); + transition: + opacity 700ms cubic-bezier(0.22, 1, 0.36, 1), + transform 700ms cubic-bezier(0.22, 1, 0.36, 1); +} + +.reveal.reveal-delay { + transition-delay: 120ms; +} + +.reveal.is-visible { + opacity: 1; + transform: none; +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + .usage-bar, + .reveal { + animation: none !important; + transition: none !important; + opacity: 1; + transform: none; + } +} + +@media (max-width: 960px) { + .hero { + grid-template-columns: 1fr; + align-items: start; + min-height: auto; + gap: 1.75rem; + padding: 1.5rem var(--pad) 2rem; + } + + .hero-copy { + margin-top: 0; + padding-block: 0; + } + + .tagline, + .lede { + max-width: none; + } + + .cta-row { + display: grid; + grid-template-columns: 1fr; + } + + .btn { + width: 100%; + } + + .hero-visual { + justify-self: center; + width: 100%; + margin-right: 0; + margin-left: 0; + max-height: none; + } + + .hero-visual img { + width: min(100%, 300px); + max-width: 300px; + max-height: none; + margin-inline: auto; + object-fit: contain; + object-position: top center; + } + + .usage-bars { + display: none; + } + + .feature-list li { + grid-template-columns: 1fr; + gap: 0.25rem; + } + + .install-body { + grid-template-columns: 1fr; + } + + .install-body > img { + width: min(100%, 268px); + } + + .notes { + grid-template-columns: 1fr; + } +} + +@media (max-width: 560px) { + .site-header { + padding-inline: var(--pad); + } + + .site-header nav a:first-child, + .site-header nav a:nth-child(2) { + display: none; + } + + .brand-hero { + font-size: clamp(2.1rem, 11vw, 2.8rem); + } + + .hero-visual img { + width: min(100%, 280px); + max-width: 280px; + } +} + diff --git a/package.json b/package.json index 78ce1dd..fae2849 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "bugs": { "url": "https://github.com/CodyKoInABox/cursor-plan-usage/issues" }, - "homepage": "https://github.com/CodyKoInABox/cursor-plan-usage#readme", + "homepage": "https://codykoinabox.github.io/cursor-plan-usage/", "engines": { "vscode": "^1.85.0" }, From fe60d14b2035b6d0b957cf7af72036fea5172a39 Mon Sep 17 00:00:00 2001 From: CodyKoInABox Date: Thu, 30 Jul 2026 02:04:42 -0300 Subject: [PATCH 2/2] improvements to the website --- docs/index.html | 84 ++++++++++++++++++++++++++++++------------------- docs/styles.css | 21 +++++++++++++ 2 files changed, 72 insertions(+), 33 deletions(-) diff --git a/docs/index.html b/docs/index.html index 5506ed0..0938cf3 100644 --- a/docs/index.html +++ b/docs/index.html @@ -57,12 +57,7 @@ the billing cycle.

- Install on Open VSX + Install in Cursor What you get
-

Install

-

Search in Cursor’s Extensions tab, or grab it from Open VSX.

+

Install in Cursor

+

Extensions tab → search → install. That’s it.

+ +
-

Cursor only

+

Open source

- Built for - Cursor, - not plain VS Code. It reads Cursor’s local session data and talks to - Cursor’s dashboard API. + MIT licensed and fully readable on + GitHub. Audit it, fork it, or send a pull request.

Privacy

- Your access token stays in memory (or SecretStorage if you set an - override). It is never written to disk by this extension. No - telemetry. The only network call is the usage request to Cursor’s - API. + Your access token stays in your machine. + No telemetry. No third-party API calls. +

+
+
+

Lightweight

+

+ Built to stay out of your way. Smart refresh pauses when Cursor is + unfocused and avoids unnecessary background work. +

+
+
+

Native to Cursor

+

+ Lives in the sidebar and status bar, using Cursor’s existing UI + instead of opening another dashboard.

@@ -189,12 +213,6 @@

Privacy

CodyKoInABox - · - Report an issue

diff --git a/docs/styles.css b/docs/styles.css index d0979ac..0b56ce7 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -387,6 +387,27 @@ code { font-size: 1.2rem; } +.feedback { + border-top: 1px solid var(--line); +} + +.feedback-inner { + max-width: 36rem; +} + +.feedback-inner h2 { + margin: 0 0 0.45rem; + font-family: var(--font-display); + font-size: clamp(1.55rem, 3vw, 2rem); + font-weight: 600; + letter-spacing: -0.03em; +} + +.feedback-inner p { + margin: 0 0 1.35rem; + color: var(--muted); +} + .site-footer { max-width: var(--max); margin: 0 auto;