<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>peer-kit.git — a headless peer for the ardegazu.ro suite</title>
<style>
:root {
color-scheme: dark;
--paper: #171520; --ink: #eae6f2; --ink-soft: #a49fb5;
--line: #2b2838; --card: #1e1c2a; --code-bg: #272334; --sage-d: #93c1a5;
}
@media (prefers-color-scheme: light) {
:root {
color-scheme: light;
--paper: #faf6ee; --ink: #35322c; --ink-soft: #6f6a5e;
--line: #e5ddcd; --card: #fffdf8; --code-bg: #f1ead9; --sage-d: #6fa284;
}
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
background: var(--paper); color: var(--ink);
font: 16.5px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, sans-serif;
padding: 64px 22px 90px;
}
main { max-width: 660px; margin: 0 auto; }
h1 { font-size: 40px; font-weight: 600; letter-spacing: -.4px; }
.tag { margin: 14px 0 34px; font-size: 18px; color: var(--ink-soft); }
h2 { font-size: 20px; font-weight: 600; margin: 36px 0 10px; }
p { margin: 10px 0; }
a { color: var(--sage-d); }
pre {
background: var(--card); border: 1px solid var(--line); border-radius: 10px;
padding: 13px 16px; overflow-x: auto; margin: 14px 0;
font: 14px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
}
code { font: 15px ui-monospace, SFMono-Regular, Menlo, monospace;
background: var(--code-bg); border-radius: 5px; padding: 1px 6px; }
pre code { background: none; padding: 0; }
ul { padding-left: 22px; } li { margin: 6px 0; }
footer { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--line);
font-size: 14px; color: var(--ink-soft); }
footer a { color: inherit; }
</style>
</head>
<body>
<main>
<h1>peer-kit.git</h1>
<p class="tag">a headless Node peer for the
<a href="https://ardegazu.ro">ardegazu.ro</a> suite — join the game rooms,
carry the suite identity, befriend people, answer invites. No browser.</p>
<h2>Clone</h2>
<pre><code>git clone https://git.ardegazu.ro/peer-kit.git</code></pre>
<p>or <a href="browse/index.html">browse the code</a> right here, in the
browser.</p>
<h2>Use as a dependency</h2>
<pre><code>"ardegazu-peer-kit": "git+https://git.ardegazu.ro/peer-kit.git#v1.0.0"</code></pre>
<h2>What's inside</h2>
<ul>
<li>the games' shared transport, ported for Node — sealed-hello rooms,
identity in the handshake, reconnection</li>
<li>typed clients for all six games, with the apps' host-election rules
and co-signed leaderboard receipts</li>
<li>the social layer: a friend link for your bot, presence beacons, and
live invites that can summon it into a room</li>
<li>Node shims for the managed relay's browser-origin gate and the
small persisted stores</li>
</ul>
<h2>Ten lines</h2>
<pre><code>import { loadIdentity, SeanceClient } from "ardegazu-peer-kit";
const suite = await loadIdentity({ seedFile: "./seed", name: "my-bot" });
const game = await SeanceClient.join({
app: "seance",
roomSecret: "<invite-link fragment>",
nick: "my-bot",
suite,
});</code></pre>
<footer>
part of the <a href="https://git.ardegazu.ro/">ardegazu.ro source ecosystem</a>
· MIT · built quietly
</footer>
</main>
</body>
</html>