<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>blog.damsleth.no</title>
    <link>https://blog.damsleth.no/</link>
    <description>Personal tech blog by C.J. Damsleth with practical engineering notes.</description>
    <language>en</language>
    <lastBuildDate>Tue, 30 Jun 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>`owa-tools`: all of Microsoft 365, from the terminal</title>
      <link>https://blog.damsleth.no/#/post/owa-tools-outlook-cli-suite</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/owa-tools-outlook-cli-suite</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <description>cal-cli was one script for the calendar. owa-tools is the whole family - mail, Graph, OneDrive, scheduling, people - all sharing one CLI contract and leaning on owa-piggy for auth.</description>
    </item>
    <item>
      <title>`owa-tui`: a terminal face for all of Microsoft 365</title>
      <link>https://blog.damsleth.no/#/post/owa-tui-a-textual-frontend</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/owa-tui-a-textual-frontend</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <description>owa-tools is great in a pipe, less great when you just want to look at your week. owa-tui is the Textual front-end - kept deliberately separate, consuming only the stable library API. It&apos;s early days, written while it&apos;s still mostly scaffolding.</description>
    </item>
    <item>
      <title>`owa-piggy`: Outlook tokens without the app registration dance</title>
      <link>https://blog.damsleth.no/#/post/owa-piggy-outlook-tokens-without-app-reg</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/owa-piggy-outlook-tokens-without-app-reg</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <description>A zero-dependency Python CLI that piggybacks on OWA&apos;s own OAuth client to get Graph/Outlook tokens - no app registration, no admin consent, no client secrets.</description>
    </item>
    <item>
      <title>Small dumb things beat one big smart thing</title>
      <link>https://blog.damsleth.no/#/post/small-dumb-things-beat-one-big-smart-thing</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/small-dumb-things-beat-one-big-smart-thing</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <description>Composable small tools keep beating monolithic ones - in nature, in POSIX, and now especially for LLMs that use the shell as their native UI.</description>
    </item>
    <item>
      <title>`cal-cli`: Outlook calendar from the terminal</title>
      <link>https://blog.damsleth.no/#/post/cal-cli-outlook-from-the-terminal</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/cal-cli-outlook-from-the-terminal</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <description>A zsh script that gives you full CRUD access to your Outlook calendar without opening a browser. Uses owa-piggy for auth, outputs clean JSON.</description>
    </item>
    <item>
      <title>I built a meeting-notes skill for Claude Code</title>
      <link>https://blog.damsleth.no/#/post/meeting-notes-skill-for-claude-code</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/meeting-notes-skill-for-claude-code</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <description>A Claude Code skill that handles the full meeting lifecycle - calendar lookup, participant research, live note-taking, and wrap-up summaries.</description>
    </item>
    <item>
      <title>Fixing Claude Code&apos;s broken LSP plugins</title>
      <link>https://blog.damsleth.no/#/post/fixing-claude-code-lsp-plugins</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/fixing-claude-code-lsp-plugins</guid>
      <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
      <description>The official LSP plugins ship without their server config. Here&apos;s the fix and a SessionStart hook to make it stick.</description>
    </item>
    <item>
      <title>Automate PIM activation with PIMELIM</title>
      <link>https://blog.damsleth.no/#/post/automating-entra-pim-activations-with-pimelim</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/automating-entra-pim-activations-with-pimelim</guid>
      <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
      <description>A script for unattended scheduling of Azure Entra PIM role activations using PowerShell and the Microsoft Graph API</description>
    </item>
    <item>
      <title>Building a Cognitive Ledger for Cross-Agent Memory</title>
      <link>https://blog.damsleth.no/#/post/building-a-cognitive-ledger</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/building-a-cognitive-ledger</guid>
      <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
      <description>How I use a file-based cognitive ledger to give agents durable, inspectable memory across sessions and tools.</description>
    </item>
    <item>
      <title>tirc: a Terminal IRC Client</title>
      <link>https://blog.damsleth.no/#/post/building-tirc-terminal-irc-client</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/building-tirc-terminal-irc-client</guid>
      <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
      <description>IRCv3 and TUI design with ratatui.</description>
    </item>
    <item>
      <title>0x-d0: skipping CORS and passing secrets with a tiny Cloudflare proxy</title>
      <link>https://blog.damsleth.no/#/post/cloudflare-worker-proxy-use-cases</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/cloudflare-worker-proxy-use-cases</guid>
      <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
      <description>Using a Cloudflare Worker proxy to solve CORS and keep secrets server-side with ENV_ substitutions.</description>
    </item>
    <item>
      <title>Initial commit</title>
      <link>https://blog.damsleth.no/#/post/initial-commit</link>
      <guid isPermaLink="true">https://blog.damsleth.no/#/post/initial-commit</guid>
      <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
      <description>Initial setup of a vanilla JS + Web Components blog with markdown posts.</description>
    </item>
  </channel>
</rss>
