Extract shared canvas animation module, refactor docs page to a terminal man-page style, and align overall visual language. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 6def8112-39d2-4641-b93b-f39108179f33 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 87e11a5a-0718-4680-a1d4-0d2c471eca80 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/42ae33dd-8759-4196-85a5-434465c72ece/6def8112-39d2-4641-b93b-f39108179f33/Mumw6Ni Replit-Helium-Checkpoint-Created: true
114 lines
5.0 KiB
HTML
114 lines
5.0 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>man ssh — keshavanand.net</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
|
</head>
|
|
<body class="docs">
|
|
<canvas id="field" aria-hidden="true"></canvas>
|
|
|
|
<main class="page">
|
|
<a href="/" class="back">$ cd ..</a>
|
|
|
|
<header class="head">
|
|
<h1>man <span class="accent">ssh</span></h1>
|
|
<p class="sub">portfolio(1)<span class="dot">·</span>keshavanand.net<span class="dot">·</span>v1</p>
|
|
</header>
|
|
|
|
<div class="rule" aria-hidden="true"></div>
|
|
|
|
<div class="command-box" id="commandBox">
|
|
<span class="line"><span class="dollar">$ </span><span class="typed">ssh portfolio@keshavanand.net</span></span>
|
|
<button class="action-btn" id="copyBtn" aria-label="Copy command">
|
|
<svg id="copyIcon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path id="copyPath" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> name</h2>
|
|
<p>
|
|
A keystroke-driven portfolio. The command above opens a real SSH session into a restricted, passwordless
|
|
account on a homeserver and drops you into a custom C++/FTXUI interface. <span class="fg">No web app, no JS, no installer — just the shell you already have.</span>
|
|
</p>
|
|
</section>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> synopsis</h2>
|
|
<pre class="code"><span class="dim">$</span> ssh <span class="accent">portfolio</span>@<span class="accent">keshavanand.net</span></pre>
|
|
</section>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> arguments</h2>
|
|
<dl class="defs">
|
|
<div class="def">
|
|
<dt><span class="accent">ssh</span></dt>
|
|
<dd>secure shell — the standard remote-login protocol. ubiquitous on macOS, linux, and modern windows.</dd>
|
|
</div>
|
|
<div class="def">
|
|
<dt><span class="accent">portfolio</span></dt>
|
|
<dd>a passwordless, restricted user account. the only thing it can do is launch the portfolio binary.</dd>
|
|
</div>
|
|
<div class="def">
|
|
<dt><span class="accent">keshavanand.net</span></dt>
|
|
<dd>resolves to my homeserver's public IP. the gateway forwards port 22 to the box.</dd>
|
|
</div>
|
|
</dl>
|
|
</section>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> usage</h2>
|
|
<ol class="steps">
|
|
<li><span class="step">01</span> copy the command above (click the box, or the icon).</li>
|
|
<li><span class="step">02</span> open your terminal — Terminal, iTerm, Alacritty, Windows Terminal, anything.</li>
|
|
<li><span class="step">03</span> paste, hit return. accept the host fingerprint with <kbd>yes</kbd> on first connect.</li>
|
|
<li><span class="step">04</span> navigate with arrow keys + return. quit any time with <kbd>Ctrl</kbd>+<kbd>C</kbd>.</li>
|
|
</ol>
|
|
</section>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> implementation</h2>
|
|
<p>
|
|
The <span class="fg">portfolio</span> user's login shell isn't bash — it's a custom C++ binary that uses
|
|
<a href="https://github.com/ArthurSonzogni/FTXUI" target="_blank" rel="noopener noreferrer">FTXUI</a>
|
|
for layout, focus management, and rendering. Input is captured raw, output is repainted on a frame loop.
|
|
<span class="fg">It is sandboxed, read-only, and harmless to your machine.</span>
|
|
</p>
|
|
</section>
|
|
|
|
<section class="block">
|
|
<h2><span class="hash">#</span> see also</h2>
|
|
<ul class="links">
|
|
<li>
|
|
<a href="https://git.keshavanand.net/KeshavAnandCode/terminal-portfolio" target="_blank" rel="noopener noreferrer">
|
|
<span class="arrow">→</span> source — git.keshavanand.net
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a href="/webshell">
|
|
<span class="arrow">→</span> run in browser — /webshell
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<footer class="foot">
|
|
<span>keshavanand.net</span>
|
|
<span class="dot">·</span>
|
|
<span>portfolio(1)</span>
|
|
<span class="dot">·</span>
|
|
<span>last updated 2026</span>
|
|
</footer>
|
|
</main>
|
|
|
|
<div class="byline">// vibe coded to present human code</div>
|
|
|
|
<script type="module" src="/src/docs.ts"></script>
|
|
</body>
|
|
</html>
|