<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Ecko blog</title>
<link>https://ecko.sh/blog</link>
<description>Guides on the language. Each one shows a program, then the case that goes wrong.</description>
<item>
<title>Using `ai`</title>
<link>https://ecko.sh/blog/using-ai</link>
<pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
<description>A typed call, a tool, a session and a stream. The same file runs with no API key.</description>
</item>
<item>
<title>Record fields can have defaults</title>
<link>https://ecko.sh/blog/record-field-defaults</link>
<pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
<description>A field with a default can be left out. The default runs every time a value is built.</description>
</item>
<item>
<title>The markdown package</title>
<link>https://ecko.sh/blog/markdown-package</link>
<pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
<description>Parse a document, render HTML, and see which links are left as plain text.</description>
</item>
<item>
<title>When the whole string is an interpolation</title>
<link>https://ecko.sh/blog/interpolation-strings</link>
<pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
<description>A string that contains only a hole is text, the same as any other interpolation.</description>
</item>
<item>
<title>Saying which Ecko a package needs</title>
<link>https://ecko.sh/blog/package-ecko-version</link>
<pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
<description>An `ecko` field in the manifest is checked when the package is imported.</description>
</item>
<item>
<title>Serial ports and the device capability</title>
<link>https://ecko.sh/blog/serial-and-device</link>
<pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
<description>Open a port as a stream. The grant for that is `device`, which `fs:write` does not include.</description>
</item>
</channel>
</rss>
