MagicMirror²: The open source modular smart mirror platform.

License GitHub Actions Build Status

MagicMirror² is an open source modular smart mirror platform. With a growing list of installable modules, the MagicMirror² allows you to convert your hallway or bathroom mirror into your personal assistant. MagicMirror² is built by the creator of the original MagicMirror with the incredible help of a growing community of contributors.

MagicMirror² focuses on a modular plugin system and uses Electron as an application wrapper. So no more web server or browser installs necessary!

Documentation

For the full documentation including installation instructions, please visit our dedicated documentation website: https://docs.magicmirror.builders.

Links

Contributing Guidelines

Contributions of all kinds are welcome, not only in the form of code but also with regards to

  • bug reports
  • documentation
  • translations

For the full contribution guidelines, check out: https://docs.magicmirror.builders/about/contributing.html

Enjoying MagicMirror? Consider a donation!

MagicMirror² is opensource and free. That doesn't mean we don't need any money.

Please consider a donation to help us cover the ongoing costs like webservers and email services. If we receive enough donations we might even be able to free up some working hours and spend some extra time improving the MagicMirror² core.

To donate, please follow this link.

MagPi Top 50

MagicMirrorOrg/MagicMirror

{
"props": {
"initialPayload": {
"allShortcutsEnabled": false,
"path": "/",
"repo": {
"id": 16989371,
"defaultBranch": "master",
"name": "MagicMirror",
"ownerLogin": "MagicMirrorOrg",
"currentUserCanPush": false,
"isFork": false,
"isEmpty": false,
"createdAt": "2014-02-19T15:48:09.000Z",
"ownerAvatar": "https://avatars.githubusercontent.com/u/153594697?v=4",
"public": true,
"private": false,
"isOrgOwned": true
},
"currentUser": null,
"refInfo": {
"name": "master",
"listCacheKey": "v0:1719828943.0",
"canEdit": false,
"refType": "branch",
"currentOid": "53fc814ff8ad5ad5f8289037c692bf28daa4378a"
},
"tree": {
"items": [
{
"name": ".github",
"path": ".github",
"contentType": "directory"
},
{
"name": ".husky",
"path": ".husky",
"contentType": "directory"
},
{
"name": "clientonly",
"path": "clientonly",
"contentType": "directory"
},
{
"name": "config",
"path": "config",
"contentType": "directory"
},
{
"name": "css",
"path": "css",
"contentType": "directory"
},
{
"name": "fonts",
"path": "fonts",
"contentType": "directory"
},
{
"name": "installers",
"path": "installers",
"contentType": "directory"
},
{
"name": "js",
"path": "js",
"contentType": "directory"
},
{
"name": "modules/default",
"path": "modules/default",
"contentType": "directory",
"hasSimplifiedPath": true
},
{
"name": "serveronly",
"path": "serveronly",
"contentType": "directory"
},
{
"name": "splashscreen",
"path": "splashscreen",
"contentType": "directory"
},
{
"name": "tests",
"path": "tests",
"contentType": "directory"
},
{
"name": "translations",
"path": "translations",
"contentType": "directory"
},
{
"name": "vendor",
"path": "vendor",
"contentType": "directory"
},
{
"name": ".editorconfig",
"path": ".editorconfig",
"contentType": "file"
},
{
"name": ".eslintignore",
"path": ".eslintignore",
"contentType": "file"
},
{
"name": ".eslintrc.json",
"path": ".eslintrc.json",
"contentType": "file"
},
{
"name": ".gitattributes",
"path": ".gitattributes",
"contentType": "file"
},
{
"name": ".gitignore",
"path": ".gitignore",
"contentType": "file"
},
{
"name": ".npmrc",
"path": ".npmrc",
"contentType": "file"
},
{
"name": ".prettierignore",
"path": ".prettierignore",
"contentType": "file"
},
{
"name": ".prettierrc.json",
"path": ".prettierrc.json",
"contentType": "file"
},
{
"name": ".stylelintrc.json",
"path": ".stylelintrc.json",
"contentType": "file"
},
{
"name": "CHANGELOG.md",
"path": "CHANGELOG.md",
"contentType": "file"
},
{
"name": "Collaboration.md",
"path": "Collaboration.md",
"contentType": "file"
},
{
"name": "LICENSE.md",
"path": "LICENSE.md",
"contentType": "file"
},
{
"name": "README.md",
"path": "README.md",
"contentType": "file"
},
{
"name": "index.html",
"path": "index.html",
"contentType": "file"
},
{
"name": "jest.config.js",
"path": "jest.config.js",
"contentType": "file"
},
{
"name": "jsconfig.json",
"path": "jsconfig.json",
"contentType": "file"
},
{
"name": "mm2.png",
"path": "mm2.png",
"contentType": "file"
},
{
"name": "module-types.ts",
"path": "module-types.ts",
"contentType": "file"
},
{
"name": "package-lock.json",
"path": "package-lock.json",
"contentType": "file"
},
{
"name": "package.json",
"path": "package.json",
"contentType": "file"
}
],
"templateDirectorySuggestionUrl": null,
"readme": null,
"totalCount": 34,
"showBranchInfobar": false
},
"fileTree": null,
"fileTreeProcessingTime": null,
"foldersToFetch": [],
"treeExpanded": false,
"symbolsExpanded": false,
"isOverview": true,
"overview": {
"banners": {
"shouldRecommendReadme": false,
"isPersonalRepo": false,
"showUseActionBanner": false,
"actionSlug": null,
"actionId": null,
"showProtectBranchBanner": false,
"publishBannersInfo": {
"dismissActionNoticePath": "/settings/dismiss-notice/publish_action_from_repo",
"releasePath": "/MagicMirrorOrg/MagicMirror/releases/new?marketplace=true",
"showPublishActionBanner": false
},
"interactionLimitBanner": null,
"showInvitationBanner": false,
"inviterName": null
},
"codeButton": {
"contactPath": "/contact",
"isEnterprise": false,
"local": {
"protocolInfo": {
"httpAvailable": true,
"sshAvailable": null,
"httpUrl": "https://github.com/MagicMirrorOrg/MagicMirror.git",
"showCloneWarning": null,
"sshUrl": null,
"sshCertificatesRequired": null,
"sshCertificatesAvailable": null,
"ghCliUrl": "gh repo clone MagicMirrorOrg/MagicMirror",
"defaultProtocol": "http",
"newSshKeyUrl": "/settings/ssh/new",
"setProtocolPath": "/users/set_protocol"
},
"platformInfo": {
"cloneUrl": "https://desktop.github.com",
"showVisualStudioCloneButton": false,
"visualStudioCloneUrl": "https://windows.github.com",
"showXcodeCloneButton": false,
"xcodeCloneUrl": "https://developer.apple.com",
"zipballUrl": "/MagicMirrorOrg/MagicMirror/archive/refs/heads/master.zip"
}
},
"newCodespacePath": "/codespaces/new?hide_repo_select=true&repo=16989371"
},
"popovers": {
"rename": null,
"renamedParentRepo": null
},
"commitCount": "4,914",
"overviewFiles": [
{
"displayName": "README.md",
"repoName": "MagicMirror",
"refName": "master",
"path": "README.md",
"preferredFileType": "readme",
"tabName": "README",
"richText": "<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><p dir=\"auto\"><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/MagicMirrorOrg/MagicMirror/blob/master/.github/header.png\"><img src=\"/MagicMirrorOrg/MagicMirror/raw/master/.github/header.png\" alt=\"MagicMirror²: The open source modular smart mirror platform. \" style=\"max-width: 100%;\"></a></p>\n<p dir=\"auto\">\n <a href=\"https://choosealicense.com/licenses/mit\" rel=\"nofollow\">\n\t\t<img src=\"https://camo.githubusercontent.com/2bb6ac78e5a9f4f688a6a066cc71b62012101802fcdb478e6e4c6b6ec75dc694/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667\" alt=\"License\" data-canonical-src=\"https://img.shields.io/badge/license-MIT-blue.svg\" style=\"max-width: 100%;\">\n\t</a>\n\t<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/836dc976e4b5ea45f800603736121a115468e11031e565f7f2d2148100846486/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d616769636d6972726f726f72672f6d616769636d6972726f722f6175746f6d617465642d74657374732e79616d6c\"><img src=\"https://camo.githubusercontent.com/836dc976e4b5ea45f800603736121a115468e11031e565f7f2d2148100846486/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6d616769636d6972726f726f72672f6d616769636d6972726f722f6175746f6d617465642d74657374732e79616d6c\" alt=\"GitHub Actions\" data-canonical-src=\"https://img.shields.io/github/actions/workflow/status/magicmirrororg/magicmirror/automated-tests.yaml\" style=\"max-width: 100%;\"></a>\n\t<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://camo.githubusercontent.com/357df92b1e6cb24828da918ceb0619850b7f5b440e9f8c606972307124adfc6d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636865636b732d7374617475732f6d616769636d6972726f726f72672f6d616769636d6972726f722f6d6173746572\"><img src=\"https://camo.githubusercontent.com/357df92b1e6cb24828da918ceb0619850b7f5b440e9f8c606972307124adfc6d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636865636b732d7374617475732f6d616769636d6972726f726f72672f6d616769636d6972726f722f6d6173746572\" alt=\"Build Status\" data-canonical-src=\"https://img.shields.io/github/checks-status/magicmirrororg/magicmirror/master\" style=\"max-width: 100%;\"></a>\n\t<a href=\"https://github.com/MagicMirrorOrg/MagicMirror\">\n\t\t<img src=\"https://camo.githubusercontent.com/4919cdbc96ee610599ffb5687f7cd5e511015f0d372bd994d3c2c6200f11a751/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6d616769636d6972726f726f72672f6d616769636d6972726f723f7374796c653d736f6369616c\" data-canonical-src=\"https://img.shields.io/github/stars/magicmirrororg/magicmirror?style=social\" style=\"max-width: 100%;\">\n\t</a>\n</p>\n<p dir=\"auto\"><strong>MagicMirror²</strong> is an open source modular smart mirror platform. With a growing list of installable modules, the <strong>MagicMirror²</strong> allows you to convert your hallway or bathroom mirror into your personal assistant. <strong>MagicMirror²</strong> is built by the creator of <a href=\"https://michaelteeuw.nl/tagged/magicmirror\" rel=\"nofollow\">the original MagicMirror</a> with the incredible help of a <a href=\"https://github.com/MagicMirrorOrg/MagicMirror/graphs/contributors\">growing community of contributors</a>.</p>\n<p dir=\"auto\">MagicMirror² focuses on a modular plugin system and uses <a href=\"https://www.electronjs.org/\" rel=\"nofollow\">Electron</a> as an application wrapper. So no more web server or browser installs necessary!</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Documentation</h2><a id=\"user-content-documentation\" class=\"anchor\" aria-label=\"Permalink: Documentation\" href=\"#documentation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">For the full documentation including <strong><a href=\"https://docs.magicmirror.builders/getting-started/installation.html\" rel=\"nofollow\">installation instructions</a></strong>, please visit our dedicated documentation website: <a href=\"https://docs.magicmirror.builders\" rel=\"nofollow\">https://docs.magicmirror.builders</a>.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Links</h2><a id=\"user-content-links\" class=\"anchor\" aria-label=\"Permalink: Links\" href=\"#links\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>Website: <a href=\"https://magicmirror.builders\" rel=\"nofollow\">https://magicmirror.builders</a></li>\n<li>Documentation: <a href=\"https://docs.magicmirror.builders\" rel=\"nofollow\">https://docs.magicmirror.builders</a></li>\n<li>Forum: <a href=\"https://forum.magicmirror.builders\" rel=\"nofollow\">https://forum.magicmirror.builders</a>\n<ul dir=\"auto\">\n<li>Technical discussions: <a href=\"https://forum.magicmirror.builders/category/11/core-system\" rel=\"nofollow\">https://forum.magicmirror.builders/category/11/core-system</a></li>\n</ul>\n</li>\n<li>Discord: <a href=\"https://discord.gg/J5BAtvx\" rel=\"nofollow\">https://discord.gg/J5BAtvx</a></li>\n<li>Blog: <a href=\"https://michaelteeuw.nl/tagged/magicmirror\" rel=\"nofollow\">https://michaelteeuw.nl/tagged/magicmirror</a></li>\n<li>Donations: <a href=\"https://magicmirror.builders/#donate\" rel=\"nofollow\">https://magicmirror.builders/#donate</a></li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Contributing Guidelines</h2><a id=\"user-content-contributing-guidelines\" class=\"anchor\" aria-label=\"Permalink: Contributing Guidelines\" href=\"#contributing-guidelines\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Contributions of all kinds are welcome, not only in the form of code but also with regards to</p>\n<ul dir=\"auto\">\n<li>bug reports</li>\n<li>documentation</li>\n<li>translations</li>\n</ul>\n<p dir=\"auto\">For the full contribution guidelines, check out: <a href=\"https://docs.magicmirror.builders/about/contributing.html\" rel=\"nofollow\">https://docs.magicmirror.builders/about/contributing.html</a></p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Enjoying MagicMirror? Consider a donation!</h2><a id=\"user-content-enjoying-magicmirror-consider-a-donation\" class=\"anchor\" aria-label=\"Permalink: Enjoying MagicMirror? Consider a donation!\" href=\"#enjoying-magicmirror-consider-a-donation\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">MagicMirror² is opensource and free. That doesn't mean we don't need any money.</p>\n<p dir=\"auto\">Please consider a donation to help us cover the ongoing costs like webservers and email services.\nIf we receive enough donations we might even be able to free up some working hours and spend some extra time improving the MagicMirror² core.</p>\n<p dir=\"auto\">To donate, please follow <a href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=G5D8E9MR5DTD2&amp;source=url\" rel=\"nofollow\">this</a> link.</p>\n<p dir=\"auto\">\n\t<a href=\"https://forum.magicmirror.builders/topic/728/magicmirror-is-voted-number-1-in-the-magpi-top-50\" rel=\"nofollow\"><img src=\"https://camo.githubusercontent.com/a3ac32d50a3fc011f3de9cf99eab23a3f1645e575052295fbdcf97c3e69a672a/68747470733a2f2f6d616769636d6972726f722e6275696c646572732f696d672f6d616770692d626573742d77617465726d61726b2d637573746f6d2e706e67\" width=\"150\" alt=\"MagPi Top 50\" data-canonical-src=\"https://magicmirror.builders/img/magpi-best-watermark-custom.png\" style=\"max-width: 100%;\"></a>\n</p>\n</article>",
"loaded": true,
"timedOut": false,
"errorMessage": null,
"headerInfo": {
"toc": [
{
"level": 2,
"text": "Documentation",
"anchor": "documentation",
"htmlText": "Documentation"
},
{
"level": 2,
"text": "Links",
"anchor": "links",
"htmlText": "Links"
},
{
"level": 2,
"text": "Contributing Guidelines",
"anchor": "contributing-guidelines",
"htmlText": "Contributing Guidelines"
},
{
"level": 2,
"text": "Enjoying MagicMirror? Consider a donation!",
"anchor": "enjoying-magicmirror-consider-a-donation",
"htmlText": "Enjoying MagicMirror? Consider a donation!"
}
],
"siteNavLoginPath": "/login?return_to=https%3A%2F%2Fgithub.com%2FMagicMirrorOrg%2FMagicMirror"
}
},
{
"displayName": "LICENSE.md",
"repoName": "MagicMirror",
"refName": "master",
"path": "LICENSE.md",
"preferredFileType": "license",
"tabName": "MIT",
"richText": null,
"loaded": false,
"timedOut": false,
"errorMessage": null,
"headerInfo": {
"toc": null,
"siteNavLoginPath": "/login?return_to=https%3A%2F%2Fgithub.com%2FMagicMirrorOrg%2FMagicMirror"
}
}
],
"overviewFilesProcessingTime": 0
}
},
"appPayload": {
"helpUrl": "https://docs.github.com",
"findFileWorkerPath": "/assets-cdn/worker/find-file-worker-1583894afd38.js",
"findInFileWorkerPath": "/assets-cdn/worker/find-in-file-worker-3a63a487027b.js",
"githubDevUrl": null,
"enabled_features": {
"code_nav_ui_events": false,
"overview_shared_code_dropdown_button": false,
"react_blob_overlay": false,
"copilot_conversational_ux_embedding_update": false,
"copilot_smell_icebreaker_ux": true,
"copilot_workspace": false
}
}
}
}
{
"accept-ranges": "bytes",
"cache-control": "max-age=0, private, must-revalidate",
"content-encoding": "gzip",
"content-security-policy": "default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com api.githubcopilot.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com/v1/engines/github-completion/completions proxy.enterprise.githubcopilot.com/v1/engines/github-completion/completions *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ gist.github.com/assets-cdn/worker/",
"content-type": "text/html; charset=utf-8",
"date": "Sun, 21 Jul 2024 20:33:59 GMT",
"etag": "ecafddb0a57d9e84ba6dffff802c3757",
"referrer-policy": "no-referrer-when-downgrade",
"server": "GitHub.com",
"set-cookie": "logged_in=no; Path=/; Domain=github.com; Expires=Mon, 21 Jul 2025 20:33:59 GMT; HttpOnly; Secure; SameSite=Lax",
"strict-transport-security": "max-age=31536000; includeSubdomains; preload",
"transfer-encoding": "chunked",
"vary": "X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With",
"x-content-type-options": "nosniff",
"x-frame-options": "deny",
"x-github-request-id": "86C6:332479:4ED87FF:6605580:669D70B5",
"x-xss-protection": "0"
}