Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added site/.nojekyll
Empty file.
52 changes: 52 additions & 0 deletions site/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>clank</title>
<meta name="description" content="Minimal unix-style inference harness: prompt in, answer on stdout.">
<link rel="stylesheet" href="./styles.css">
</head>
<body>
<main>
<header class="top">
<h1>clank</h1>
<p class="warn">v0.1.0</p>
</header>

<p class="lede">Minimal unix-style inference harness. Prompt and context in on argv/stdin, answer on stdout, diagnostics on stderr, verdict in the exit code. Sibling binary <code>clank-jev</code> routes and gates. Not chat.</p>

<h2>Install</h2>
<p class="note">Package <code>clank-cli-app</code> → binaries <code>clank</code> / <code>clank-jev</code> (package ≠ binary). Never <code>cargo install clank</code> (unrelated crates.io crate).</p>
<pre><code>cargo install clank-cli-app --locked # -> ~/.cargo/bin/clank and clank-jev</code></pre>
<p class="note">Fallback (pinable):</p>
<pre><code>cargo install --locked --git https://github.com/makefunstuff/clank --tag v0.1.0</code></pre>
<p class="note">Prebuilt archives (linux x86_64, macOS arm64/x86_64) are on the <a href="https://github.com/makefunstuff/clank/releases/tag/v0.1.0">v0.1.0 release</a>.</p>

<h2>30s smoke</h2>
<p class="note">After install, point at your OpenAI-compatible server and prove the pipe:</p>
<pre><code>export CLANK_BASE_URL=http://127.0.0.1:8080/v1
export CLANK_MODEL=$(curl -s "$CLANK_BASE_URL/models" | jq -r '.data[0].id')
clank -m 'reply with exactly: pong' # -> pong, exit 0</code></pre>

<h2>Harness cost</h2>
<p class="note">2026-09-22 · <code>opencode-go/glm-5.3-flash</code> · tools off · prompt → <code>pong</code>. Pipe vs agent CLI on the same model, not “fastest AI.” Agent harness tax still shows with <code>--no-tools</code>.</p>
<ul>
<li><code>clank</code> · 0.75s · ~5MB</li>
<li><code>pi</code> · 2.2s · ~177MB</li>
<li><code>omp</code> · 3.4s · ~371MB</li>
<li><code>opencode</code> · 5.7s · ~562MB</li>
</ul>
<p class="note">Method and caveats: <a href="https://github.com/makefunstuff/clank/blob/main/docs/history/clank-vs-agents-2026-09-22.md">docs/history/clank-vs-agents-2026-09-22.md</a>.</p>

<h2>Docs</h2>
<ul class="links">
<li><a href="https://github.com/makefunstuff/clank">GitHub</a></li>
<li><a href="https://github.com/makefunstuff/clank/blob/main/CHEATSHEET.md">Cheatsheet</a></li>
<li><a href="https://github.com/makefunstuff/clank/blob/main/PROTOCOL.md">Protocol</a></li>
<li><a href="https://github.com/makefunstuff/clank/blob/main/README.md">README</a></li>
<li><a href="https://github.com/makefunstuff/clank/releases/tag/v0.1.0">Release v0.1.0</a></li>
</ul>
</main>
</body>
</html>
124 changes: 124 additions & 0 deletions site/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
:root {
color-scheme: light dark;
--fg: #111;
--muted: #5a5a5a;
--warn: #8a5a00;
--bg: #fafafa;
--pre: #efefef;
--line: rgba(0, 0, 0, 0.14);
--link: #0645ad;
}
@media (prefers-color-scheme: dark) {
:root {
--fg: #ececec;
--muted: #9a9a9a;
--warn: #e0b060;
--bg: #111;
--pre: #1b1b1b;
--line: rgba(255, 255, 255, 0.14);
--link: #8ab4f8;
}
}

* { box-sizing: border-box; }

body {
margin: 0;
font: 16px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif;
color: var(--fg);
background: var(--bg);
-webkit-font-smoothing: antialiased;
}

main {
max-width: 40rem;
margin: 0 auto;
padding: 2rem 1.15rem 3.5rem;
}

.top {
display: flex;
align-items: baseline;
gap: 0.75rem;
margin-bottom: 0.85rem;
}

h1 {
font-size: 1.65rem;
font-weight: 700;
letter-spacing: -0.025em;
line-height: 1.15;
margin: 0;
}

h2 {
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--muted);
margin: 1.85rem 0 0.55rem;
padding-bottom: 0.3rem;
border-bottom: 1px solid var(--line);
}

.lede {
margin: 0 0 0.25rem;
font-size: 1.05rem;
line-height: 1.45;
max-width: 36rem;
}

.warn {
margin: 0;
color: var(--warn);
font-size: 0.8rem;
font-weight: 650;
letter-spacing: 0.04em;
text-transform: uppercase;
}

.note {
color: var(--muted);
font-size: 0.92rem;
}

p, li { margin: 0 0 0.55rem; }
ul, ol { margin: 0 0 0.65rem; padding-left: 1.2rem; }
li { margin-bottom: 0.28rem; }
li pre { margin-top: 0.4rem; }

a { color: var(--link); }

.links {
list-style: none;
padding-left: 0;
display: flex;
flex-wrap: wrap;
gap: 0.35rem 1.1rem;
}
.links li { margin: 0; }

code, pre {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.84em;
}
:not(pre) > code {
padding: 0.08em 0.28em;
background: var(--pre);
border-radius: 3px;
}
pre {
margin: 0.4rem 0 0.75rem;
padding: 0.8rem 0.9rem;
background: var(--pre);
border-radius: 6px;
overflow-x: auto;
line-height: 1.4;
-webkit-overflow-scrolling: touch;
}
pre code {
font-size: 1em;
background: none;
padding: 0;
}
Loading