cursor-local-remote 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +8 -8
- package/.next/app-path-routes-manifest.json +2 -2
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +20 -20
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +1 -1
- package/.next/server/app-paths-manifest.json +2 -2
- package/.next/server/middleware-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/README.md +27 -6
- package/package.json +1 -1
- /package/.next/static/{WmwDJs46_BwMpdtjSbkyr → FopTfwgkaVjrbw4A5Ol85}/_buildManifest.js +0 -0
- /package/.next/static/{WmwDJs46_BwMpdtjSbkyr → FopTfwgkaVjrbw4A5Ol85}/_ssgManifest.js +0 -0
package/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
FopTfwgkaVjrbw4A5Ol85
|
|
@@ -43,19 +43,19 @@
|
|
|
43
43
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
44
44
|
"static/chunks/app/api/chat/route-0de2bc720406b0f8.js"
|
|
45
45
|
],
|
|
46
|
-
"/api/
|
|
46
|
+
"/api/push/vapid-key/route": [
|
|
47
47
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
48
48
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
49
49
|
"static/chunks/255-ebd51be49873d76c.js",
|
|
50
50
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
51
|
-
"static/chunks/app/api/
|
|
51
|
+
"static/chunks/app/api/push/vapid-key/route-0de2bc720406b0f8.js"
|
|
52
52
|
],
|
|
53
|
-
"/api/
|
|
53
|
+
"/api/sessions/active/route": [
|
|
54
54
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
55
55
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
56
56
|
"static/chunks/255-ebd51be49873d76c.js",
|
|
57
57
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
58
|
-
"static/chunks/app/api/
|
|
58
|
+
"static/chunks/app/api/sessions/active/route-0de2bc720406b0f8.js"
|
|
59
59
|
],
|
|
60
60
|
"/api/push/subscribe/route": [
|
|
61
61
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
@@ -78,19 +78,19 @@
|
|
|
78
78
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
79
79
|
"static/chunks/app/api/sessions/route-0de2bc720406b0f8.js"
|
|
80
80
|
],
|
|
81
|
-
"/api/
|
|
81
|
+
"/api/sessions/watch/route": [
|
|
82
82
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
83
83
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
84
84
|
"static/chunks/255-ebd51be49873d76c.js",
|
|
85
85
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
86
|
-
"static/chunks/app/api/
|
|
86
|
+
"static/chunks/app/api/sessions/watch/route-0de2bc720406b0f8.js"
|
|
87
87
|
],
|
|
88
|
-
"/api/
|
|
88
|
+
"/api/settings/route": [
|
|
89
89
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
90
90
|
"static/chunks/4bd1b696-c023c6e3521b1417.js",
|
|
91
91
|
"static/chunks/255-ebd51be49873d76c.js",
|
|
92
92
|
"static/chunks/main-app-14a04931699eb2a2.js",
|
|
93
|
-
"static/chunks/app/api/
|
|
93
|
+
"static/chunks/app/api/settings/route-0de2bc720406b0f8.js"
|
|
94
94
|
],
|
|
95
95
|
"/page": [
|
|
96
96
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"/api/info/route": "/api/info",
|
|
7
7
|
"/api/models/route": "/api/models",
|
|
8
8
|
"/api/chat/route": "/api/chat",
|
|
9
|
-
"/api/sessions/active/route": "/api/sessions/active",
|
|
10
9
|
"/api/push/vapid-key/route": "/api/push/vapid-key",
|
|
10
|
+
"/api/sessions/active/route": "/api/sessions/active",
|
|
11
11
|
"/api/push/subscribe/route": "/api/push/subscribe",
|
|
12
12
|
"/api/sessions/history/route": "/api/sessions/history",
|
|
13
13
|
"/api/sessions/route": "/api/sessions",
|
|
14
|
-
"/api/settings/route": "/api/settings",
|
|
15
14
|
"/api/sessions/watch/route": "/api/sessions/watch",
|
|
15
|
+
"/api/settings/route": "/api/settings",
|
|
16
16
|
"/page": "/"
|
|
17
17
|
}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"ampDevFiles": [],
|
|
7
7
|
"lowPriorityFiles": [
|
|
8
|
-
"static/
|
|
9
|
-
"static/
|
|
8
|
+
"static/FopTfwgkaVjrbw4A5Ol85/_buildManifest.js",
|
|
9
|
+
"static/FopTfwgkaVjrbw4A5Ol85/_ssgManifest.js"
|
|
10
10
|
],
|
|
11
11
|
"rootMainFiles": [
|
|
12
12
|
"static/chunks/webpack-d434b6449a9cd8f3.js",
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 4,
|
|
3
3
|
"routes": {
|
|
4
|
-
"/
|
|
5
|
-
"
|
|
4
|
+
"/icon.png": {
|
|
5
|
+
"initialHeaders": {
|
|
6
|
+
"cache-control": "public, immutable, no-transform, max-age=31536000",
|
|
7
|
+
"content-type": "image/png",
|
|
8
|
+
"x-next-cache-tags": "_N_T_/layout,_N_T_/icon.png/layout,_N_T_/icon.png/route,_N_T_/icon.png"
|
|
9
|
+
},
|
|
6
10
|
"experimentalBypassFor": [
|
|
7
11
|
{
|
|
8
12
|
"type": "header",
|
|
@@ -15,8 +19,8 @@
|
|
|
15
19
|
}
|
|
16
20
|
],
|
|
17
21
|
"initialRevalidateSeconds": false,
|
|
18
|
-
"srcRoute": "/
|
|
19
|
-
"dataRoute":
|
|
22
|
+
"srcRoute": "/icon.png",
|
|
23
|
+
"dataRoute": null,
|
|
20
24
|
"allowHeader": [
|
|
21
25
|
"host",
|
|
22
26
|
"x-matched-path",
|
|
@@ -26,12 +30,8 @@
|
|
|
26
30
|
"x-next-revalidate-tag-token"
|
|
27
31
|
]
|
|
28
32
|
},
|
|
29
|
-
"/
|
|
30
|
-
"
|
|
31
|
-
"cache-control": "public, max-age=0, must-revalidate",
|
|
32
|
-
"content-type": "application/manifest+json",
|
|
33
|
-
"x-next-cache-tags": "_N_T_/layout,_N_T_/manifest.webmanifest/layout,_N_T_/manifest.webmanifest/route,_N_T_/manifest.webmanifest"
|
|
34
|
-
},
|
|
33
|
+
"/_not-found": {
|
|
34
|
+
"initialStatus": 404,
|
|
35
35
|
"experimentalBypassFor": [
|
|
36
36
|
{
|
|
37
37
|
"type": "header",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
}
|
|
45
45
|
],
|
|
46
46
|
"initialRevalidateSeconds": false,
|
|
47
|
-
"srcRoute": "/
|
|
48
|
-
"dataRoute":
|
|
47
|
+
"srcRoute": "/_not-found",
|
|
48
|
+
"dataRoute": "/_not-found.rsc",
|
|
49
49
|
"allowHeader": [
|
|
50
50
|
"host",
|
|
51
51
|
"x-matched-path",
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
"x-next-revalidate-tag-token"
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
|
-
"/icon.png": {
|
|
58
|
+
"/apple-icon.png": {
|
|
59
59
|
"initialHeaders": {
|
|
60
60
|
"cache-control": "public, immutable, no-transform, max-age=31536000",
|
|
61
61
|
"content-type": "image/png",
|
|
62
|
-
"x-next-cache-tags": "_N_T_/layout,_N_T_/icon.png/layout,_N_T_/icon.png/route,_N_T_/icon.png"
|
|
62
|
+
"x-next-cache-tags": "_N_T_/layout,_N_T_/apple-icon.png/layout,_N_T_/apple-icon.png/route,_N_T_/apple-icon.png"
|
|
63
63
|
},
|
|
64
64
|
"experimentalBypassFor": [
|
|
65
65
|
{
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
}
|
|
74
74
|
],
|
|
75
75
|
"initialRevalidateSeconds": false,
|
|
76
|
-
"srcRoute": "/icon.png",
|
|
76
|
+
"srcRoute": "/apple-icon.png",
|
|
77
77
|
"dataRoute": null,
|
|
78
78
|
"allowHeader": [
|
|
79
79
|
"host",
|
|
@@ -84,11 +84,11 @@
|
|
|
84
84
|
"x-next-revalidate-tag-token"
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
|
-
"/
|
|
87
|
+
"/manifest.webmanifest": {
|
|
88
88
|
"initialHeaders": {
|
|
89
|
-
"cache-control": "public,
|
|
90
|
-
"content-type": "
|
|
91
|
-
"x-next-cache-tags": "_N_T_/layout,_N_T_/
|
|
89
|
+
"cache-control": "public, max-age=0, must-revalidate",
|
|
90
|
+
"content-type": "application/manifest+json",
|
|
91
|
+
"x-next-cache-tags": "_N_T_/layout,_N_T_/manifest.webmanifest/layout,_N_T_/manifest.webmanifest/route,_N_T_/manifest.webmanifest"
|
|
92
92
|
},
|
|
93
93
|
"experimentalBypassFor": [
|
|
94
94
|
{
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
}
|
|
103
103
|
],
|
|
104
104
|
"initialRevalidateSeconds": false,
|
|
105
|
-
"srcRoute": "/
|
|
105
|
+
"srcRoute": "/manifest.webmanifest",
|
|
106
106
|
"dataRoute": null,
|
|
107
107
|
"allowHeader": [
|
|
108
108
|
"host",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--FopTfwgkaVjrbw4A5Ol85--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/e600fbf434173a2f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-168baea1ba298a10.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"SwRegister\"]\n5:I[2317,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"PwaInstall\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/e600fbf434173a2f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"FopTfwgkaVjrbw4A5Ol85\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e600fbf434173a2f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L10\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -10,7 +10,7 @@ c:I[4431,[],"MetadataBoundary"]
|
|
|
10
10
|
d:"$Sreact.suspense"
|
|
11
11
|
f:I[7150,[],""]
|
|
12
12
|
:HL["/_next/static/css/e600fbf434173a2f.css","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"FopTfwgkaVjrbw4A5Ol85","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e600fbf434173a2f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"overscroll-none","children":[["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L4",null,{}],["$","$L5",null,{}]]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L6",null,{"children":["$L7",["$","$L8",null,{"promise":"$@9"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$La",null,{"children":"$Lb"}],null],["$","$Lc",null,{"children":["$","div",null,{"hidden":true,"children":["$","$d",null,{"fallback":null,"children":"$Le"}]}]}]]}],false]],"m":"$undefined","G":["$f",[]],"s":false,"S":true}
|
|
14
14
|
b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0b"}]]
|
|
15
15
|
7:null
|
|
16
16
|
10:I[622,[],"IconMark"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--WmwDJs46_BwMpdtjSbkyr--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/e600fbf434173a2f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5eacd01f773eed7f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-168baea1ba298a10.js" async=""></script><script src="/_next/static/chunks/391-727d95bcfba987c2.js" async=""></script><script src="/_next/static/chunks/app/page-df671bcff0abba4f.js" async=""></script><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div class="h-dvh"><div class="h-full"><div class="h-full flex flex-col"><header class="shrink-0 flex items-center justify-between h-11 px-3 border-b border-border"><div class="flex items-center gap-2"><button aria-label="Open session sidebar" class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="15" y2="12"></line><line x1="3" y1="18" x2="18" y2="18"></line></svg></button><span class="text-[13px] font-medium text-text-secondary">~</span></div><div class="flex items-center gap-1"><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Settings"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Connect device"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><rect x="14" y="14" width="3" height="3"></rect><line x1="21" y1="14" x2="21" y2="14.01"></line><line x1="21" y1="21" x2="21" y2="21.01"></line></svg></button></div></header><div class="flex-1 flex items-center justify-center px-6"><div class="flex flex-col items-center max-w-sm"><p class="text-text-secondary text-[13px] font-medium mb-1">Cursor Remote</p><p class="text-text-muted text-[12px] leading-relaxed">Send a message to start an agent session.</p></div></div><div class="shrink-0 bg-bg px-4 py-3 safe-bottom"><div class="max-w-3xl mx-auto"><div class="relative bg-bg-surface border border-border rounded-xl focus-within:border-text-muted/40 transition-colors"><textarea placeholder="Ask Cursor anything..." aria-label="Message input" rows="1" class="w-full resize-none bg-transparent px-3.5 pt-2.5 pb-1 pr-10 text-[13px] text-text placeholder:text-text-muted focus:outline-none"></textarea><div class="flex items-center justify-between px-2 pb-2"><div class="flex items-center gap-1" role="radiogroup" aria-label="Agent mode"><button role="radio" aria-checked="true" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors bg-bg-active text-text">Agent</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Ask</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Plan</button><span class="hidden sm:inline text-[10px] text-text-muted/50 ml-2 select-none">Enter ↵ send · Shift+Enter newline</span></div><div class="flex items-center gap-1.5"><div class="relative"><button aria-haspopup="listbox" aria-expanded="false" aria-label="Select model" class="flex items-center gap-1 px-3 py-1.5 rounded text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><span class="inline-block rounded-full border-2 border-text-muted border-t-transparent animate-spin w-2.5 h-2.5"></span><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><button disabled="" class="p-2 rounded-md text-text-muted hover:text-text disabled:opacity-20 disabled:cursor-not-allowed transition-colors" aria-label="Send message"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg></button></div></div></div></div></div></div></div><div role="dialog" aria-label="Session history" aria-hidden="true" class="fixed top-0 left-0 z-50 h-full w-[280px] bg-bg-elevated border-r border-border transform transition-transform duration-150 flex flex-col -translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Sessions</span><div class="flex items-center gap-0.5"><button aria-label="Refresh sessions" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors disabled:opacity-40"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><path d="M21 12a9 9 0 1 1-6.22-8.56"></path><polyline points="21 3 21 9 15 9"></polyline></svg></button><button aria-label="Close sidebar" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div><div class="px-2 pt-2 pb-1 space-y-1 shrink-0"><button class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>New session</button><button aria-pressed="false" class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>All workspaces</button></div><div class="overflow-y-auto flex-1 px-2 pb-2"><p class="text-text-muted text-[12px] text-center py-8">No sessions</p></div></div><div role="dialog" aria-label="Settings" aria-hidden="true" class="fixed top-0 right-0 z-50 h-full w-[300px] bg-bg-elevated border-l border-border transform transition-transform duration-150 flex flex-col translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Settings</span><button aria-label="Close settings" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><div class="overflow-y-auto flex-1 p-3 space-y-1"><div class="flex justify-center py-8"><span class="inline-block w-3 h-3 rounded-full border-2 border-text-muted border-t-transparent animate-spin"></span></div></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"SwRegister\"]\n5:I[2317,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"PwaInstall\"]\n6:I[5932,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-df671bcff0abba4f.js\"],\"ErrorBoundary\"]\n7:I[9365,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-df671bcff0abba4f.js\"],\"ChatWorkspace\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/css/e600fbf434173a2f.css\",\"style\"]\n:HL[\"/_next/static/css/5eacd01f773eed7f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"WmwDJs46_BwMpdtjSbkyr\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e600fbf434173a2f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5eacd01f773eed7f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--FopTfwgkaVjrbw4A5Ol85--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/e600fbf434173a2f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5eacd01f773eed7f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-168baea1ba298a10.js" async=""></script><script src="/_next/static/chunks/391-727d95bcfba987c2.js" async=""></script><script src="/_next/static/chunks/app/page-df671bcff0abba4f.js" async=""></script><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div class="h-dvh"><div class="h-full"><div class="h-full flex flex-col"><header class="shrink-0 flex items-center justify-between h-11 px-3 border-b border-border"><div class="flex items-center gap-2"><button aria-label="Open session sidebar" class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="12" x2="15" y2="12"></line><line x1="3" y1="18" x2="18" y2="18"></line></svg></button><span class="text-[13px] font-medium text-text-secondary">~</span></div><div class="flex items-center gap-1"><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Settings"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button><button class="p-2 rounded-md hover:bg-bg-hover transition-colors text-text-muted hover:text-text-secondary" aria-label="Connect device"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"></rect><rect x="14" y="3" width="7" height="7" rx="1"></rect><rect x="3" y="14" width="7" height="7" rx="1"></rect><rect x="14" y="14" width="3" height="3"></rect><line x1="21" y1="14" x2="21" y2="14.01"></line><line x1="21" y1="21" x2="21" y2="21.01"></line></svg></button></div></header><div class="flex-1 flex items-center justify-center px-6"><div class="flex flex-col items-center max-w-sm"><p class="text-text-secondary text-[13px] font-medium mb-1">Cursor Remote</p><p class="text-text-muted text-[12px] leading-relaxed">Send a message to start an agent session.</p></div></div><div class="shrink-0 bg-bg px-4 py-3 safe-bottom"><div class="max-w-3xl mx-auto"><div class="relative bg-bg-surface border border-border rounded-xl focus-within:border-text-muted/40 transition-colors"><textarea placeholder="Ask Cursor anything..." aria-label="Message input" rows="1" class="w-full resize-none bg-transparent px-3.5 pt-2.5 pb-1 pr-10 text-[13px] text-text placeholder:text-text-muted focus:outline-none"></textarea><div class="flex items-center justify-between px-2 pb-2"><div class="flex items-center gap-1" role="radiogroup" aria-label="Agent mode"><button role="radio" aria-checked="true" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors bg-bg-active text-text">Agent</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Ask</button><button role="radio" aria-checked="false" class="px-3 py-1.5 rounded text-[12px] font-medium transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover">Plan</button><span class="hidden sm:inline text-[10px] text-text-muted/50 ml-2 select-none">Enter ↵ send · Shift+Enter newline</span></div><div class="flex items-center gap-1.5"><div class="relative"><button aria-haspopup="listbox" aria-expanded="false" aria-label="Select model" class="flex items-center gap-1 px-3 py-1.5 rounded text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><span class="inline-block rounded-full border-2 border-text-muted border-t-transparent animate-spin w-2.5 h-2.5"></span><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><polyline points="6 9 12 15 18 9"></polyline></svg></button></div><button disabled="" class="p-2 rounded-md text-text-muted hover:text-text disabled:opacity-20 disabled:cursor-not-allowed transition-colors" aria-label="Send message"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=""><line x1="12" y1="19" x2="12" y2="5"></line><polyline points="5 12 12 5 19 12"></polyline></svg></button></div></div></div></div></div></div></div><div role="dialog" aria-label="Session history" aria-hidden="true" class="fixed top-0 left-0 z-50 h-full w-[280px] bg-bg-elevated border-r border-border transform transition-transform duration-150 flex flex-col -translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Sessions</span><div class="flex items-center gap-0.5"><button aria-label="Refresh sessions" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors disabled:opacity-40"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><path d="M21 12a9 9 0 1 1-6.22-8.56"></path><polyline points="21 3 21 9 15 9"></polyline></svg></button><button aria-label="Close sidebar" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div></div><div class="px-2 pt-2 pb-1 space-y-1 shrink-0"><button class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] text-text-muted hover:text-text-secondary hover:bg-bg-hover transition-colors"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>New session</button><button aria-pressed="false" class="w-full flex items-center gap-2 px-2.5 py-1.5 rounded-md text-[12px] transition-colors text-text-muted hover:text-text-secondary hover:bg-bg-hover"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>All workspaces</button></div><div class="overflow-y-auto flex-1 px-2 pb-2"><p class="text-text-muted text-[12px] text-center py-8">No sessions</p></div></div><div role="dialog" aria-label="Settings" aria-hidden="true" class="fixed top-0 right-0 z-50 h-full w-[300px] bg-bg-elevated border-l border-border transform transition-transform duration-150 flex flex-col translate-x-full"><div class="flex items-center justify-between h-11 px-3 border-b border-border shrink-0"><span class="text-[13px] font-medium text-text-secondary">Settings</span><button aria-label="Close settings" class="p-1 rounded-md hover:bg-bg-hover text-text-muted hover:text-text-secondary transition-colors"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class=""><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div><div class="overflow-y-auto flex-1 p-3 space-y-1"><div class="flex justify-center py-8"><span class="inline-block w-3 h-3 rounded-full border-2 border-text-muted border-t-transparent animate-spin"></span></div></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"SwRegister\"]\n5:I[2317,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"PwaInstall\"]\n6:I[5932,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-df671bcff0abba4f.js\"],\"ErrorBoundary\"]\n7:I[9365,[\"391\",\"static/chunks/391-727d95bcfba987c2.js\",\"593\",\"static/chunks/app/page-df671bcff0abba4f.js\"],\"ChatWorkspace\"]\n8:I[4431,[],\"OutletBoundary\"]\na:I[5278,[],\"AsyncMetadataOutlet\"]\nc:I[4431,[],\"ViewportBoundary\"]\ne:I[4431,[],\"MetadataBoundary\"]\nf:\"$Sreact.suspense\"\n11:I[7150,[],\"\"]\n:HL[\"/_next/static/css/e600fbf434173a2f.css\",\"style\"]\n:HL[\"/_next/static/css/5eacd01f773eed7f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"FopTfwgkaVjrbw4A5Ol85\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e600fbf434173a2f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L7\",null,{}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5eacd01f773eed7f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$L9\",[\"$\",\"$La\",null,{\"promise\":\"$@b\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],null],[\"$\",\"$Le\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$f\",null,{\"fallback\":null,\"children\":\"$L10\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n9:null\n"])</script><script>self.__next_f.push([1,"12:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"b:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L12\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"10:\"$b:metadata\"\n"])</script></body></html>
|
|
@@ -13,7 +13,7 @@ f:"$Sreact.suspense"
|
|
|
13
13
|
11:I[7150,[],""]
|
|
14
14
|
:HL["/_next/static/css/e600fbf434173a2f.css","style"]
|
|
15
15
|
:HL["/_next/static/css/5eacd01f773eed7f.css","style"]
|
|
16
|
-
0:{"P":null,"b":"
|
|
16
|
+
0:{"P":null,"b":"FopTfwgkaVjrbw4A5Ol85","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/e600fbf434173a2f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"overscroll-none","children":[["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L4",null,{}],["$","$L5",null,{}]]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L6",null,{"children":["$","$L7",null,{}]}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5eacd01f773eed7f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],null],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
|
|
17
17
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0b"}]]
|
|
18
18
|
9:null
|
|
19
19
|
12:I[622,[],"IconMark"]
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"/api/info/route": "app/api/info/route.js",
|
|
7
7
|
"/api/models/route": "app/api/models/route.js",
|
|
8
8
|
"/api/chat/route": "app/api/chat/route.js",
|
|
9
|
-
"/api/sessions/active/route": "app/api/sessions/active/route.js",
|
|
10
9
|
"/api/push/vapid-key/route": "app/api/push/vapid-key/route.js",
|
|
10
|
+
"/api/sessions/active/route": "app/api/sessions/active/route.js",
|
|
11
11
|
"/api/push/subscribe/route": "app/api/push/subscribe/route.js",
|
|
12
12
|
"/api/sessions/history/route": "app/api/sessions/history/route.js",
|
|
13
13
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
14
|
-
"/api/settings/route": "app/api/settings/route.js",
|
|
15
14
|
"/api/sessions/watch/route": "app/api/sessions/watch/route.js",
|
|
15
|
+
"/api/settings/route": "app/api/settings/route.js",
|
|
16
16
|
"/page": "app/page.js"
|
|
17
17
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"wasm": [],
|
|
19
19
|
"assets": [],
|
|
20
20
|
"env": {
|
|
21
|
-
"__NEXT_BUILD_ID": "
|
|
21
|
+
"__NEXT_BUILD_ID": "FopTfwgkaVjrbw4A5Ol85",
|
|
22
22
|
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "iXXMrFSSgs4vthm57YNSOxqx+PEci0BWRWSHfO7vXHw=",
|
|
23
23
|
"__NEXT_PREVIEW_MODE_ID": "1c5d6cae8d80ef41b72fb40230dd2603",
|
|
24
24
|
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "5077b6ff949d151981381dee9756424772b668d00a49f981f244a25ad2950e09",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--FopTfwgkaVjrbw4A5Ol85--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/css/e600fbf434173a2f.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-d434b6449a9cd8f3.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-14a04931699eb2a2.js" async=""></script><script src="/_next/static/chunks/app/layout-168baea1ba298a10.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a0b"/><title>Cursor Local Remote</title><meta name="description" content="Control Cursor IDE from any device on your local network"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="CLR"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><link rel="icon" href="/icon.png?c7e4facf85613587" type="image/png" sizes="32x32"/><link rel="apple-touch-icon" href="/apple-icon.png?4e1b4f0ebf73adf0" type="image/png" sizes="180x180"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="overscroll-none"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><pwa-install manifest-url="/manifest.webmanifest" name="Cursor Local Remote" description="Control Cursor IDE from any device on your local network" icon="/apple-touch-icon.png"></pwa-install><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[759,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"SwRegister\"]\n5:I[2317,[\"558\",\"static/chunks/app/layout-168baea1ba298a10.js\"],\"PwaInstall\"]\n6:I[4431,[],\"OutletBoundary\"]\n8:I[5278,[],\"AsyncMetadataOutlet\"]\na:I[4431,[],\"ViewportBoundary\"]\nc:I[4431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[7150,[],\"\"]\n:HL[\"/_next/static/css/e600fbf434173a2f.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"FopTfwgkaVjrbw4A5Ol85\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e600fbf434173a2f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"overscroll-none\",\"children\":[[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:I[622,[],\"IconMark\"]\n"])</script><script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Cursor Local Remote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Control Cursor IDE from any device on your local network\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"4\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"CLR\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}],[\"$\",\"link\",\"6\",{\"rel\":\"icon\",\"href\":\"/icon.png?c7e4facf85613587\",\"type\":\"image/png\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"7\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?4e1b4f0ebf73adf0\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L10\",\"8\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" defer=""></script><script src="/_next/static/chunks/framework-7c18bae94415732c.js" defer=""></script><script src="/_next/static/chunks/main-fef688ac5ef45212.js" defer=""></script><script src="/_next/static/chunks/pages/_app-79e662cab09aea11.js" defer=""></script><script src="/_next/static/chunks/pages/_error-89cd7530328c75d9.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d434b6449a9cd8f3.js" defer=""></script><script src="/_next/static/chunks/framework-7c18bae94415732c.js" defer=""></script><script src="/_next/static/chunks/main-fef688ac5ef45212.js" defer=""></script><script src="/_next/static/chunks/pages/_app-79e662cab09aea11.js" defer=""></script><script src="/_next/static/chunks/pages/_error-89cd7530328c75d9.js" defer=""></script><script src="/_next/static/FopTfwgkaVjrbw4A5Ol85/_buildManifest.js" defer=""></script><script src="/_next/static/FopTfwgkaVjrbw4A5Ol85/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"FopTfwgkaVjrbw4A5Ol85","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
package/README.md
CHANGED
|
@@ -4,6 +4,11 @@ Control Cursor from your phone, tablet or any browser on your local network. Gre
|
|
|
4
4
|
|
|
5
5
|
A local web UI that talks to Cursor's CLI agent on your machine. No cloud, accounts or other bs just on your local network. Also added some rudamentary security so that you need a key to access it incase you have many in a Wifi network. Important to only use this on trusted network that are safe, because the security is easy to bruteforce if you are in the same network.
|
|
6
6
|
|
|
7
|
+
## Demo
|
|
8
|
+
https://github.com/user-attachments/assets/6b2284fd-0e3d-46c9-ae63-86bbd672ad72
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
7
12
|
## Good to know
|
|
8
13
|
|
|
9
14
|
This is essentially an easy way to use the Cursor CLI from your phone or any other device on your network.
|
|
@@ -36,6 +41,14 @@ A QR code pops up in your terminal — scan it from your phone and you're connec
|
|
|
36
41
|
- **Live tail** — watch an active desktop session update in real time
|
|
37
42
|
- **Resume sessions** — continue any past session from the web UI
|
|
38
43
|
- **Stop / retry / copy** — cancel a running response, retry, or copy any message
|
|
44
|
+
- **Install as app** — PWA support, add to home screen on iOS/Android for a native feel
|
|
45
|
+
- **Push notifications** — get notified when the agent finishes while the tab is in the background
|
|
46
|
+
- **Settings** — toggle workspace trust, notifications, and sound from the UI
|
|
47
|
+
- **Haptic feedback** — tactile feedback on mobile devices
|
|
48
|
+
- **Sound effects** — audio cues on completion and errors
|
|
49
|
+
- **Multi-tab sessions** — work with multiple chat sessions side by side
|
|
50
|
+
- **Share via QR** — in-app QR code to quickly connect another device
|
|
51
|
+
- **Auto-port** — if the default port is busy, the CLI finds the next available one
|
|
39
52
|
|
|
40
53
|
## Usage
|
|
41
54
|
|
|
@@ -72,24 +85,32 @@ The CLI starts a pre-built Next.js server on your machine. When you send a promp
|
|
|
72
85
|
|
|
73
86
|
### Authentication
|
|
74
87
|
|
|
75
|
-
Every launch generates a
|
|
88
|
+
Every launch generates a memorable word-pair token (e.g. `alpine-berry`) printed in the terminal. You can set a fixed token via the `AUTH_TOKEN` env var. Access is granted by:
|
|
76
89
|
|
|
77
90
|
1. Scanning the QR code (encodes the network URL with the token)
|
|
78
91
|
2. Visiting the URL with `?token=<token>` (sets an `httpOnly` cookie for 7 days)
|
|
79
92
|
3. Passing `Authorization: Bearer <token>` for API calls
|
|
80
93
|
|
|
81
|
-
You can also set a fixed token via the `AUTH_TOKEN` env var.
|
|
82
|
-
|
|
83
94
|
### API
|
|
84
95
|
|
|
85
96
|
All endpoints require a valid token (cookie or `Bearer` header).
|
|
86
97
|
|
|
87
98
|
| Endpoint | Method | Description |
|
|
88
99
|
| --- | --- | --- |
|
|
89
|
-
| `/api/chat` | `POST` | Send a prompt. Returns an NDJSON stream of agent events
|
|
100
|
+
| `/api/chat` | `POST` | Send a prompt. Returns an NDJSON stream of agent events. Body: `{ prompt, sessionId?, model?, mode? }` |
|
|
90
101
|
| `/api/models` | `GET` | List available models from `agent models` (cached 5 min) |
|
|
91
|
-
| `/api/sessions
|
|
92
|
-
| `/api/sessions
|
|
102
|
+
| `/api/sessions` | `GET` | Session list (merged Cursor + CLR sessions). `?all=true` for all workspaces |
|
|
103
|
+
| `/api/sessions` | `DELETE` | Delete a stored session. Body: `{ sessionId }` |
|
|
104
|
+
| `/api/sessions/active` | `GET` | List currently running agent session IDs |
|
|
105
|
+
| `/api/sessions/active` | `DELETE` | Kill a running agent process. Body: `{ sessionId }` |
|
|
106
|
+
| `/api/sessions/history` | `GET` | Full transcript for a session. `?id=<sessionId>` |
|
|
107
|
+
| `/api/sessions/watch` | `GET` | SSE stream for live session updates. `?id=<sessionId>` |
|
|
108
|
+
| `/api/settings` | `GET` | Get current settings (trust, notifications, sound) |
|
|
109
|
+
| `/api/settings` | `PATCH` | Update settings. Body: `{ trust?, notifications?, sound? }` (booleans) |
|
|
110
|
+
| `/api/info` | `GET` | Network info, auth URL, and workspace path |
|
|
111
|
+
| `/api/push/vapid-key` | `GET` | VAPID public key for push notification subscription |
|
|
112
|
+
| `/api/push/subscribe` | `POST` | Register a push subscription. Body: standard `PushSubscription` JSON |
|
|
113
|
+
| `/api/push/subscribe` | `DELETE` | Remove a push subscription. Body: `{ endpoint }` |
|
|
93
114
|
|
|
94
115
|
### Environment variables
|
|
95
116
|
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|