diff --git a/.github/pr-assets/1517/ccs-bar-panel.webp b/.github/pr-assets/1517/ccs-bar-panel.webp
new file mode 100644
index 00000000..bf3b995f
Binary files /dev/null and b/.github/pr-assets/1517/ccs-bar-panel.webp differ
diff --git a/.github/pr-assets/1517/dashboard-header-ccs-bar-button.png b/.github/pr-assets/1517/dashboard-header-ccs-bar-button.png
new file mode 100644
index 00000000..00336bb1
Binary files /dev/null and b/.github/pr-assets/1517/dashboard-header-ccs-bar-button.png differ
diff --git a/.github/pr-assets/1517/index.html b/.github/pr-assets/1517/index.html
new file mode 100644
index 00000000..0a921ecf
--- /dev/null
+++ b/.github/pr-assets/1517/index.html
@@ -0,0 +1,224 @@
+
+
+
+
+
+ CCS Bar Promo Evidence
+
+
+
+
+
+
+
PR 1517 · CCS Bar README and dashboard promotion
+
+ Captures from local branch kai/feat/ccs-bar-promo. Dashboard capture uses
+ Vite at 127.0.0.1:5187, light theme, 1440x900 viewport, local auth-check
+ stubbed open, and no private account data.
+
+
+
+
+
+
+
+
What Changed
+
README now introduces CCS Bar, and dashboard chrome shows a compact global CCS Bar link.
+
+
+
Why It Matters
+
Users can discover the native macOS quota and usage companion from every dashboard route.
+
+
+
Review Cue
+
Red callout marks the new top-bar button next to ClaudeKit and Sponsor controls.
+
+
+
+
+
1. Global Dashboard Entry Point
+
The compact CCS Bar button is visible in the persistent dashboard header.
+
+
+
+ IMPLEMENTED
+ Dashboard chrome
+
+
+
+
+
+ CURRENT SNAPSHOT
+ Sanitized CCS Bar panel
+
+
+
+
+
+
+
+
+
diff --git a/README.md b/README.md
index ab892b40..1d1c24cb 100644
--- a/README.md
+++ b/README.md
@@ -116,6 +116,17 @@ Need the full setup path instead of the short version?
## See CCS In Action
+### CCS Bar For macOS
+
+
+
+CCS Bar puts live subscription quota, daily spend, and account controls in the
+macOS menu bar. Install it with `ccs bar install`, launch it with `ccs bar`, and
+tell us what would make it more useful: issues and ideas are welcome in
+[GitHub Issues](https://github.com/kaitranntt/ccs/issues).
+
+Deep dive: [CCS Bar](https://docs.ccs.kaitran.ca/features/dashboard/ccs-bar).
+
### Usage Analytics

@@ -164,6 +175,7 @@ reference material.
| Install CCS cleanly on a new machine | [Installation](https://docs.ccs.kaitran.ca/getting-started/installation) |
| Go from install to a successful first run | [Your First CCS Session](https://docs.ccs.kaitran.ca/getting-started/first-session) |
| See the dashboard and workflow surfaces before setup | [Product Tour](https://docs.ccs.kaitran.ca/getting-started/product-tour) |
+| Install the native macOS menu-bar companion | [CCS Bar](https://docs.ccs.kaitran.ca/features/dashboard/ccs-bar) |
| Compare OAuth providers, Claude accounts, and API profiles | [Provider Overview](https://docs.ccs.kaitran.ca/providers/concepts/overview) |
| Learn the dashboard structure and feature pages | [Dashboard Overview](https://docs.ccs.kaitran.ca/features/dashboard/overview) |
| Configure profiles, paths, and environment variables | [Configuration](https://docs.ccs.kaitran.ca/getting-started/configuration) |
diff --git a/assets/screenshots/ccs-bar-panel.webp b/assets/screenshots/ccs-bar-panel.webp
new file mode 100644
index 00000000..bf3b995f
Binary files /dev/null and b/assets/screenshots/ccs-bar-panel.webp differ
diff --git a/ui/src/components/layout/layout.tsx b/ui/src/components/layout/layout.tsx
index 9216a2c4..aab10e46 100644
--- a/ui/src/components/layout/layout.tsx
+++ b/ui/src/components/layout/layout.tsx
@@ -10,6 +10,7 @@ import { ConnectionIndicator } from '@/components/shared/connection-indicator';
import { LocalhostDisclaimer } from '@/components/shared/localhost-disclaimer';
import { Skeleton } from '@/components/ui/skeleton';
import { ClaudeKitBadge } from '@/components/shared/claudekit-badge';
+import { CcsBarButton } from '@/components/shared/ccs-bar-button';
import { SponsorButton } from '@/components/shared/sponsor-button';
import { ProjectSelectionDialog } from '@/components/shared/project-selection-dialog';
import { DeviceCodeDialog } from '@/components/shared/device-code-dialog';
@@ -44,6 +45,7 @@ export function Layout() {
+
diff --git a/ui/src/components/profiles/ccs-bar-banner.tsx b/ui/src/components/profiles/ccs-bar-banner.tsx
deleted file mode 100644
index d8fb9f3f..00000000
--- a/ui/src/components/profiles/ccs-bar-banner.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * CCS Bar Feature Banner
- * Dismissible announcement banner promoting the native macOS menu-bar app.
- *
- * Rendered only on macOS: the CTA is an install action (`ccs bar install`) that
- * has no effect on other platforms, so showing it elsewhere would be misleading.
- */
-
-/* eslint-disable react-hooks/set-state-in-effect */
-import { useState, useEffect } from 'react';
-import { useTranslation } from 'react-i18next';
-import { X, MonitorDot, ExternalLink } from 'lucide-react';
-import { Button } from '@/components/ui/button';
-
-const BANNER_DISMISSED_KEY = 'ccs:ccs-bar-banner-dismissed';
-
-// User-facing docs page for CCS Bar (flat Markdown in the ccs/cli docs tree).
-const CCS_BAR_DOCS_URL = 'https://github.com/kaitranntt/ccs/blob/main/docs/ccs-bar.md';
-
-// Lightweight, dependency-free macOS detection. Kept inline because no other
-// component needs platform detection; a shared hook would be premature.
-const isMacOS =
- typeof navigator !== 'undefined' &&
- /Mac|iPhone|iPad/i.test(navigator.userAgent || navigator.platform || '');
-
-interface CcsBarBannerProps {
- onInstallClick?: () => void;
-}
-
-export function CcsBarBanner({ onInstallClick }: CcsBarBannerProps) {
- const { t } = useTranslation();
- const [dismissed, setDismissed] = useState(true); // Start hidden to avoid flash
-
- // Check localStorage on mount
- useEffect(() => {
- const isDismissed = localStorage.getItem(BANNER_DISMISSED_KEY) === 'true';
- setDismissed(isDismissed);
- }, []);
-
- const handleDismiss = () => {
- localStorage.setItem(BANNER_DISMISSED_KEY, 'true');
- setDismissed(true);
- };
-
- if (!isMacOS) return null;
- if (dismissed) return null;
-
- return (
-