CodeYears Privacy Policy

Last updated: 2026-11-03

This privacy policy applies to CodeYears and its product support website.

Data Collection

CodeYears turns daily contributions visible to your current GitHub session into a city. Its lightweight entry detects the profile URL, contribution area and year links, leaving GitHub's graph selected by default. Only when you open City does it read the profile username, viewer login state and username, available years, contribution dates and counts. It initially selects the latest three years; applying another range updates it, with adjacent calendar years requested when needed to complete weeks. It does not read repository files, commit contents, email addresses or passwords, and does not read login credentials through the Cookie API.

Network Requests

Requests go only to same-origin GitHub pages over HTTPS, using your existing GitHub session. No GitHub token, separate CodeYears account or developer backend is required. GitHub processes these requests under its own policies. Contribution pages are not a stable public API: page or language changes can stop parsing. CodeYears checks the viewer identity before reusing a cache; if identity cannot be confirmed, it neither reads nor writes contribution caches. Returning to the contribution graph, backgrounding the page or leaving the profile cancels requests and releases the city and visible results. Opening City again checks identity afresh.

Local Storage and Deletion

Yearly caches are stored in the browser's extension-local storage, separately scoped to the viewer, profile and calendar year. They contain dates, counts, fetch timestamps and parser/cache versions, not complete HTML, and are not synced through Chrome Sync. A current-year snapshot can be reused for up to one hour and expires on a local date change; a historical snapshot can be reused for up to 30 days. Expiry prevents reuse but does not automatically delete stored records. In More, refresh the selected years or clear every yearly cache for the current viewer on the current profile. Other scopes must be cleared in their own context; uninstalling removes the extension's local storage. The language preference (automatic, English or Simplified Chinese) is stored separately under codeyears:ui:language and is not reset by clearing a profile's contribution cache. Browser-profile backups are managed by your browser and system.

Permissions

Automatic content-script access is limited to https://github.com/* and provides the lightweight switch on recognized profile pages. activeTab and scripting support opening City from the toolbar; storage saves yearly caches and the separate language preference. There is no additional host_permissions declaration, Cookie permission, all-sites access or background polling. Site access is still subject to your browser settings; this is not an extension with no site access.

Third-Party Services

The extension does not upload contribution data to the developer or other third-party servers, sell or share user data, or include analytics, telemetry or advertising. GitHub is its only network data source; extension code and city artwork ship in the installation package, without remotely loaded executable code. This product and support website is hosted on Vercel and uses Vercel Web Analytics; website visits are separate from the extension's local contribution processing. If you contact support by email or public GitHub issue, include only what is necessary and omit private activity, tokens, cookies and full caches.

Saving Images

CodeYears suggests adjusting the view and using the browser's native right-click menu to save or copy the current canvas. It has no separate image-generation, upload or sharing service and does not publish anything for you. A saved image can reflect activity visible in your GitHub session; you decide whether to share it.

Contact

If you have questions about this privacy policy, please contact: xingyu.wang@gmail.com