@agent-link/server 0.1.61 → 0.1.63
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/package.json +1 -1
- package/web/iPad.png +0 -0
- package/web/landing.html +188 -113
package/package.json
CHANGED
package/web/iPad.png
CHANGED
|
Binary file
|
package/web/landing.html
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>AgentLink —
|
|
7
|
-
<meta name="description" content="
|
|
8
|
-
<meta name="keywords" content="Claude Code,
|
|
6
|
+
<title>AgentLink — Remote Control for Claude Code</title>
|
|
7
|
+
<meta name="description" content="Remote control for Claude Code. Start a task in your terminal, walk away, and continue from your phone or any browser. Auto-reconnects, end-to-end encrypted.">
|
|
8
|
+
<meta name="keywords" content="Claude Code, remote control, browser IDE, AI coding assistant, AgentLink, end-to-end encrypted, self-hosted, mobile coding">
|
|
9
9
|
<link rel="canonical" href="https://msclaude.ai/">
|
|
10
10
|
<!-- Open Graph -->
|
|
11
11
|
<meta property="og:type" content="website">
|
|
12
|
-
<meta property="og:title" content="AgentLink —
|
|
13
|
-
<meta property="og:description" content="
|
|
12
|
+
<meta property="og:title" content="AgentLink — Remote Control for Claude Code">
|
|
13
|
+
<meta property="og:description" content="Remote control for Claude Code. Start a task in your terminal, walk away, and continue from your phone or any browser. Auto-reconnects, end-to-end encrypted.">
|
|
14
14
|
<meta property="og:url" content="https://msclaude.ai/">
|
|
15
15
|
<meta property="og:image" content="https://msclaude.ai/iPad.png">
|
|
16
16
|
<meta property="og:site_name" content="AgentLink">
|
|
17
17
|
<!-- Twitter Card -->
|
|
18
18
|
<meta name="twitter:card" content="summary_large_image">
|
|
19
|
-
<meta name="twitter:title" content="AgentLink —
|
|
20
|
-
<meta name="twitter:description" content="
|
|
19
|
+
<meta name="twitter:title" content="AgentLink — Remote Control for Claude Code">
|
|
20
|
+
<meta name="twitter:description" content="Remote control for Claude Code. Start a task in your terminal, walk away, and continue from your phone or any browser. Auto-reconnects, end-to-end encrypted.">
|
|
21
21
|
<meta name="twitter:image" content="https://msclaude.ai/iPad.png">
|
|
22
22
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
23
23
|
<script type="application/ld+json">
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@context": "https://schema.org",
|
|
26
26
|
"@type": "SoftwareApplication",
|
|
27
27
|
"name": "AgentLink",
|
|
28
|
-
"description": "
|
|
28
|
+
"description": "Remote control for Claude Code. Start a task in your terminal, walk away, and continue from your phone or any browser. Auto-reconnects, end-to-end encrypted.",
|
|
29
29
|
"url": "https://msclaude.ai/",
|
|
30
30
|
"applicationCategory": "DeveloperApplication",
|
|
31
31
|
"operatingSystem": "Windows, macOS, Linux",
|
|
@@ -85,8 +85,8 @@
|
|
|
85
85
|
/* ── Hero ── */
|
|
86
86
|
.hero {
|
|
87
87
|
text-align: center;
|
|
88
|
-
padding: 3.5rem 2rem
|
|
89
|
-
max-width:
|
|
88
|
+
padding: 3.5rem 2rem 2rem;
|
|
89
|
+
max-width: 820px;
|
|
90
90
|
margin: 0 auto;
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -109,8 +109,13 @@
|
|
|
109
109
|
.hero p {
|
|
110
110
|
font-size: 1.15rem;
|
|
111
111
|
color: var(--text-dim);
|
|
112
|
-
max-width:
|
|
113
|
-
margin: 0 auto
|
|
112
|
+
max-width: 620px;
|
|
113
|
+
margin: 0 auto 0.75rem;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.hero p strong {
|
|
117
|
+
color: var(--text);
|
|
118
|
+
font-weight: 600;
|
|
114
119
|
}
|
|
115
120
|
|
|
116
121
|
/* ── Install box ── */
|
|
@@ -120,7 +125,7 @@
|
|
|
120
125
|
border-radius: 12px;
|
|
121
126
|
padding: 2rem 2.5rem;
|
|
122
127
|
max-width: 600px;
|
|
123
|
-
margin:
|
|
128
|
+
margin: 2.5rem auto 4rem;
|
|
124
129
|
text-align: left;
|
|
125
130
|
}
|
|
126
131
|
|
|
@@ -191,6 +196,123 @@
|
|
|
191
196
|
text-align: center;
|
|
192
197
|
}
|
|
193
198
|
|
|
199
|
+
/* ── Device Showcase ── */
|
|
200
|
+
.showcase {
|
|
201
|
+
max-width: 900px;
|
|
202
|
+
margin: 0 auto 4rem;
|
|
203
|
+
padding: 0 2rem;
|
|
204
|
+
position: relative;
|
|
205
|
+
display: flex;
|
|
206
|
+
justify-content: center;
|
|
207
|
+
align-items: flex-end;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.device {
|
|
211
|
+
position: relative;
|
|
212
|
+
border-radius: 18px;
|
|
213
|
+
overflow: hidden;
|
|
214
|
+
box-shadow:
|
|
215
|
+
0 0 0 1px rgba(255,255,255,0.06),
|
|
216
|
+
0 25px 80px rgba(0,0,0,0.55),
|
|
217
|
+
0 8px 32px rgba(0,0,0,0.3);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.device img {
|
|
221
|
+
display: block;
|
|
222
|
+
width: 100%;
|
|
223
|
+
height: auto;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.device-ipad {
|
|
227
|
+
width: 72%;
|
|
228
|
+
border-radius: 18px;
|
|
229
|
+
z-index: 1;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.device-iphone {
|
|
233
|
+
width: 22%;
|
|
234
|
+
border-radius: 24px;
|
|
235
|
+
z-index: 2;
|
|
236
|
+
margin-left: -8%;
|
|
237
|
+
margin-bottom: -2%;
|
|
238
|
+
box-shadow:
|
|
239
|
+
0 0 0 1px rgba(255,255,255,0.08),
|
|
240
|
+
0 30px 90px rgba(0,0,0,0.6),
|
|
241
|
+
0 10px 40px rgba(0,0,0,0.35);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.showcase::before {
|
|
245
|
+
content: '';
|
|
246
|
+
position: absolute;
|
|
247
|
+
top: 50%;
|
|
248
|
+
left: 50%;
|
|
249
|
+
transform: translate(-50%, -50%);
|
|
250
|
+
width: 80%;
|
|
251
|
+
height: 70%;
|
|
252
|
+
background: radial-gradient(ellipse, rgba(108,99,255,0.12) 0%, transparent 70%);
|
|
253
|
+
pointer-events: none;
|
|
254
|
+
z-index: 0;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/* ── Workflow ── */
|
|
258
|
+
.workflow {
|
|
259
|
+
max-width: 800px;
|
|
260
|
+
margin: 0 auto 5rem;
|
|
261
|
+
padding: 0 2rem;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.workflow h2 {
|
|
265
|
+
font-size: 1.8rem;
|
|
266
|
+
font-weight: 700;
|
|
267
|
+
text-align: center;
|
|
268
|
+
margin-bottom: 2.5rem;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.workflow-steps {
|
|
272
|
+
display: flex;
|
|
273
|
+
flex-direction: column;
|
|
274
|
+
gap: 1.25rem;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.workflow-step {
|
|
278
|
+
display: flex;
|
|
279
|
+
align-items: flex-start;
|
|
280
|
+
gap: 1.25rem;
|
|
281
|
+
background: var(--surface);
|
|
282
|
+
border: 1px solid var(--border);
|
|
283
|
+
border-radius: 12px;
|
|
284
|
+
padding: 1.25rem 1.5rem;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.workflow-step .step-icon {
|
|
288
|
+
font-size: 1.5rem;
|
|
289
|
+
flex-shrink: 0;
|
|
290
|
+
width: 2rem;
|
|
291
|
+
text-align: center;
|
|
292
|
+
padding-top: 0.1rem;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.workflow-step h3 {
|
|
296
|
+
font-size: 1rem;
|
|
297
|
+
font-weight: 600;
|
|
298
|
+
margin-bottom: 0.3rem;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.workflow-step p {
|
|
302
|
+
font-size: 0.9rem;
|
|
303
|
+
color: var(--text-dim);
|
|
304
|
+
line-height: 1.5;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.workflow-step code {
|
|
308
|
+
font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
|
|
309
|
+
font-size: 0.85rem;
|
|
310
|
+
color: var(--green);
|
|
311
|
+
background: #1a1a2e;
|
|
312
|
+
padding: 0.15rem 0.4rem;
|
|
313
|
+
border-radius: 4px;
|
|
314
|
+
}
|
|
315
|
+
|
|
194
316
|
/* ── Features ── */
|
|
195
317
|
.features {
|
|
196
318
|
display: grid;
|
|
@@ -225,25 +347,6 @@
|
|
|
225
347
|
line-height: 1.5;
|
|
226
348
|
}
|
|
227
349
|
|
|
228
|
-
/* ── How it works ── */
|
|
229
|
-
.how {
|
|
230
|
-
text-align: center;
|
|
231
|
-
max-width: 800px;
|
|
232
|
-
margin: 0 auto 5rem;
|
|
233
|
-
padding: 0 2rem;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
.how h2 {
|
|
237
|
-
font-size: 1.8rem;
|
|
238
|
-
font-weight: 700;
|
|
239
|
-
margin-bottom: 2rem;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
.how p {
|
|
243
|
-
color: var(--text-dim);
|
|
244
|
-
font-size: 0.95rem;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
350
|
/* ── Footer ── */
|
|
248
351
|
footer {
|
|
249
352
|
text-align: center;
|
|
@@ -268,71 +371,14 @@
|
|
|
268
371
|
border: 0;
|
|
269
372
|
}
|
|
270
373
|
|
|
271
|
-
/* ── Device Showcase ── */
|
|
272
|
-
.showcase {
|
|
273
|
-
max-width: 900px;
|
|
274
|
-
margin: 0 auto 3.5rem;
|
|
275
|
-
padding: 0 2rem;
|
|
276
|
-
position: relative;
|
|
277
|
-
display: flex;
|
|
278
|
-
justify-content: center;
|
|
279
|
-
align-items: flex-end;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
.device {
|
|
283
|
-
position: relative;
|
|
284
|
-
border-radius: 18px;
|
|
285
|
-
overflow: hidden;
|
|
286
|
-
box-shadow:
|
|
287
|
-
0 0 0 1px rgba(255,255,255,0.06),
|
|
288
|
-
0 25px 80px rgba(0,0,0,0.55),
|
|
289
|
-
0 8px 32px rgba(0,0,0,0.3);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
.device img {
|
|
293
|
-
display: block;
|
|
294
|
-
width: 100%;
|
|
295
|
-
height: auto;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
.device-ipad {
|
|
299
|
-
width: 72%;
|
|
300
|
-
border-radius: 18px;
|
|
301
|
-
z-index: 1;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
.device-iphone {
|
|
305
|
-
width: 22%;
|
|
306
|
-
border-radius: 24px;
|
|
307
|
-
z-index: 2;
|
|
308
|
-
margin-left: -8%;
|
|
309
|
-
margin-bottom: -2%;
|
|
310
|
-
box-shadow:
|
|
311
|
-
0 0 0 1px rgba(255,255,255,0.08),
|
|
312
|
-
0 30px 90px rgba(0,0,0,0.6),
|
|
313
|
-
0 10px 40px rgba(0,0,0,0.35);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/* Subtle glow behind devices */
|
|
317
|
-
.showcase::before {
|
|
318
|
-
content: '';
|
|
319
|
-
position: absolute;
|
|
320
|
-
top: 50%;
|
|
321
|
-
left: 50%;
|
|
322
|
-
transform: translate(-50%, -50%);
|
|
323
|
-
width: 80%;
|
|
324
|
-
height: 70%;
|
|
325
|
-
background: radial-gradient(ellipse, rgba(108,99,255,0.12) 0%, transparent 70%);
|
|
326
|
-
pointer-events: none;
|
|
327
|
-
z-index: 0;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
374
|
@media (max-width: 640px) {
|
|
331
|
-
.hero { padding: 2rem 1.5rem
|
|
332
|
-
.install { padding: 1.5rem; margin:
|
|
375
|
+
.hero { padding: 2rem 1.5rem 1.5rem; }
|
|
376
|
+
.install { padding: 1.5rem; margin: 2rem 1rem 3rem; }
|
|
333
377
|
.showcase { margin-bottom: 3rem; }
|
|
334
378
|
.device-ipad { width: 78%; }
|
|
335
379
|
.device-iphone { width: 26%; margin-left: -10%; border-radius: 16px; }
|
|
380
|
+
.workflow-step { flex-direction: column; gap: 0.75rem; }
|
|
381
|
+
.workflow-step .step-icon { width: auto; }
|
|
336
382
|
}
|
|
337
383
|
</style>
|
|
338
384
|
</head>
|
|
@@ -349,8 +395,8 @@
|
|
|
349
395
|
|
|
350
396
|
<main>
|
|
351
397
|
<section class="hero">
|
|
352
|
-
<h1>
|
|
353
|
-
<p>
|
|
398
|
+
<h1>Remote Control for<br><em>Claude Code</em></h1>
|
|
399
|
+
<p>Start a task in your terminal, close the laptop and go for a walk — then <strong>pick it up from your phone, a tablet, or any browser</strong>. The session stays alive on your machine. Sleep, disconnect, switch networks — it auto-reconnects and keeps going.</p>
|
|
354
400
|
</section>
|
|
355
401
|
|
|
356
402
|
<section class="showcase">
|
|
@@ -363,7 +409,7 @@
|
|
|
363
409
|
</section>
|
|
364
410
|
|
|
365
411
|
<section class="install">
|
|
366
|
-
<div class="install-label">Get started</div>
|
|
412
|
+
<div class="install-label">Get started in 30 seconds</div>
|
|
367
413
|
<div class="install-step">
|
|
368
414
|
<div class="step-num">1</div>
|
|
369
415
|
<div class="install-cmd" onclick="copyCmd(this)">
|
|
@@ -381,32 +427,66 @@
|
|
|
381
427
|
<div class="install-note">Open the URL it prints. That's it.</div>
|
|
382
428
|
</section>
|
|
383
429
|
|
|
430
|
+
<section class="workflow">
|
|
431
|
+
<h2>How it works</h2>
|
|
432
|
+
<div class="workflow-steps">
|
|
433
|
+
<div class="workflow-step">
|
|
434
|
+
<div class="step-icon">💻</div>
|
|
435
|
+
<div>
|
|
436
|
+
<h3>Start the agent on your dev machine</h3>
|
|
437
|
+
<p>Run <code>agentlink-client start -D</code> in your project directory. It prints a URL like <code>https://msclaude.ai/s/abc123</code>.</p>
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
<div class="workflow-step">
|
|
441
|
+
<div class="step-icon">🔒</div>
|
|
442
|
+
<div>
|
|
443
|
+
<h3>The relay encrypts everything</h3>
|
|
444
|
+
<p>Your messages and code travel through the relay server, but it can't read any of it. All traffic is end-to-end encrypted with XSalsa20-Poly1305. The server is a stateless, blind forwarder.</p>
|
|
445
|
+
</div>
|
|
446
|
+
</div>
|
|
447
|
+
<div class="workflow-step">
|
|
448
|
+
<div class="step-icon">📱</div>
|
|
449
|
+
<div>
|
|
450
|
+
<h3>Open the URL on any device</h3>
|
|
451
|
+
<p>Your phone, a tablet, a colleague's laptop — any browser works. Kick off a refactoring task from your desk, then monitor progress from the couch.</p>
|
|
452
|
+
</div>
|
|
453
|
+
</div>
|
|
454
|
+
<div class="workflow-step">
|
|
455
|
+
<div class="step-icon">🔄</div>
|
|
456
|
+
<div>
|
|
457
|
+
<h3>Pick up where you left off</h3>
|
|
458
|
+
<p>Full session history from Claude Code's own logs. Resume any past conversation, switch projects, change working directories — all from the browser.</p>
|
|
459
|
+
</div>
|
|
460
|
+
</div>
|
|
461
|
+
</div>
|
|
462
|
+
</section>
|
|
463
|
+
|
|
384
464
|
<section class="features">
|
|
385
465
|
<h2 class="sr-only">Features</h2>
|
|
386
466
|
<div class="feature">
|
|
387
467
|
<div class="feature-icon">⚡</div>
|
|
388
468
|
<h3>Zero config</h3>
|
|
389
|
-
<p>Install, start, open the URL. No accounts, no
|
|
469
|
+
<p>Install, start, open the URL. No accounts, no registration, no configuration files.</p>
|
|
390
470
|
</div>
|
|
391
471
|
<div class="feature">
|
|
392
472
|
<div class="feature-icon">🔒</div>
|
|
393
|
-
<h3>
|
|
394
|
-
<p>
|
|
395
|
-
</div>
|
|
396
|
-
<div class="feature">
|
|
397
|
-
<div class="feature-icon">🌐</div>
|
|
398
|
-
<h3>Access anywhere</h3>
|
|
399
|
-
<p>Use Claude Code from your phone, tablet, or any device with a browser. Share the URL with teammates.</p>
|
|
473
|
+
<h3>Optional password protection</h3>
|
|
474
|
+
<p>Add <code style="color:var(--green)">--password</code> to lock your session. Brute-force protection built in.</p>
|
|
400
475
|
</div>
|
|
401
476
|
<div class="feature">
|
|
402
477
|
<div class="feature-icon">📄</div>
|
|
403
478
|
<h3>Full Claude Code</h3>
|
|
404
|
-
<p>File editing, bash commands, search, multi-turn conversations
|
|
479
|
+
<p>File editing, bash commands, search, multi-turn conversations — everything Claude Code can do, in your browser.</p>
|
|
405
480
|
</div>
|
|
406
481
|
<div class="feature">
|
|
407
|
-
<div class="feature-icon">&#
|
|
408
|
-
<h3>
|
|
409
|
-
<p>
|
|
482
|
+
<div class="feature-icon">🌐</div>
|
|
483
|
+
<h3>Works on any device</h3>
|
|
484
|
+
<p>Responsive UI for phones, tablets, and desktops. Use Claude Code from anywhere with a browser.</p>
|
|
485
|
+
</div>
|
|
486
|
+
<div class="feature">
|
|
487
|
+
<div class="feature-icon">🚀</div>
|
|
488
|
+
<h3>Auto-updates</h3>
|
|
489
|
+
<p>The agent checks for updates and self-upgrades in daemon mode. Always on the latest version.</p>
|
|
410
490
|
</div>
|
|
411
491
|
<div class="feature">
|
|
412
492
|
<div class="feature-icon">🚧</div>
|
|
@@ -414,11 +494,6 @@
|
|
|
414
494
|
<p>Run your own relay server with <code style="color:var(--green)">@agent-link/server</code>. Full control over your infrastructure.</p>
|
|
415
495
|
</div>
|
|
416
496
|
</section>
|
|
417
|
-
|
|
418
|
-
<section class="how">
|
|
419
|
-
<h2>How it works</h2>
|
|
420
|
-
<p>The agent on your machine spawns Claude Code, streams output through the relay server to your browser, and sends your messages back. All tool execution happens locally. <strong>All traffic is end-to-end encrypted — the server is a stateless relay that never decrypts, stores, or logs your data.</strong></p>
|
|
421
|
-
</section>
|
|
422
497
|
</main>
|
|
423
498
|
|
|
424
499
|
<footer>
|