The following URL (usually /.git/config) is publicly accessible and is leaking source code and repository configuration.
Additionally the GIT credentials are present and could give unauthorized access to source code repository of private projects.
Severity: critical
Fingerprint: 2580fa947178c88c8f88f4f64b143e4f192660cba918840231b48733ab9b413e
[init] defaultBranch = none [fetch] recurseSubmodules = false [credential] interactive = never [gc] autoDetach = false [http] extraHeader = X-Gitaly-Correlation-ID: dfbaa5e3888e1d82705aba1a1c96bee4 [transfer] bundleURI = true [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://gitlab-ci-token:glcbt-eyJraWQiOiIxVHRMOTJuWlJnVHNqSVVvWDJPWVZMVU9KMWJXbUdFYmwtZkFuS3NZVWhRIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXJzaW9uIjoiMC4xLjAiLCJvIjoiMSIsInUiOiJra3RrIiwicCI6IjE1OG9nOSIsImciOiIxcjlqOTAiLCJqdGkiOiI3OGUzNDQ2Zi00NGM0LTQzZTItYjc4YS0zMzE2YWU1N2QyZTQiLCJhdWQiOiJnaXRsYWItYXV0aHotdG9rZW4iLCJzdWIiOiJnaWQ6Ly9naXRsYWIvQ2k6OkJ1aWxkLzEwOTEzNzQ4NjI2IiwiaXNzIjoiZ2l0bGFiLmNvbSIsImlhdCI6MTc1NDM3ODU5MCwibmJmIjoxNzU0Mzc4NTg1LCJleHAiOjE3NTQzODI0OTB9.lxCGQT1dPu2_MYcusjTjRFU6xYCNCZFGpOK9DuL0MzeD6iLgoWvspPNav6fvZXpMJ2zwVLbuiKJdNGb488tfHsMUCwwgr1_9FOqpA-QbVnd72UBer-LqM7NX6fTYqtyTXLiIuKbxwQwOnVy8L4Mq57p4ivOFlwBbFZPJuiKjh3Ml4kllIAk7pSGfwbeBwxJOdycQH06HH9-ex6kyZeOaZoGUjohazPBK3UNV0QnfpFPAmbIYmYG7hd9GGjtGmv20pk4vEGuYFSPWXvp-HzI6yaP3whcivPmW3_K8HpOvlwaSOFvWSTsRaIggCZ9UDaYgLkIH3ifxpB90xq6UVKrtSA@gitlab.com/gm_screen/website.git fetch = +refs/heads/*:refs/remotes/origin/* [lfs] repositoryformatversion = 0
Severity: critical
Fingerprint: 2580fa947178c88602b1737db148c044b81b03713d63bb82370a6522f18bb2d8
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://gitlab-ci-token:glcbt-eyJraWQiOiIxVHRMOTJuWlJnVHNqSVVvWDJPWVZMVU9KMWJXbUdFYmwtZkFuS3NZVWhRIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJ2ZXJzaW9uIjoiMC4xLjAiLCJvIjoiMSIsInUiOiJra3RrIiwicCI6IjE1OG9nOSIsImciOiIxcjlqOTAiLCJqdGkiOiI1M2IwMzE0Zi1mOGZmLTRmZTItYjA5ZC1hYmQzM2ZjOGM4OTAiLCJhdWQiOiJnaXRsYWItYXV0aHotdG9rZW4iLCJzdWIiOiJnaWQ6Ly9naXRsYWIvQ2k6OkJ1aWxkLzEwMjE2NTA5NDA2IiwiaXNzIjoiZ2l0bGFiLmNvbSIsImlhdCI6MTc0ODc2ODkwOSwibmJmIjoxNzQ4NzY4OTA0LCJleHAiOjE3NDg3NzI4MDl9.k6hqQOUcx9AaJrlPjy5mZ9RSD3G_wNIUWmhR3syvw37S7a8SCQmLUhuIvk8HBpQMMFZGijokqo9A32RMUCdlKeUtVlSwr6WP-41rGNGsaE1TCL_tP11dj9LuOm4XEvxkTKIqUpTZu7IBqTjZ7E1k4HmjjjAUitbVu2UgxYT4vFWBoUsIwHpHKEXYK6r_UbvwPRh3dqqJyNwKaaEKPh4GCwE4JuUeSIsneYu5A46A7B6zT3x1dh0Foak1tWWdCwH-GbE1R7yipPjWUU5JvfKy-mv2YJ0N535FnqqqMllkbkM8ZWUpvo2_wHw8r-nRmZoS4hw0yKwegAwyC7y3OIL0Xg@gitlab.com/gm_screen/website.git fetch = +refs/heads/*:refs/remotes/origin/* [lfs] repositoryformatversion = 0
Open service 35.185.44.232:443 · gm-screen.app
2026-01-12 21:11
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Mon, 12 Jan 2026 21:21:51 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KET0T1NHWTXV92T7WWGHKVGJ
Date: Mon, 12 Jan 2026 21:11:51 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-11 21:12
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sun, 11 Jan 2026 21:22:10 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KEQEDX59KMYQ7N149SZAX37W
Date: Sun, 11 Jan 2026 21:12:10 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-10 21:14
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sat, 10 Jan 2026 21:24:59 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KEMW6BVHCJ68VKCT4WYRZVV4
Date: Sat, 10 Jan 2026 21:14:59 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-09 21:41
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Fri, 09 Jan 2026 21:52:01 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KEJBB4P4ACDGBG0DTQBZ0JKK
Date: Fri, 09 Jan 2026 21:42:01 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-08 21:26
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Thu, 08 Jan 2026 21:36:57 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KEFR2T79J9GG3JM8T7SJQVPF
Date: Thu, 08 Jan 2026 21:26:57 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-07 21:16
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Wed, 07 Jan 2026 21:26:19 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KED52MD3G4Q4N2W4N4ETCHE4
Date: Wed, 07 Jan 2026 21:16:19 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-06 21:25
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Tue, 06 Jan 2026 21:35:38 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KEAK6Z7T1ZRW017S8YCZP00H
Date: Tue, 06 Jan 2026 21:25:38 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-03 21:28
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sat, 03 Jan 2026 21:38:04 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KE2W59FYTRCR8RESDV3HF8VV
Date: Sat, 03 Jan 2026 21:28:05 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-02 21:25
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Fri, 02 Jan 2026 21:35:45 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KE09MAHX2DA33X8HPX74WWX2
Date: Fri, 02 Jan 2026 21:25:45 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2026-01-01 21:20
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Thu, 01 Jan 2026 21:30:03 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KDXPX5EKQ5NTNVKV6PJ34VEA
Date: Thu, 01 Jan 2026 21:20:03 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2025-12-31 21:31
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Wed, 31 Dec 2025 21:41:57 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KDV567D14NRF958ACAJX85YT
Date: Wed, 31 Dec 2025 21:31:57 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2025-12-30 21:37
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Tue, 30 Dec 2025 21:47:05 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KDRK2X8WDZ5FZQQE123BYKT3
Date: Tue, 30 Dec 2025 21:37:05 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2025-12-23 07:37
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Tue, 23 Dec 2025 07:47:14 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KD5282TK4Q0DE8AGC51QBK77
Date: Tue, 23 Dec 2025 07:37:14 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2025-12-20 23:28
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sat, 20 Dec 2025 23:38:25 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KCZ1FJPNV0F3WZKHZ56HTTP7
Date: Sat, 20 Dec 2025 23:28:25 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 35.185.44.232:443 · gm-screen.app
2025-12-20 17:11
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sat, 20 Dec 2025 17:21:21 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KCYBX4P4QVB9B6YWKADDA2Q0
Date: Sat, 20 Dec 2025 17:11:21 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 2600:1901:0:7b8a:::443 · gm-screen.app
2025-12-20 17:11
HTTP/1.1 200 OK
Cache-Control: max-age=600
Content-Length: 1903
Content-Type: text/html; charset=utf-8
Etag: "74642d41280cfde03ef30031212aa8ad444cbf0913ed449fa88d429fd0d4e4be"
Expires: Sat, 20 Dec 2025 17:21:20 UTC
Last-Modified: Tue, 05 Aug 2025 07:23:18 GMT
Permissions-Policy: interest-cohort=()
Vary: Origin
X-Request-Id: 01KCYBX4MJJ9JTQDA5BYBV19FF
Date: Sat, 20 Dec 2025 17:11:21 GMT
Connection: close
Page title: GM Screen
<!DOCTYPE html>
<title>GM Screen</title>
<meta name="keywords" content="GM Screen, Virtual GM Screen, RPG Game Master Tool, TTRPG Companion, D&D 5e Tools, RPG Rules Reference, Offline GM App"/>
<meta name="viewport" content="width=device-width"/>
<script src="./core.js?v0.0.11"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Alegreya+SC:ital,wght@0,400;0,500;0,700;0,800;0,900;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans+SC:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');
* {
margin: 0;
padding: 0;
cursor: default;
}
::selection {
background: transparent;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
}
body {
display: flex;
align-items: center;
justify-content: center;
}
h1 {
font: 700 64px/1em 'Alegreya', serif;
}
em {
font: italic 0.2em/0px 'Alegreya', serif;
display: block;
text-align: right;
}
</style>
<script>
keys = [];
async function init() {
const launch = (id) => { var e = new Event('gm-open'); e.GM = { id }; document.dispatchEvent(e) };
await GM.init();
launch('library');
document.querySelector('h1>em').innerText = "Double-click to start";
window.addEventListener('dblclick', () => launch('library'));
}
document.addEventListener('DOMContentLoaded', async e => {
if (localStorage.getItem('konamiCode')) { return init(); }
document.addEventListener('keyup', e => {
keys.push(e.keyCode);
if (keys.length > 10) keys.shift();
if (keys.join() === '38,38,40,40,37,39,37,39,66,65') {
localStorage.setItem('konamiCode', 'true');
init();
}
});
});
</script>
<h1>
GM Screen
<em>almost there</em>
</h1>
Open service 2600:1901:0:7b8a:::80 · gm-screen.app
2025-12-20 17:11
HTTP/1.1 301 Moved Permanently content-type: text/html; charset=utf-8 location: https://gm-screen.app/ permissions-policy: interest-cohort=() vary: Origin x-request-id: 01KCYBX545N6SE3WKDHY3BPKGN date: Sat, 20 Dec 2025 17:11:21 GMT content-length: 57 gitlab-lb: haproxy-pages-04-lb-gprd gitlab-sv: pages-us-east1-b connection: close <a href="https://gm-screen.app/">Moved Permanently</a>.
Open service 35.185.44.232:80 · gm-screen.app
2025-12-20 17:11
HTTP/1.1 301 Moved Permanently content-type: text/html; charset=utf-8 location: https://gm-screen.app/ permissions-policy: interest-cohort=() vary: Origin x-request-id: 01KCYBX4FY4RVY9M2MC9E6YWY7 date: Sat, 20 Dec 2025 17:11:20 GMT content-length: 57 gitlab-lb: haproxy-pages-04-lb-gprd gitlab-sv: gke-cny-pages connection: close <a href="https://gm-screen.app/">Moved Permanently</a>.