Skip to content

Commit e55e52e

Browse files
itayinbarrclaude
andcommitted
site: add GitHub Pages one-pager + fix banner numbers
- assets/banner.svg: aider polyglot 78.7% (35B-A3B), TB2.0 rank #120, drop the model line, accurate annotations, re-flowed prompt lines. - site/: static one-pager (HTML/CSS/vanilla JS) deployed to GitHub Pages. Content driven by the paper + the repo's real behavior: npm install, llama.cpp serving, the actual little-coder tool-use flow, Apache-2.0. Community section features real answered issues; stars/issues/version fetch live from the GitHub API with baked-in fallbacks. - .github/workflows/pages.yml: Actions deploy of site/ to Pages. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent eec0b9c commit e55e52e

5 files changed

Lines changed: 1733 additions & 4 deletions

File tree

.github/workflows/pages.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Deploy site to GitHub Pages
2+
3+
# Publishes the static one-pager in site/ to GitHub Pages.
4+
# Triggers on pushes that touch the site (or this workflow), plus manual runs.
5+
on:
6+
push:
7+
branches: [main]
8+
paths:
9+
- 'site/**'
10+
- '.github/workflows/pages.yml'
11+
workflow_dispatch:
12+
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow one concurrent deployment; newer pushes supersede in-flight ones.
19+
concurrency:
20+
group: pages
21+
cancel-in-progress: true
22+
23+
jobs:
24+
deploy:
25+
runs-on: ubuntu-latest
26+
environment:
27+
name: github-pages
28+
url: ${{ steps.deployment.outputs.page_url }}
29+
steps:
30+
- uses: actions/checkout@v4
31+
- name: Configure Pages
32+
uses: actions/configure-pages@v5
33+
with:
34+
enablement: true
35+
- name: Upload site/ artifact
36+
uses: actions/upload-pages-artifact@v3
37+
with:
38+
path: site
39+
- name: Deploy to GitHub Pages
40+
id: deployment
41+
uses: actions/deploy-pages@v4

assets/banner.svg

Lines changed: 3 additions & 4 deletions
Loading

site/index.html

Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width,initial-scale=1" />
6+
<title>little-coder · a coding agent tuned for small local models</title>
7+
<meta name="description" content="little-coder is an offline, pi-based coding agent tuned for small local models. A 9.7B model scored 45.56% on Aider Polyglot — past gpt-4.5-preview — with the wifi off." />
8+
<link rel="preconnect" href="https://fonts.googleapis.com" />
9+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600;700&display=swap" />
11+
12+
<link rel="stylesheet" href="site.css" />
13+
</head>
14+
<body>
15+
16+
<!-- ============================== nav ============================== -->
17+
<header class="nav" data-screen-label="nav">
18+
<a class="brand" href="#top" aria-label="little-coder home">
19+
<span class="mono mark">lc<span class="cursor"></span></span>
20+
<span class="brand-name">little-coder</span>
21+
</a>
22+
<nav class="nav-links">
23+
<a href="#why">why</a>
24+
<a href="#install">install</a>
25+
<a href="#session">how it works</a>
26+
<a href="#community">community</a>
27+
</nav>
28+
<a class="nav-cta" href="https://github.com/itayinbarr/little-coder" target="_blank" rel="noopener">
29+
<span>github.com/itayinbarr/little-coder</span>
30+
<span class="arrow"></span>
31+
</a>
32+
</header>
33+
34+
<!-- ============================== hero ============================== -->
35+
<section id="top" class="hero" data-screen-label="hero">
36+
<div class="hero-grid">
37+
<span class="hero-tag reveal"><span class="dot"></span> v<span data-version>1.5.1</span></span>
38+
<h1 class="hero-mark mono"><span class="ch" style="--d:0">l</span><span class="ch" style="--d:1">c</span><span class="cursor big"></span></h1>
39+
<p class="hero-lead reveal" style="--d:0.4s">
40+
a coding agent built for small models
41+
</p>
42+
<div class="hero-cta reveal" style="--d:0.6s">
43+
<a class="btn primary" href="#install"><span class="prompt mono">&gt;</span> quick start</a>
44+
<a class="btn ghost" href="https://github.com/itayinbarr/little-coder" target="_blank" rel="noopener">github repo</a>
45+
</div>
46+
</div>
47+
</section>
48+
49+
<!-- ============================== why / benchmark ============================== -->
50+
<section id="why" class="bench" data-screen-label="benchmark">
51+
<div class="section-head">
52+
<div class="eyebrow">// a 9.7B model walked into the aider polyglot benchmark.</div>
53+
<h2 class="section-title">and walked out with a higher<br/>score than gpt-4.5-preview.</h2>
54+
<p class="section-lead">this is the laptop next to you, with the wifi off.</p>
55+
</div>
56+
57+
<div class="bench-stage" data-anim="bench">
58+
<!-- challenger -->
59+
<div class="bench-row challenger">
60+
<div class="bench-meta">
61+
<div class="role">// challenger</div>
62+
<div class="who">qwen3.5 + little-coder</div>
63+
<div class="specs">9.7B params · 6.6 GB · runs offline · no API</div>
64+
</div>
65+
<div class="bench-bar-wrap">
66+
<div class="bench-bar honey" style="--target: 45.56">
67+
<span class="bench-fill"></span>
68+
<span class="bench-tick">0</span>
69+
<span class="bench-tick" style="left:25%">12.5</span>
70+
<span class="bench-tick" style="left:50%">25</span>
71+
<span class="bench-tick" style="left:75%">37.5</span>
72+
<span class="bench-tick right">50</span>
73+
</div>
74+
<div class="bench-num"><span class="count" data-to="45.56">0.00</span><small>%</small></div>
75+
</div>
76+
</div>
77+
78+
<div class="vs-bar"><span class="mono">vs</span></div>
79+
80+
<!-- champ -->
81+
<div class="bench-row champ">
82+
<div class="bench-meta">
83+
<div class="role">// reigning champ</div>
84+
<div class="who">gpt-4.5-preview</div>
85+
<div class="specs">frontier-scale · cloud-served · undisclosed params · API metered</div>
86+
</div>
87+
<div class="bench-bar-wrap">
88+
<div class="bench-bar ink" style="--target: 44.90">
89+
<span class="bench-fill"></span>
90+
</div>
91+
<div class="bench-num"><span class="count" data-to="44.90">0.00</span><small>%</small></div>
92+
</div>
93+
</div>
94+
95+
<div class="bench-foot">
96+
<span>fig. 1 — aider polyglot · 225 exercises · two-run mean · april 2026</span>
97+
<span class="lead-by">led by <b>+0.66</b> points</span>
98+
</div>
99+
</div>
100+
</section>
101+
102+
<!-- ============================== install ============================== -->
103+
<section id="install" class="install" data-screen-label="install">
104+
<div class="section-head">
105+
<div class="eyebrow">// one command, one local model</div>
106+
<h2 class="section-title">install.</h2>
107+
</div>
108+
109+
<div class="install-grid">
110+
<div class="install-terminal" data-anim="install">
111+
<div class="t-bar">
112+
<span class="t-dot"></span><span class="t-dot"></span><span class="t-dot honey"></span>
113+
<span class="t-name mono">~/projects · zsh</span>
114+
</div>
115+
<div class="t-body mono">
116+
<div class="t-line"><span class="p">$</span> <span class="cmd" data-type="npm install -g little-coder"></span><span class="caret"></span></div>
117+
<div class="t-out" data-step="1">
118+
<div class="dim">resolving dependencies...</div>
119+
<div class="dim">fetching @earendil-works/pi-coding-agent</div>
120+
<div class="bar-line"><span class="bar-track"><span class="bar-fill"></span></span><span class="pct mono">100%</span></div>
121+
<div class="ok"><span class="check"></span> installed little-coder <span data-version>1.5.1</span> · node 22.19+</div>
122+
</div>
123+
<div class="t-line" data-step="2"><span class="p">$</span> <span class="cmd" data-type="llama-server -hf unsloth/Qwen3.6-35B-A3B-GGUF"></span><span class="caret hide"></span></div>
124+
<div class="t-out" data-step="3">
125+
<div class="dim">fetching Qwen3.6-35B-A3B · UD-Q4_K_M · 22.1 GB</div>
126+
<div class="dim">experts → RAM, attention → GPU · 3.8 GB vram</div>
127+
<div class="ok"><span class="check"></span> llama.cpp listening on 127.0.0.1:8888</div>
128+
</div>
129+
<div class="t-line" data-step="4"><span class="p">$</span> <span class="cmd" data-type="little-coder --model llamacpp/qwen3.6-35b-a3b"></span><span class="caret hide"></span></div>
130+
<div class="t-out" data-step="5">
131+
<div class="lc-boot">
132+
<div class="lc-boot-head"><span class="mono mark sm">lc</span> <span class="paper">little-coder</span> <span class="dim">v<span data-version>1.5.1</span> · offline</span></div>
133+
<div class="tf-status"><span class="dim">Context:</span> 0.4K/32K (1%) <span class="dim">·</span> <span class="dim">model:</span> <span class="tf-model">llamacpp/qwen3.6-35b-a3b</span></div>
134+
<div class="dim">/help for commands · ctrl-c to quit</div>
135+
<div class="lc-prompt"><span class="p honey">&gt;</span> <span class="caret blink"></span></div>
136+
</div>
137+
</div>
138+
</div>
139+
</div>
140+
141+
<aside class="install-side">
142+
<div class="step">
143+
<div class="step-k mono">01</div>
144+
<div class="step-v">
145+
<h4>install the agent.</h4>
146+
<p>one command: <code>npm install -g little-coder</code> (or the curl one-liner, or <code>bun add -g</code>). needs node 22.19+.</p>
147+
</div>
148+
</div>
149+
<div class="step">
150+
<div class="step-k mono">02</div>
151+
<div class="step-v">
152+
<h4>bring a local model.</h4>
153+
<p>serve one with llama.cpp — the tuned path, running the 35B-A3B MoE on 8 GB of vram via the <code>--n-cpu-moe</code> trick. ollama, lm studio, and cloud models work too; point the agent at it with <code>--model</code>.</p>
154+
</div>
155+
</div>
156+
<div class="step">
157+
<div class="step-k mono">03</div>
158+
<div class="step-v">
159+
<h4>start coding.</h4>
160+
<p><code>little-coder</code> in your repo drops you into a repl. ask in plain english; it reads, edits, and runs against your working tree.</p>
161+
</div>
162+
</div>
163+
</aside>
164+
</div>
165+
</section>
166+
167+
<!-- ============================== sample session ============================== -->
168+
<section id="session" class="session" data-screen-label="how it works">
169+
<div class="section-head">
170+
<div class="eyebrow">// a sample session</div>
171+
<h2 class="section-title">how it feels.</h2>
172+
<p class="section-lead">you write english. it reads, edits, and runs<br/>against your working tree — all done locally.</p>
173+
</div>
174+
175+
<div class="session-terminal" data-anim="session">
176+
<div class="t-bar">
177+
<span class="t-dot"></span><span class="t-dot"></span><span class="t-dot honey"></span>
178+
<span class="t-name mono">~/fizzbuzz · little-coder</span>
179+
</div>
180+
<div class="t-body mono tf">
181+
<div class="s-line"><span class="p honey">&gt;</span> <span class="user" data-type="implement the fizzbuzz exercise"></span><span class="caret"></span></div>
182+
<div class="s-out" data-step="1">
183+
<div class="dim">running · llamacpp/qwen3.6-35b-a3b · 3.8 GB vram</div>
184+
</div>
185+
<div class="s-out tf-flow" data-step="2">
186+
<div class="tf-line"><span class="tf-arrow"></span> <span class="tf-tool">Glob</span> <span class="tf-arg">**/*</span></div>
187+
<div class="tf-line tf-res"><span class="ck"></span> → 3 lines (50 chars)</div>
188+
<div class="tf-line"><span class="tf-arrow"></span> <span class="tf-tool">Read</span> <span class="tf-arg">.docs/instructions.md</span></div>
189+
<div class="tf-line tf-res"><span class="ck"></span> → 3 lines (183 chars)</div>
190+
<div class="tf-line"><span class="tf-arrow"></span> <span class="tf-tool">Read</span> <span class="tf-arg">fizzbuzz.py</span></div>
191+
<div class="tf-line tf-res"><span class="ck"></span> → 2 lines (37 chars)</div>
192+
<div class="tf-line"><span class="tf-arrow"></span> <span class="tf-tool">Edit</span> <span class="tf-arg">fizzbuzz.py</span></div>
193+
<div class="tf-line tf-res"><span class="ck"></span> → 11 lines (255 chars)</div>
194+
<div class="tf-line"><span class="tf-arrow"></span> <span class="tf-tool">Bash</span> <span class="tf-arg">python -m pytest fizzbuzz_test.py -v</span></div>
195+
<div class="tf-line tf-res"><span class="ck"></span> → 6 lines (313 chars)</div>
196+
</div>
197+
<div class="s-out" data-step="3">
198+
<div class="tf-pass">All tests pass.</div>
199+
<div class="tf-status"><span class="dim">Context:</span> 4.2K/32K (13%) <span class="dim">· ~48 msgs until recommended new session ·</span> <span class="dim">model:</span> <span class="tf-model">llamacpp/qwen3.6-35b-a3b</span></div>
200+
</div>
201+
</div>
202+
</div>
203+
</section>
204+
205+
<!-- ============================== community ============================== -->
206+
<section id="community" class="community" data-screen-label="community">
207+
<div class="comm-grid">
208+
<div class="comm-copy">
209+
<div class="eyebrow">// community</div>
210+
<h2 class="section-title">talk to us<br/>where the code lives.</h2>
211+
<p class="section-lead">no discord, no slack, no forum subscription — just the github issues tab. file a bug, ask how to serve a model on your hardware, and you'll usually get a worked-through answer.</p>
212+
<div class="comm-cta">
213+
<a class="btn primary" href="https://github.com/itayinbarr/little-coder/issues" target="_blank" rel="noopener">
214+
<span class="prompt mono">&gt;</span> browse issues
215+
<span class="arrow"></span>
216+
</a>
217+
<a class="btn ghost" href="https://github.com/itayinbarr/little-coder/issues/new" target="_blank" rel="noopener">open an issue</a>
218+
</div>
219+
<div class="comm-stats">
220+
<div class="cs"><div class="cs-n mono"><span class="count" data-stat="stars" data-to="1294">0</span></div><div class="cs-l">stars on github</div></div>
221+
<div class="cs"><div class="cs-n mono"><span class="count" data-stat="issues" data-to="25">0</span></div><div class="cs-l">issues opened</div></div>
222+
<div class="cs"><div class="cs-n mono"><span class="count" data-stat="resolved" data-to="23">0</span></div><div class="cs-l">issues resolved</div></div>
223+
</div>
224+
</div>
225+
226+
<div class="comm-board">
227+
<div class="comm-tabs">
228+
<span class="ct">discussions</span>
229+
<span class="ct active">issues</span>
230+
<span class="ct">pulls</span>
231+
</div>
232+
<div class="comm-thread">
233+
<div class="th-cat mono honey">[closed]</div>
234+
<div class="th-title">does it work with lm studio?</div>
235+
<div class="th-meta">#6 · opened by AtaaEddin · 4 replies · resolved</div>
236+
</div>
237+
<div class="comm-thread">
238+
<div class="th-cat mono">[closed]</div>
239+
<div class="th-title">exceeding the thinking budget causes the agent to stop running</div>
240+
<div class="th-meta">#8 · opened by diagonalfish · 3 replies · resolved</div>
241+
</div>
242+
<div class="comm-thread">
243+
<div class="th-cat mono">[closed]</div>
244+
<div class="th-title">not starting on windows</div>
245+
<div class="th-meta">#23 · opened by Kaiohshin · 2 replies · resolved</div>
246+
</div>
247+
<div class="comm-thread">
248+
<div class="th-cat mono">[closed]</div>
249+
<div class="th-title">how are subagents spawned?</div>
250+
<div class="th-meta">#19 · opened by rahimnathwani · 2 replies · resolved</div>
251+
</div>
252+
<div class="comm-thread last">
253+
<div class="th-cat mono">[closed]</div>
254+
<div class="th-title">context handling with llama-server</div>
255+
<div class="th-meta">#3 · opened by cmhamiche · 2 replies · resolved</div>
256+
</div>
257+
</div>
258+
</div>
259+
</section>
260+
261+
<!-- ============================== footer ============================== -->
262+
<footer class="foot" data-screen-label="footer">
263+
<div class="foot-top">
264+
<span class="mono mark big"><span class="ch">l</span><span class="ch">c</span><span class="cursor"></span></span>
265+
<div class="foot-msg">
266+
<div class="eyebrow">// small things, done thoughtfully.</div>
267+
<div class="foot-tag">an offline coding agent.<br/>kept small on purpose.</div>
268+
</div>
269+
</div>
270+
<div class="foot-bottom">
271+
<div class="foot-cols">
272+
<div class="fc">
273+
<div class="fc-k mono">// project</div>
274+
<a href="https://github.com/itayinbarr/little-coder" target="_blank" rel="noopener">source</a>
275+
<a href="https://github.com/itayinbarr/little-coder/releases" target="_blank" rel="noopener">releases</a>
276+
<a href="https://github.com/itayinbarr/little-coder/blob/main/LICENSE" target="_blank" rel="noopener">license · apache-2.0</a>
277+
</div>
278+
<div class="fc">
279+
<div class="fc-k mono">// community</div>
280+
<a href="https://github.com/itayinbarr/little-coder/issues" target="_blank" rel="noopener">issues</a>
281+
<a href="https://github.com/itayinbarr/little-coder/discussions" target="_blank" rel="noopener">discussions</a>
282+
<a href="https://github.com/itayinbarr/little-coder/blob/main/CHANGELOG.md" target="_blank" rel="noopener">changelog</a>
283+
</div>
284+
<div class="fc">
285+
<div class="fc-k mono">// reading</div>
286+
<a href="#why">benchmarks</a>
287+
<a href="#install">install</a>
288+
<a href="https://open.substack.com/pub/itayinbarr/p/honey-i-shrunk-the-coding-agent" target="_blank" rel="noopener">the paper</a>
289+
</div>
290+
</div>
291+
<div class="foot-line">
292+
<span>© 2026 itay inbar · apache-2.0</span>
293+
</div>
294+
</div>
295+
</footer>
296+
297+
<script src="site.js"></script>
298+
299+
</body>
300+
</html>

0 commit comments

Comments
 (0)