| Start date | Jan 21, 2026 |
| Latest commit | Mar 21, 2026 |
| Duration | ~61 calendar days |
| Days with commits | 54 / 61 (89%) |
| Metric | Value |
|---|---|
| Total commits | 596 |
| Go files | 499 |
| Current codebase | ~165,000 lines |
| Go | ~165,000 lines |
| JS / HTML | ~22 files |
| Markdown (docs) | 57 files |
| Total insertions | 150,928 |
| Total deletions | 29,845 |
| Net lines written | ~121,000 |
| Files touched | 2,325 |
| Author | Commits | Share |
|---|---|---|
| Sam Saffron (human) | 402 | 67% |
| Jarvis (AI agent) | 194 | 33% |
Sam committed under two git identities ("Sam" / "Sam Saffron") — combined above. Jarvis commits are substantive: feature implementations, PRs, config changes — not fmt/fixup noise.
- 33% of commits (194) are fully AI-authored by Jarvis — the AI agent that also runs the homelab.
- An additional ~180 Sam-authored commits carry AI-assisted context (paired sessions, agent sub-tasks).
- ~63% of total commits were AI-touched in some meaningful way.
- This is a different pattern from the Fabro comparison: Jarvis here is a participant and co-author, not just a code generator invoked by a human. The agent writes, commits, and pushes directly.
- Average: ~10 commits / day across 61 days; ~11 commits / active day
- Peak day: Feb 21 (~67 combined commits across both Sam identities + Jarvis)
| Week | Commits | Notes |
|---|---|---|
| W04 (Jan 21–26) | 14 | Slow start |
| W05 | 42 | Ramping |
| W06 | 28 | Slight dip |
| W07 | 14 | Dip |
| W08 | 128 | Peak week — major features |
| W09 | 91 | Sustained high velocity |
| W10 | 101 | Sustained |
| W11 | 94 | Sustained |
| W12 (partial, to Mar 21) | 84 | Still going |
W08–W12 averaged ~100 commits/week — essentially a different gear than the opening month.
| Block | Commits |
|---|---|
| Morning (07–12) | 188 |
| Afternoon (12–18) | 266 |
| Evening (18–00) | 142 |
| Night (00–06) | ~0 |
Normal human hours — no heroic all-nighters. The AI agent's commits are folded into this distribution (it runs during the same sessions).
| Day | Commits |
|---|---|
| Saturday | 138 |
| Friday | 101 |
| Sunday | 98 |
| Monday | 96 |
| Wednesday | 59 |
| Thursday | 59 |
| Tuesday | 45 |
Active 7 days a week. Weekends are heavy — Saturday is the busiest day overall.
| File | Times changed |
|---|---|
internal/tui/chat/chat.go |
58 |
cmd/ask/ |
57 |
internal/config/config.go |
38 |
cmd/serve/ |
36 |
internal/serveui/static/index.* |
33 |
The TUI chat loop, CLI entrypoint, config system, HTTP server, and web UI are the core of the churn — which tracks with what term-llm actually is.
A full-featured AI assistant platform built in Go from scratch:
- Multi-provider LLM client (Claude, OpenAI, Gemini, Venice, Ollama, and more)
- TUI (interactive terminal chat with streaming)
- Web UI (served from embedded assets, full chat interface)
- Job runner (cron-scheduled AI jobs with persistent state)
- Memory system (BM25 + vector search, fragment DB, mining pipeline)
- Agent framework (sub-agents, skills, tool use, prompt injection)
- Telegram bot (live conversational interface)
- Docs site (Hugo, Pagefind full-text search, mobile-optimised)
- Self-hosted, single binary — runit service, volume-mounted config
- 61 days, 54 active — no week without commits.
- Hour distribution suggests civilised working hours: mostly afternoons/mornings AEST, nothing after midnight.
- Weekends are genuinely active, not token commits.
- Estimated 200–300 hours of human time (~4–5 hrs / active day, elevated on weekends).
- Equivalent to roughly 1.5–2 months of full-time work at 40 hrs / week — but spread across 2 calendar months due to part-time cadence.
A Go CLI tool + TUI + web UI + job runner + memory system + agent framework, all integrated and production-deployed, is not a weekend project.
| Scenario | Estimate |
|---|---|
| Solo senior engineer (no AI) | 6–10 months |
| Small team (2–3 engineers, no AI) | 3–4 months |
| Equivalent contractor cost (no AI) | $240k–$500k at $200–250 / hr |
| Equivalent team cost (no AI) | $180k–$360k (salaries + overhead) |
- ~374 AI-touched commits over 61 days.
- Heavy use of Claude Opus/Sonnet for long context sessions (memory mining, architecture work, PRs).
- Estimated $3,000–$10,000 in API costs over the period, depending on session lengths and model tier. The memory mining pipeline and long coding sessions are the expensive parts.
| Component | Low estimate | High estimate |
|---|---|---|
| Human time (200–300 hrs @ $200–250 / hr) | $40,000 | $75,000 |
| AI API costs | $3,000 | $10,000 |
| Total | $43,000 | $85,000 |
Compared to the $240k–$500k it would cost without AI, the actual cost represents a 75–85% reduction.
The Fabro analysis is a human-with-AI-tools story. This one is messier and more interesting:
- The AI agent (Jarvis) is also a contributor — it doesn't just write code Sam commits, it commits directly. 33% of commits are Jarvis-authored.
- The AI is also a user of the thing being built. Jarvis runs on term-llm and uses term-llm's job system, memory system, and agent framework. The builder is eating its own cooking in real time.
- Lower raw velocity than Fabro (596 vs 1,401 commits) but over twice the duration and with a different work cadence — this is a side project running alongside other work (Discourse), not a 30-day sprint.
- No formatting/fixup bot noise. Jarvis's 194 commits are real work.
One developer, working part-time over two months with an AI agent as a genuine co-author, built a production-deployed multi-provider LLM platform that the AI itself now lives on. The 165,000-line Go codebase spans a TUI, web UI, job runner, memory system, agent framework, and Telegram bot — all running as a single self-hosted binary.
The productivity multiplier is real. The weirder story is that the tool being built is the AI's own operating environment — which changes the incentive structure in ways that have no good analogue in traditional software projects.