<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cole Foster — Writing</title><description>Notes on the projects on colefoster.ca.</description><link>https://colefoster.ca/</link><language>en-ca</language><item><title>Giving a coding agent an API key without pasting it into chat</title><link>https://colefoster.ca/blog/keyrelay/</link><guid isPermaLink="true">https://colefoster.ca/blog/keyrelay/</guid><description>Coding agents tell you not to paste keys into chat but give you nowhere else to put them. Keyrelay is a one-time local page for that handoff.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Checking the address a headless browser actually connects to</title><link>https://colefoster.ca/blog/pagewright/</link><guid isPermaLink="true">https://colefoster.ca/blog/pagewright/</guid><description>Pagewright is a small self-hosted render API. Keeping its headless browser off my network meant vetting the IP of every connection it makes.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Ranking checkpoints that are too close to call</title><link>https://colefoster.ca/blog/ranking-checkpoints/</link><guid isPermaLink="true">https://colefoster.ca/blog/ranking-checkpoints/</guid><description>Accuracy, a local arena and the ladder couldn&apos;t rank my VGC bot&apos;s sibling checkpoints. Boards with calc-proven answers couldn&apos;t either, but they found mistakes.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate></item></channel></rss>