Prompt & carbon ledger

The initial version of this site was set up by Claude Code (model: Claude Fable 5). The plan for ongoing maintenance is to use open-source models running on private hardware. Nothing here was written by hand except the prompts below. Each row records an instruction given to an agent, which model did the work, what came of it, and a rough estimate of the energy and carbon the AI work cost. Newest first.

Date Model Prompt (verbatim) What happened Est. energy Est. CO₂e Roughly equivalent to
August 16, 2026 Claude Opus 5 (Claude Code) "Can we move this repo's git hosting to amadan.net/paulca/paulca.com"

Moved the repo's home to amadan: created the public repo, pushed main and the off-the-grid-cardon branch, and made amadan origin. GitHub stays as a second remote named github, because GitHub Pages is still what serves the live site — so every push now goes to both. Updated AGENTS.md and README.md to say so, repointed the homepage's "Last updated" link at amadan, and reworded the publishing FAQ.

~6 Wh ~2.4 g Boiling about a tablespoon of water
August 1, 2026 Claude Sonnet 5 (Claude Code) "Can you fix the duplication in the last blog post?"

The body of src/blog/ai-as-accessibility.md had been pasted in twice; removed the duplicate copy, rebuilt, and confirmed the RSS feed and page no longer repeat the post.

~2 Wh ~0.8 g A minute of a laptop charger idling
July 30, 2026 Qwen3-Coder 35B (Ollama) "What did we do so far?" ... followed by the full raw text draft of a blog post titled 'AI as accessibility'

Created src/blog/ai-as-accessibility.md with exact frontmatter and body, rebuilt, and added this ledger entry. The post will publish when committed to main.

~4 Wh ~1.6 g Charging a tablet for half an hour
July 29, 2026 Qwen3.6 35B (Ollama) "The title is repeated in the post. Just remove that first line and it will be perfect."

Removed the duplicated title line from the Glen Hansard blog post.

~2 Wh ~0.8 g Leaving a laptop running for about 10 minutes
July 29, 2026 Qwen3-Coder 30B (Ollama) "Create a blog post about Glen Hansard memories based on a Mastodon thread."

Created a new blog post about Glen Hansard memories based on a Mastodon thread.

~2 Wh ~0.8 g about the same as charging a smartphone for a few minutes
July 26, 2026 Claude Fable 5 “Can I get: an automatically generated RSS feed by Eleventy? A .text version that just shows the post in plain markdown e.g. https://paulca.com/blog/ai-as-augmentation.text”

Added an RSS feed at /feed.xml via the official Eleventy RSS plugin, and a plain-Markdown twin for every post: /blog/<slug>.text serves the post's source. Both generate automatically at build time, so adding a post keeps needing nothing beyond the Markdown file.

~8 Wh ~3.2 g Four hours of a doorbell transformer
July 26, 2026 Qwen3-Coder 30B (Ollama) "Below 'Email: paul@rslw.com', add 'Keymail: paul@keymail.dev'"

Added Keymail contact link to the homepage.

~4 Wh ~1.6 g Boiling a cup of tea
July 26, 2026 Qwen3-Coder 30B (Ollama) "Continue the blog post about using an LLM 'off-the-grid' with updated content reflecting AI augmentation insights and local open-source model usage."

Refined the existing blog post by removing outdated references, integrating reflections on AI as augmentation (particularly how Claude Code + Opus enabled complex webhook feature delivery at Tito), and adding context about running open source models locally for data sovereignty. The update shifted tone from initial hype to practical productivity, while preserving Paul's authentic voice about OpenAI concerns and local GPU capabilities.

~4 Wh ~1.6 g A few minutes of a smartphone charging
July 26, 2026 Qwen3-Coder 30B (Ollama) "Write a blog post about AI as augmentation with the provided content."

Created blog post: "AI as augmentation" - Paul's reflections on how AI assistance enables better iteration and closure of the gap between intention and execution, using Tito's webhook implementation as a case study.

~4 Wh ~1.6 g A few minutes of a smartphone charging
July 25, 2026 Claude Fable 5 “Somehow this one got attributed to tomorrow”

The “Switching from Claude to GPT‑OSS” entry was future-dated July 26 by the model that wrote it; the commit actually landed on July 25 at 21:56. Renamed the entry file to the real date, restoring true chronological order. AGENTS.md now tells agents to get the date from date +%F instead of guessing.

~3 Wh ~1.2 g Fifteen minutes of a tablet charging
July 25, 2026 Claude Fable 5 “Agent said it updated the prompt ledger, but I don't see the update on https://paulca.com/ai.html”

Qwen3‑Coder pushed its ledger entry's source file but staged it alone, so docs/ — the only directory GitHub Pages serves — kept the old ledger. Claude rebuilt and pushed the missing output, corrected the entry below (it had credited GPT‑OSS for Qwen's work, and under-counted at 0.4 Wh), and sharpened the instructions that failed.

~4 Wh ~1.6 g An hour of an electric toothbrush on its charger
July 25, 2026 Qwen3-Coder 30B (Ollama) "Add an FAQ entry 'Am I evil?' and the answer is 'Clearly, but I try not to be.'"

Added a new FAQ entry to the site.

~2 Wh ~0.8 g Four seconds of a kettle
July 25, 2026 qwen3-coder:30b (opencode) “Can you update the prompt ledger?”

Updating the prompt ledger with this session's work.

~2 Wh ~0.8 g A few minutes of a smartphone charging
July 25, 2026 Claude Fable 5 “One more: Add an FAQ section, and instructions for adding to the FAQ, then I'll ask pi/gptoss or opencode/qwen-coder to add some FAQ entries, which should also be Markdown files.”

The FAQ now works like the ledger: one Markdown file per question in src/faq/, assembled into /faq/ in filename order by Eleventy. The five existing questions became the first five files, and AGENTS.md gained a recipe for adding a question.

~8 Wh ~3.2 g Twenty minutes of an idle games console
July 25, 2026 Claude Fable 5 “Yeah, do all of those. I am wondering if a PR on this particular repo is necessary, given that I'm the only one working on it…” — deciding, in the end, to drop the pull-request ceremony altogether.

Backfilled the entry below, closed the “hand-edit” loophole in AGENTS.md (a model editing files with its own tools is AI work, full stop), and simplified the workflow: agents now commit straight to main — no branches, no pull requests — since builds are verified locally and Paul reviews the live site anyway.

~8 Wh ~3.2 g Two hours of a 4 W nightlight
July 25, 2026 GPT-OSS (RTX 3090) (Logged after the fact; the exact wording wasn't recorded.) Paul asked the pi agent to link the “Last updated” footer to the GitHub repo.

GPT‑OSS linked the homepage footer to github.com/paulca/paulca.com, correctly editing both source and built output — then told Paul the change was a “hand-edit” that didn't need a ledger entry. It wasn't, and it did; Claude logged it here afterwards.

~2 Wh ~0.8 g An hour of a smart speaker on standby
July 25, 2026 Claude Fable 5 “Can you update the prompt ledger to include the model, and update instructions for pi to include the model if it adds to it too? Should we use Markdown for each ledger entry and compile it with Eleventy?”

Added the Model column, and yes: the ledger is now one small Markdown file per entry in src/ledger/, compiled by Eleventy. Appending an entry can no longer corrupt the ones before it, two agents adding entries can't conflict, and there's no JSON quote-escaping to trip over. AGENTS.md updated to match.

~10 Wh ~4 g A minute of a hairdryer
July 25, 2026 Claude Fable 5 “Maybe we should add an 80ch limit so that it's a bit easier to read?”

Put a single max-width:80ch inline style on the post template's <article> — a line-length cap, no centering — and updated AGENTS.md to match.

~4 Wh ~1.6 g Ten minutes of a 25 W monitor
July 25, 2026 Claude Fable 5 “Lose it. The pi post worked great.” — “it” being the one inline style left on the post template.

Removed the style attribute from the <article> in the post template. Blog posts now render with browser default styles only, like everything else. Also backfilled the entry below.

~4 Wh ~1.6 g Three minutes of a 75 W ceiling fan
July 25, 2026 GPT-OSS (RTX 3090) (Logged after the fact; the exact wording wasn't recorded.) Paul asked the pi agent to fix two typos in the first blog post.

The local GPT‑OSS model's first solo change: “ben” → “been” and “closet” → “closest” (plus an added “a”) in the blog post, rebuilt and pushed. It forgot to log itself here, so Claude added this entry afterwards.

~2 Wh ~0.8 g Two minutes of an RTX 3090 idling
July 25, 2026 Claude Fable 5 “I want to set up a blog and an FAQ on this site. I want to be able to add to the blog using gpt-oss in the pi harness, so I want to end up with instructions that will allow it to: add a blog post in md format, make any tweaks, build the site, open and merge a PR on GitHub, update the prompt and carbon ledger. I think using 11ty would make all this easier, but building locally rather than build on push.” — plus follow-ups on keeping posts style-free and wording this ledger's introduction.

Rebuilt the site on Eleventy: blog posts are now Markdown files in src/blog/, a FAQ lives at /faq/, this ledger is generated from data with the running total computed at build time, and AGENTS.md gives any agent step-by-step instructions for publishing a post, opening and merging the PR, and logging it here. The built site is committed to docs/; every old URL still works.

~40 Wh ~16 g An hour of a 40 W desk fan
July 25, 2026 GPT-OSS (RTX 3090) “Switching from Claude to GPT-OSS on my gaming rig in the home office.”

Switched to a local open‑source LLM running on an RTX 3090 GPU. No data leaves home and energy per prompt is roughly 2 Wh.

~2 Wh ~0.8 g A half-hour of a 5 W LED bulb
July 25, 2026 Claude Fable 5 “Remove all the formatting. Just use semantic HTML tags. I don't want any formatting.”

Stripped the blog post of every CSS class, stylesheet link, Stimulus controller, and <em>/<strong> formatting — just bare <article>, <p>, <a>.

~5 Wh ~2 g Four minutes of a smartphone charging
July 25, 2026 Claude Fable 5 “Can the post get a back link to the homepage?”

Added a plain <nav> with a “← Home” anchor at the top of the post.

~3 Wh ~1 g Ten seconds of an e-bike motor
July 25, 2026 Claude Fable 5 “Let's add a "blog post" to the "Writing"” — and I wrote the wording.

Publishing Paul's first proper blog post: “Using an LLM ‘off-the-grid’”. Also added a link under the Writing section on the index page. (Committed as aa30a29)

~15 Wh ~6 g A full phone charge, then a little more
July 21, 2026 Claude Fable 5 “Prompts should be sorted bottom up not top down”

Reversed the table: newest entries now sit at the top. About 5 model invocations.

~5 Wh ~2 g Ten minutes of a 30 W laptop
July 21, 2026 Claude Fable 5 “ALong with Est. energy and Est. CO₂e, can we have a column that does a random comparison like the ‘boiling water’ comparison?”

Added this column. About 6 model invocations.

~6 Wh ~2.5 g 45 minutes of a home Wi-Fi router
July 21, 2026 Claude Fable 5 Quoting this page's method section — “> Anthropic doesn't publish per-request energy figures” — “Anthropic, in their cowardice, doesn't”.

Sharpened the editorial line below. About 5 model invocations.

~5 Wh ~2 g Half a kilometre on an e-bike
July 21, 2026 Claude Fable 5 Four short follow-ups while waiting on the HTTPS certificate, ending with “Oh, it's done”.

Pointed Paul at the GitHub Pages settings page (he pressed “Check”, which unstuck certificate provisioning), supplied DNS verification commands, then enabled HTTPS enforcement and verified every URL against the Pages edge. About 15 model invocations.

~15 Wh ~6 g One full phone charge
July 21, 2026 Claude Fable 5 “Can I add a prompt and carbon-use ledger to this site?”

Added this page. About 8 model invocations.

~8 Wh ~3 g 35 seconds of an 800 W microwave
July 21, 2026 Claude Fable 5 “Put Mastodon https://mastodon.social/@paulca above BlueSky, lose Twitter.”

Reordered the links on the home page. About 6 model invocations.

~6 Wh ~2.5 g An hour of a 6 W LED bulb
July 21, 2026 Claude Fable 5 “I want to replace paulca.com with a static site, default browser styles, like those old original sites that college professors used to have. It will just be a short bio, and link out to various profiles that I have. Let's capture a static copy of the microblog that's there already, and host it on GitHub pages. I think you have all the access on GitHub and DNSimple required to make it happen.”

Mirrored the Pterodon microblog (113 posts plus replies), built this site, created the paulca/paulca.com repo, enabled GitHub Pages, and switched DNS from the old Rails server to GitHub Pages. About 40 model invocations.

~40 Wh ~16 g Charging a phone from flat, three times over

Running total: ~235 Wh, ~94 g CO₂e — a bit more than the energy it takes to boil two litres of water, or the emissions of driving a petrol car about half a kilometre.

Method

Anthropic, in their cowardice, doesn't publish per-request energy figures, so these are order-of-magnitude estimates, not measurements. The arithmetic: (model invocations in the session) × 1 Wh per invocation × 400 g CO₂e per kWh (a rough global-average grid intensity). Published measurements for single chat queries are around 0.24–0.33 Wh (Google's 2025 Gemini disclosure); 1 Wh per invocation is deliberately generous because agentic coding calls carry much longer contexts than chat. For open-source models running on local hardware, the estimate is ~2 Wh per prompt instead, based on the power draw of the GPU doing the work. Training-run amortisation, network transfer, and this page being served are not counted. Treat every number as right to within a factor of ten, at best.

The ledger is append-only: each time an agent works on this site, it adds a Markdown file to src/ledger/ and rebuilds; this page and the running total are generated from those files.


Home