<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kaiserlich</title><link>https://kaiserlich.blog/</link><description>Recent content on Kaiserlich</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 14 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://kaiserlich.blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Der Agent ist nur ein Ordner</title><link>https://kaiserlich.blog/der-agent-ist-nur-ein-ordner/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/der-agent-ist-nur-ein-ordner/</guid><description>&lt;p&gt;Kieran Klaassen hat auf Every geschrieben: &lt;a href="https://every.to/source-code/the-folder-is-the-agent" target="_blank" rel="noopener"&gt;&amp;ldquo;The Folder Is the Agent.&amp;rdquo;&lt;/a&gt;
 Ich habe den Text nicht gelesen. Der Titel hat gereicht. Das mache ich seit Monaten so.&lt;/p&gt;
&lt;p&gt;Ein Projektordner mit den richtigen Kontextdateien ist der Agent. Kein Framework. Kein Orchestrierungslayer. Kein Swarm. Markdown-Files, Skills, Kontext. Fertig.&lt;/p&gt;
&lt;h2 id="wie-das-aussieht"&gt;Wie das aussieht&lt;/h2&gt;
&lt;p&gt;Ich betreue mehrere Kunden mit unterschiedlichen Stacks. Rails, n8n, Supabase, Shopify. Pro Kunde gibt es einen Ops-Ordner. Darin liegt ein AGENTS.md: Welche Repos gehören zum Projekt? Welche Skills werden benutzt? Wo wird deployed? Wie komme ich an die Datenbank?&lt;/p&gt;</description></item><item><title>Dein Wissen gehört dir. Du kannst es nur nicht benutzen.</title><link>https://kaiserlich.blog/wissen-gehoert-dir/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/wissen-gehoert-dir/</guid><description>&lt;p&gt;Jeder hat mal einen Kurs gekauft, die ersten beiden Kapitel angesehen, war super motiviert, und dann keine Zeit mehr gehabt. Der Kurs liegt jetzt irgendwo in einem Account, den du seit Monaten nicht geöffnet hast. Das Wissen ist da. Du kommst nur nicht ran.&lt;/p&gt;
&lt;p&gt;Mir ging es genauso. Nicht nur mit Kursen, sondern mit allem.&lt;/p&gt;
&lt;h2 id="der-tool-zirkus"&gt;Der Tool-Zirkus&lt;/h2&gt;
&lt;p&gt;Ich habe über die Jahre alles ausprobiert. Apple Notes war mein Standard, aber nie strukturiert. Notion war das strukturierteste Tool. Dann kam Obsidian, weil der Hype groß war. Dann Heptabase, weil es sich anders anfühlte. Zwischendrin immer ein neues Ding, das alles besser machen sollte.&lt;/p&gt;</description></item><item><title>5,700 Messages in 16 Days</title><link>https://kaiserlich.blog/session-review/</link><pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/session-review/</guid><description>&lt;p&gt;Built a skill today that reviews my &lt;a href="https://pi.dev/" target="_blank" rel="noopener"&gt;pi&lt;/a&gt;
 agent sessions over any date range. Ran it on Feb 1–16. Here is what came out.&lt;/p&gt;
&lt;h2 id="the-numbers"&gt;The Numbers&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Messages to AI&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;5,700+&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Active days&lt;/td&gt;
 &lt;td&gt;16&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Unique projects&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;65&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Avg messages/day&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;~360&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Avg projects/day&lt;/td&gt;
 &lt;td&gt;10&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Avg context switches/day&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;111&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Avg active hours&lt;/td&gt;
 &lt;td&gt;11&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Peak day&lt;/td&gt;
 &lt;td&gt;Feb 3, 630 messages, 13 projects&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;~360 messages a day. One terminal. 65 different projects. Client work, infrastructure, personal tools, finance, content.&lt;/p&gt;</description></item><item><title>A Full Stack Migration in One Day</title><link>https://kaiserlich.blog/one-day-migration/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/one-day-migration/</guid><description>&lt;p&gt;Back in mid 2025 I discovered &lt;a href="https://github.com/crmne/ruby_llm" target="_blank" rel="noopener"&gt;Ruby LLM&lt;/a&gt;
 and was completely blown away by how nice it is. I was switching mostly to using Rails for everything around that time and it was just a magic moment. The API is beautiful, works exactly how you&amp;rsquo;d want it to.&lt;/p&gt;
&lt;p&gt;I already had this client project, an invoice automation app. The client receives a ton of invoices, huge ones, and the app runs them through an extraction pipeline, classifies them, pulls out the data, then validates everything against different data points using various rules. I built it, and as the client wanted more automations for different invoice types, it grew and grew.&lt;/p&gt;</description></item><item><title>My AI Coding Workflow, January 2026</title><link>https://kaiserlich.blog/workflow/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/workflow/</guid><description>&lt;p&gt;I wanted to capture how I work right now. A snapshot. In a year this will probably look outdated, maybe embarrassing. That&amp;rsquo;s the point.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the setup, the tools, the habits. January 2026.&lt;/p&gt;
&lt;h2 id="the-setup"&gt;The Setup&lt;/h2&gt;
&lt;p&gt;I run &lt;a href="https://www.anthropic.com/engineering/claude-code-best-practices" target="_blank" rel="noopener"&gt;Claude Code&lt;/a&gt;
 with &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;. That&amp;rsquo;s the only practical way to use it. Otherwise you&amp;rsquo;re approving tasks all day and the agentic loop breaks down.&lt;/p&gt;
&lt;p&gt;Yes, there&amp;rsquo;s risk. My machine is set up to recover at any point. The trade-off is worth it.&lt;/p&gt;</description></item><item><title>What Levelsio Wants, I Already Have</title><link>https://kaiserlich.blog/levelsio-automation-stack/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/levelsio-automation-stack/</guid><description>&lt;p&gt;Yesterday, Pieter Levels &lt;a href="https://x.com/levelsio/status/2014760508834840932" target="_blank" rel="noopener"&gt;tweeted&lt;/a&gt;
 about trying to get &amp;ldquo;vanilla Claude&amp;rdquo; to automate his entire startup creation process:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;claude -p &amp;ldquo;come up with 1000 startup ideas from the top Reddit posts, build their landing page, reg domain names and add them as vhosts to Nginx on a VPS you make on Hetzner, add Stripe buy button, test in Chrome, don&amp;rsquo;t make any mistakes&amp;rdquo; &amp;ndash;dangerously-skip-permissions &amp;ndash;chrome&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Claude, of course, politely refused. It cannot create accounts, enter payment info, or register domains. The replies were predictable: &amp;ldquo;skill issue,&amp;rdquo; &amp;ldquo;distribution is the hard part,&amp;rdquo; and my favorite, &amp;ldquo;you got a bad Claude instance.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Just Build It?</title><link>https://kaiserlich.blog/just-build-it/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/just-build-it/</guid><description>&lt;p&gt;Always look around. Today I saw Amp release their &lt;a href="https://ampcode.com/models" target="_blank" rel="noopener"&gt;line of models&lt;/a&gt;
 used for various tasks. I knew they do this, but while looking at it I got thinking: we can just build that as skills for Claude or basically any other agent. Some examples:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Session Analyst.&lt;/strong&gt; A skill that sifts through Claude Code sessions automatically, analyzing patterns and usage. Relying on Gemini&amp;rsquo;s large context window makes sense because we want to feed as many sessions as possible to see patterns. Where do we keep yelling the same thing at the model? Is there potential for a small change in the CLAUDE.md? Does it make sense to make a skill for this? How can we be better at communicating context? So much power in this. And all we need is to use the data that&amp;rsquo;s stored anyway and pump it into Gemini.&lt;/p&gt;</description></item><item><title>AI Workshop</title><link>https://kaiserlich.blog/ai-workshop/</link><pubDate>Thu, 15 Jan 2026 21:14:56 +0100</pubDate><guid>https://kaiserlich.blog/ai-workshop/</guid><description>&lt;p&gt;So I made a thing. &lt;a href="https://agentsonsteroids.com" target="_blank" rel="noopener"&gt;https://agentsonsteroids.com&lt;/a&gt;
. Man this was a lot of fun! I sold this workshop last weekend and only got around to creating it yesterday.&lt;/p&gt;
&lt;p&gt;So happy with the results and it was like a huge reflection on my own workflow of the last few years. This is only the landing (presentation is locked for now).&lt;/p&gt;
&lt;p&gt;I already have so many ideas how to get this further. Need more feedback from customers.&lt;/p&gt;</description></item><item><title>Stats On Skills</title><link>https://kaiserlich.blog/stats-on-skills/</link><pubDate>Wed, 14 Jan 2026 21:43:34 +0100</pubDate><guid>https://kaiserlich.blog/stats-on-skills/</guid><description>&lt;p&gt;Evolution Stats on my personal Agent Skills (Dec 15 2025 - Jan 14 2026 = 30 days)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;94 commits&lt;/li&gt;
&lt;li&gt;21 skills created&lt;/li&gt;
&lt;li&gt;76 commits in January alone (14 days)&lt;/li&gt;
&lt;li&gt;Basically a new skill every 1.5 days&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI In The Browser</title><link>https://kaiserlich.blog/ai-in-the-browser/</link><pubDate>Wed, 14 Jan 2026 17:03:45 +0100</pubDate><guid>https://kaiserlich.blog/ai-in-the-browser/</guid><description>&lt;p&gt;Ok here is something interesting: I tried the Claude Chrome Extension already in Beta and was very disappointed. Today I gave it another try.&lt;/p&gt;
&lt;p&gt;My task was to get all transcripts from a course around 50 videos and provide a file to downlaod.&lt;/p&gt;
&lt;p&gt;Claude Chrome: took ~30 minutes and failed to provide the final result in any format.&lt;/p&gt;
&lt;p&gt;Sitegeist from @badlogicgames on X with gemini 3 flash it took literally 2 minutes and I had the file 🤯&lt;/p&gt;</description></item><item><title>Agent-Native CLI Design</title><link>https://kaiserlich.blog/agent-native-cli-design/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/agent-native-cli-design/</guid><description>&lt;p&gt;Most CLI tools are designed for humans. Colorful output, spinners, interactive prompts, progress bars. This makes sense. Humans need visual feedback to know something is happening.&lt;/p&gt;
&lt;p&gt;AI agents don&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been building CLI tools that Claude Code uses as &amp;ldquo;skills.&amp;rdquo; Small scripts it can invoke to interact with external services. After a few months of this, patterns emerged. Here&amp;rsquo;s what I&amp;rsquo;ve learned about designing CLIs that agents actually want to use.&lt;/p&gt;</description></item><item><title>Agent-Native Skill Feedback</title><link>https://kaiserlich.blog/agent-native-skill-feedback/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/agent-native-skill-feedback/</guid><description>&lt;p&gt;I use &lt;a href="https://agentskills.io" target="_blank" rel="noopener"&gt;skills&lt;/a&gt;
 daily now. They&amp;rsquo;re the primary way I extend what Claude Code can do. Custom CLIs for calendar, email, DNS, deployment, you name it.&lt;/p&gt;
&lt;p&gt;But skills aren&amp;rsquo;t perfect out of the box. They need iteration. And who better to tell me what&amp;rsquo;s wrong than the agent using them?&lt;/p&gt;
&lt;h2 id="the-self-improvement-loop"&gt;The Self-Improvement Loop&lt;/h2&gt;
&lt;p&gt;I wrote a simple hook that runs after every skill invocation. It injects a message into Claude&amp;rsquo;s context:&lt;/p&gt;</description></item><item><title>Datenschutzerklärung</title><link>https://kaiserlich.blog/datenschutz/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/datenschutz/</guid><description>&lt;h2 id="1-verantwortlicher"&gt;1. Verantwortlicher&lt;/h2&gt;
&lt;p&gt;Julian Kaiser
Achternfelde 61
22850 Norderstedt
E-Mail: &lt;a href="mailto:julian@kaiserlich.dev"&gt;julian@kaiserlich.dev&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="2-hosting"&gt;2. Hosting&lt;/h2&gt;
&lt;p&gt;Diese Website wird bei Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Deutschland gehostet. Beim Aufruf dieser Website werden durch den Hoster automatisch Informationen in sogenannten Server-Logfiles gespeichert, die Ihr Browser übermittelt:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IP-Adresse (wird nach spätestens 7 Tagen gelöscht)&lt;/li&gt;
&lt;li&gt;Datum und Uhrzeit der Anfrage&lt;/li&gt;
&lt;li&gt;Aufgerufene URL&lt;/li&gt;
&lt;li&gt;Browsertyp und -version&lt;/li&gt;
&lt;li&gt;Betriebssystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an der sicheren Bereitstellung der Website). Mit Hetzner besteht ein Auftragsverarbeitungsvertrag gemäß Art. 28 DSGVO.&lt;/p&gt;</description></item><item><title>Impressum</title><link>https://kaiserlich.blog/impressum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/impressum/</guid><description>&lt;h2 id="angaben-gemäß--5-ddg"&gt;Angaben gemäß § 5 DDG&lt;/h2&gt;
&lt;p&gt;Julian Kaiser
Achternfelde 61
22850 Norderstedt
Deutschland&lt;/p&gt;
&lt;h2 id="kontakt"&gt;Kontakt&lt;/h2&gt;
&lt;p&gt;E-Mail: &lt;a href="mailto:julian@kaiserlich.dev"&gt;julian@kaiserlich.dev&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="umsatzsteuer-id"&gt;Umsatzsteuer-ID&lt;/h2&gt;
&lt;p&gt;Umsatzsteuer-Identifikationsnummer gemäß § 27a UStG:
DE365734347&lt;/p&gt;
&lt;h2 id="verantwortlich-für-den-inhalt-nach--18-abs-2-mstv"&gt;Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV&lt;/h2&gt;
&lt;p&gt;Julian Kaiser
Achternfelde 61, 22850 Norderstedt&lt;/p&gt;
&lt;h2 id="eu-streitschlichtung"&gt;EU-Streitschlichtung&lt;/h2&gt;
&lt;p&gt;Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
&lt;a href="https://ec.europa.eu/consumers/odr/" target="_blank" rel="noopener"&gt;https://ec.europa.eu/consumers/odr/&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Ich bin nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen.&lt;/p&gt;</description></item><item><title>Now</title><link>https://kaiserlich.blog/now/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kaiserlich.blog/now/</guid><description>&lt;p&gt;What I&amp;rsquo;m focused on right now.&lt;/p&gt;</description></item></channel></rss>