gitify
Copilot instructions5.4k starsChanged 2 months agoMITView on GitHub
Gitify is a multi-forge notification client — an Electron desktop app that surfaces GitHub, Gitea, and Bitbucket Cloud notifications in the system tray. Built with React, TypeScript, Vite, and pnpm. ALWAYS follow these instructions first and only fallback to additional search and context gathering if the information in the instructions is incomplete or found to be in error. NEVER CANCEL long-running commands (pnpm install, pnpm build). Set terminal timeouts to 5+ minutes. After making changes, validate in this order: Snapshot…
- Installs packages
We split this copilot-instructions.md into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 34
After making changes, validate in this order:
- Very specific: line 41
Snapshot test failures: Run pnpm test -u to regenerate after legitimate UI changes.
≈ “Common” is an estimate: at least 1 in 5 of the 3,669 Copilot instructions files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Gitify Development Instructions
Gitify is a multi-forge notification client — an Electron desktop app that surfaces GitHub, Gitea, and Bitbucket Cloud notifications in the system tray. Built with React, TypeScript, Vite, and pnpm.
ALWAYS follow these instructions first and only fallback to additional search and context gathering if the information in the instructions is incomplete or found to be in error.
Prerequisites and Setup
- Node.js:
>=24(.nvmrcpins24.18.0). Usenvm useto activate the right version. - Install pnpm globally:
npm install -g pnpm - Bootstrap the repository:
pnpm install— takes up to a minute on a clean install. NEVER CANCEL. Set timeout to 5+ minutes.
Key Commands
| Command | What it does | Timing |
pnpm dev | Vite dev server + GraphQL codegen watch (main development loop) | ~10s to start |
pnpm build | Production build for all Electron targets (main, preload, renderer, shared) | ~30s clean |
pnpm test | Run full Vitest suite with coverage | ~15s |
pnpm check | oxlint + oxfmt + type-check (unified via vite-plus) | <5s |
pnpm check:fix | Same as check but auto-fixes formatting and lint | <5s |
pnpm tsc --noEmit | TypeScript-only type-check | ~5s |
NEVER CANCEL long-running commands (pnpm install, pnpm build). Set terminal timeouts to 5+ minutes.
Development Workflow
- Day-to-day development:
pnpm dev— starts both the Vite dev server and GraphQL codegen watcher concurrently. Leave running while developing. - Full build:
pnpm build— builds all targets viavp build. Output goes tobuild/(subdirectories:main/,preload/,renderer/,shared/). - Run the Electron app:
pnpm start— runspnpm buildthenpnpm dev. Will fail in headless/container environments due to Electron sandbox restrictions (this is expected and normal).
Validation
After making changes, validate in this order:
- Type-check:
pnpm tsc --noEmit— must complete with no errors - Lint + format:
pnpm check— warnings are acceptable, errors are not - Tests:
pnpm test— focus on no NEW failures; existing snapshots may differ on timezone-mismatched machines - Build:
pnpm build— look for✓ built in [time]for each target (main, preload, renderer, shared)
Snapshot test failures: Run pnpm test -u to regenerate after legitimate UI changes.
Pre-commit: Husky runs vp staged automatically on git commit. Manual equivalent: pnpm check && pnpm test.
File Map
Source
src/main/— Electron main process (Node.js)src/preload/— Electron preload scriptssrc/renderer/— React UI (the visible app)src/shared/— Code shared across all processes
Key renderer paths
src/renderer/utils/forges/— Per-forge adapters (github/, gitea/, bitbucket/) and registrysrc/renderer/utils/auth/— Authentication utilitiessrc/renderer/hooks/useNotifications.ts— Core notification polling logicsrc/renderer/components/— UI componentssrc/renderer/routes/— Page-level route componentssrc/renderer/stores/— Zustand stores
Configuration
vite.config.mts— Primary build config; also hostslint,fmt, andstagedblocks used bypnpm checkand Huskyvitest.config.mts— Test configuration (Vitest projects: happy-dom for renderer/preload, node for main/shared)tsconfig.json— TypeScript configurationtailwind.config.mts— Tailwind CSS configurationpackage.json— Scripts and dependency versions
Assets
assets/— Icons, sounds, and static resources
Local Packaging
Requires a prior pnpm build and platform-specific tooling:
- macOS:
pnpm package:macos --publish=never - Windows:
pnpm package:win --publish=never - Linux:
pnpm package:linux --publish=never
Constraints and Gotchas
- Electron won't start in CI/containers: Sandbox restrictions make
pnpm start/pnpm devfail headlessly. This is expected — test logic; don't try to fix the launch. - Node version is strict:
>=24required. Check.nvmrcand runnvm useif commands behave oddly. - Snapshot drift on non-UTC machines: Some snapshot tests encode relative dates. Tests may fail locally if your timezone differs from UTC. The test setup stubs
TZ=UTCviavi.stubEnv. - Lint warnings are OK: The codebase has pre-existing lint warnings. Only new errors block CI.
- GraphQL codegen: Running
pnpm devauto-watches for schema changes. If you edit.graphqlfiles manually, re-runpnpm codegento regenerategraphql/generated/graphql.ts.
Development Philosophy
This is a notification viewer, not a full forge client. Keep changes:
- Focused on the notification surface — don't expand scope into full forge feature parity
- Forge-agnostic at the orchestration layer — new forge behaviour belongs in the forge adapter (
src/renderer/utils/forges/<forge>/adapter.ts), not in shared hooks or components - Minimal — avoid adding complexity for edge cases
- Cross-platform (macOS, Windows, Linux)
Technology Stack
- Electron 43+ — desktop app host
- React 19+ — UI
- TypeScript 5+ — language
- pnpm 10+ — package manager
- Vite + vite-plus — unified build, dev, lint (
oxlint), format (oxfmt), and test toolchain. ThevpCLI drives all tooling. - Vitest — test runner (via
vp test);@testing-library/jest-domprovides DOM matchers - Tailwind CSS v4 — styling
- Zustand — client state management
- TanStack Query — server state / notification fetching
- electron-menubar — system tray integration
- electron-updater — auto-update
- @primer/react — GitHub's component library (UI primitives)
- @primer/octicons-react — icon library
- octokit — GitHub API HTTP client (GitHub forge only)
- date-fns — date utilities
Trending
Less talk lately.about the whole repository
Who's talking about gitify-app/gitify
- NixOS/nixpkgs“Package request: gitify”GitHub · Aug 21, 2023 · 3 reactions
- gitify-app/website“feat: add accordion component”GitHub · Jun 17, 2024 · 2 reactions
- @technews4869.bsky.social“github.com/gitify-a... GitHub - gitify-app/gitify: GitHub notifications on your menu bar. Available on …”Bluesky · Oct 21, 2024 · 1 likes
- max-mapper/menubar“bug(macOS): inconsistent space when using mission control spaces”GitHub · Jul 5, 2024 · 1 reactions
- Vlor999/pr-radar“docs(site): refresh the comparison table and show recent features”GitHub · Oct 27, 2026
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub and Bluesky (51 times).
On GitHub · 50
- Aug 21, 2023Package request: gitify — NixOS/nixpkgs3 reactions
- Jun 17, 2024feat: add accordion component — gitify-app/website2 reactions · 1 comment
- Jul 5, 2024bug(macOS): inconsistent space when using mission control spaces — max-mapper/menubar1 reaction · 2 comments
- Oct 27, 2026docs(site): refresh the comparison table and show recent features — Vlor999/pr-radar0 reactions
- Oct 21, 2026gitify: 7.9.0 -> 7.10.0 — NixOS/nixpkgs0 reactions
45 more on GitHub
- Oct 19, 2026Gitify before 7.10.0 Login CSRF via Missing OAuth State Validation — NixOS/nixpkgs0 reactions
- Oct 17, 2026x11-misc/gitify: Bump version to 7.10.0 — BlueManCZ/edgets0 reactions
- Oct 4, 2026gitify: 7.8.0 -> 7.9.0 — NixOS/nixpkgs0 reactions · 3 comments
- Sep 14, 2026gitify: 7.7.0 -> 7.8.0 — NixOS/nixpkgs0 reactions · 1 comment
- Sep 6, 2026x11-misc/gitify: Bump version to 7.8.0 — BlueManCZ/edgets0 reactions
- Sep 4, 2026x11-misc/gitify: Bump version to 7.7.1 — BlueManCZ/edgets0 reactions
- Sep 3, 2026gitify: 7.5.0 -> 7.7.0 — NixOS/nixpkgs0 reactions · 3 comments
- Aug 28, 2026x11-misc/gitify: Bump version to 7.7.0 — BlueManCZ/edgets0 reactions
- Aug 26, 2026x11-misc/gitify: Bump version to 7.6.0 — BlueManCZ/edgets0 reactions
- Aug 24, 2026gitify: 7.3.3 -> 7.5.0 — NixOS/nixpkgs0 reactions · 3 comments
- Aug 24, 2026x11-misc/gitify: Bump version to 7.5.0 — BlueManCZ/edgets0 reactions
- Aug 16, 2026x11-misc/gitify: Bump version to 7.4.0 — BlueManCZ/edgets0 reactions
- Aug 15, 2026gitify: 7.2.0 -> 7.3.3 — NixOS/nixpkgs0 reactions · 3 comments
- Aug 12, 2026x11-misc/gitify: Bump version to 7.3.3 — BlueManCZ/edgets0 reactions
- Aug 9, 2026x11-misc/gitify: Bump version to 7.3.2 — BlueManCZ/edgets0 reactions
- Aug 8, 2026x11-misc/gitify: Bump version to 7.3.0 — BlueManCZ/edgets0 reactions
- Aug 6, 2026gitify: 7.0.1 -> 7.2.0 — NixOS/nixpkgs0 reactions · 3 comments
- Jul 29, 2026x11-misc/gitify: Bump version to 7.2.0 — BlueManCZ/edgets0 reactions · 1 comment
- Jul 29, 2026x11-misc/gitify: Bump version to 7.2.0 — BlueManCZ/edgets0 reactions
- Jul 28, 2026x11-misc/gitify: Bump version to 7.1.0 — BlueManCZ/edgets0 reactions
- Jul 23, 2026x11-misc/gitify: Bump version to 7.0.1 — BlueManCZ/edgets0 reactions
- Jul 21, 2026x11-misc/gitify: Bump version to 7.0.0 — BlueManCZ/edgets0 reactions · 1 comment
- Jul 8, 2026x11-misc/gitify: Bump version to 6.20.0 — BlueManCZ/edgets0 reactions
- Jun 9, 2026migrate to `electron-menubar` v10+ — setchy/atlassify0 reactions
- Jun 9, 2026chore(deps): override vulnerable react-devtools transitive deps — setchy/atlassify0 reactions · 3 comments
- Jun 9, 2026chore: migrate vite-plugin-electron to v1 — setchy/atlassify0 reactions · 7 comments
- Jun 9, 2026migrate toolchain to `vite-plus` — setchy/atlassify0 reactions
- Feb 1, 2026gitify: 6.16.0 -> 6.17.0 — NixOS/nixpkgs0 reactions · 3 comments
- Jan 25, 2026gitify: 6.15.0 -> 6.16.0 — NixOS/nixpkgs0 reactions · 3 comments
- Jan 12, 2026gitify: 6.14.1 -> 6.15.0 — NixOS/nixpkgs0 reactions · 3 comments
- Nov 29, 2025gitify: 6.13.0 -> 6.14.1 — NixOS/nixpkgs0 reactions · 1 comment
- Nov 16, 2025gitify: 6.10.0 -> 6.13.0 — NixOS/nixpkgs0 reactions · 3 comments
- Oct 17, 2025gitify: 6.9.1 -> 6.10.0 — NixOS/nixpkgs0 reactions · 3 comments
- Oct 4, 2025gitify: 6.8.0 -> 6.9.1 — NixOS/nixpkgs0 reactions · 3 comments
- Sep 12, 2025gitify: 6.6.0 -> 6.8.0 — NixOS/nixpkgs0 reactions · 3 comments
- Aug 21, 2025gitify: 6.5.0 -> 6.6.0 — NixOS/nixpkgs0 reactions · 2 comments
- Jul 18, 2025gitify: 6.4.1 -> 6.5.0 — NixOS/nixpkgs0 reactions · 4 comments
- May 31, 2025gitify: 6.3.0 -> 6.4.1 — NixOS/nixpkgs0 reactions · 4 comments
- May 27, 2025[Bug]: gitify 6.4.0 download url error — ScoopInstaller/Extras0 reactions · 1 comment
- Apr 23, 2025mac買えたら入れたいやつ — mimikun/dotfiles0 reactions
- Feb 20, 2025gitify: 5.18.0 -> 6.1.0 — NixOS/nixpkgs0 reactions · 2 comments
- Feb 10, 2025feat: update faq `public_repo` — gitify-app/website0 reactions · 1 comment
- Jan 25, 2025gitify: 5.17.0 -> 5.18.0 — NixOS/nixpkgs0 reactions · 2 comments
- Jul 10, 2024Big green button links to the wrong place — gitify-app/website0 reactions · 2 comments
- Mar 21, 2024[Bug]: gitify v5.0.0 errors on installation — ScoopInstaller/Extras0 reactions
On Bluesky · 1
- Oct 21, 2024github.com/gitify-a... GitHub - gitify-app/gitify: GitHub notifications on your menu bar. Available on macOS, Windows & Linux. — @technews4869.bsky.social1 likes and repost
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,297 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

