<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>RadarModel.com</title>
    <link>https://radarmodel.com/</link>
    <description>Recent content on RadarModel.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 17 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://radarmodel.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Database Schema Drift Starts With One Manual ALTER</title>
      <link>https://radarmodel.com/database-schema-drift-starts-with-one-manual-alter/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/database-schema-drift-starts-with-one-manual-alter/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s 2 a.m. and checkout is timing out. Someone finds the slow query, adds an index on production by hand, and the graphs go green. Nobody writes a migration for it. Three weeks later a deploy runs a migration that drops and rebuilds that table, the index is gone, and checkout times out again. Or the other way round: a hotfix makes a column &lt;code&gt;NOT NULL&lt;/code&gt; on production only, and the next release, which was tested against staging, fails every insert that leaves it empty.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RadarModel Schema Launches to Catch Database Drift</title>
      <link>https://radarmodel.com/radarmodel-schema-launches-to-catch-database-drift/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/radarmodel-schema-launches-to-catch-database-drift/</guid>
      <description>&lt;p&gt;RadarModel 0.2 adds a second command, &lt;code&gt;radarmodel-schema&lt;/code&gt;. It reads the live schema of a Postgres, MySQL, MariaDB or SQLite database, keeps it, reads it again later and tells you what changed. A column dropped by hand, a type changed on production only, an index lost in a rebuild. It&amp;rsquo;s in the same download as RadarModel AI, open source under the Apache License 2.0, and the code is on &lt;a href=&#34;https://github.com/radarmodel/radarmodel&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Migration tools know what they applied. They don&amp;rsquo;t look at what&amp;rsquo;s actually in the database, and a change made around them stays invisible until something fails. RadarModel Schema looks. &lt;a href=&#34;https://radarmodel.com/database-schema-drift-starts-with-one-manual-alter/&#34;&gt;Why schema drift happens&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How RadarModel Schema Was Tested Against Real Databases</title>
      <link>https://radarmodel.com/how-radarmodel-schema-was-tested-against-real-databases/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/how-radarmodel-schema-was-tested-against-real-databases/</guid>
      <description>&lt;p&gt;A drift detector earns trust slowly and loses it in one night. Report a dropped table that&amp;rsquo;s still there and the alert channel gets muted. So RadarModel Schema&amp;rsquo;s tests spend as much effort on what it must not report as on what it must.&lt;/p&gt;&#xA;&lt;p&gt;None of them use a fake database. SQLite runs on Linux, macOS and Windows. Postgres 12, 16 and 17, MySQL 8.0 and 8.4, and MariaDB 10.6 and 11.4 run in containers on every push. Each test creates its own database on the server, does real DDL to it, and drops it afterwards.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AI Models Drift Under Your App and Nobody Tells You</title>
      <link>https://radarmodel.com/ai-models-drift-under-your-app-and-nobody-tells-you/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/ai-models-drift-under-your-app-and-nobody-tells-you/</guid>
      <description>&lt;p&gt;Your app calls an AI model by name. It&amp;rsquo;s a string in a config file, &lt;code&gt;gpt-4o&lt;/code&gt; or &lt;code&gt;claude-sonnet-4-5&lt;/code&gt;, and it was right the day someone typed it. The model behind that string lives on somebody else&amp;rsquo;s servers, on somebody else&amp;rsquo;s schedule.&lt;/p&gt;&#xA;&lt;p&gt;Providers retire models. They rename them, or point an alias at a newer one. They cut a context window, add a retirement date, move a model from active to deprecated, raise the price per token. None of that is a secret. It goes into a changelog, a deprecations page, maybe an email to whoever signed up for the account three years ago. And the team that owns the app finds out from a stack trace.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RadarModel AI Launches as Open Source Under the Apache License</title>
      <link>https://radarmodel.com/radarmodel-ai-launches-as-open-source-under-the-apache-license/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/radarmodel-ai-launches-as-open-source-under-the-apache-license/</guid>
      <description>&lt;p&gt;RadarModel AI 0.1 is out. It reads the model lists of OpenAI, Anthropic, Google and OpenRouter, compares each with the last one it saw, and tells you when a model your app calls is gone, retiring, or changed its limits or price. It&amp;rsquo;s open source under the Apache License 2.0, one binary per system, and the code is on &lt;a href=&#34;https://github.com/radarmodel/radarmodel&#34;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;It exists because providers change models on their own schedule, and the first sign is usually a failed request. The model lists are public through each provider&amp;rsquo;s API, so a small tool can read them every hour and say what moved. &lt;a href=&#34;https://radarmodel.com/ai-models-drift-under-your-app-and-nobody-tells-you/&#34;&gt;Why it matters&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How RadarModel AI Was Tested Against Broken Provider Answers</title>
      <link>https://radarmodel.com/how-radarmodel-ai-was-tested-against-broken-provider-answers/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/how-radarmodel-ai-was-tested-against-broken-provider-answers/</guid>
      <description>&lt;p&gt;A tool that watches for removed models has one way to be useless: telling you a model is gone when it isn&amp;rsquo;t. Do it twice and the alerts get muted, and then the real removal goes by unseen. So most of RadarModel AI&amp;rsquo;s tests aren&amp;rsquo;t about finding changes. They&amp;rsquo;re about not inventing them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-fake-provider&#34;&gt;The fake provider&lt;/h2&gt;&#xA;&lt;p&gt;The tests run against a fake API that answers like all four providers at once: OpenAI&amp;rsquo;s list, Anthropic&amp;rsquo;s with its cursor paging, Google&amp;rsquo;s with page tokens, OpenRouter&amp;rsquo;s with prices and limits. Each test takes a baseline, then breaks the next answer from one provider in one specific way.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why the Project Is Called RadarModel</title>
      <link>https://radarmodel.com/why-the-project-is-called-radarmodel/</link>
      <pubDate>Sat, 17 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/why-the-project-is-called-radarmodel/</guid>
      <description>&lt;p&gt;Two words, both doing their plain jobs.&lt;/p&gt;&#xA;&lt;p&gt;A radar doesn&amp;rsquo;t look once. It sweeps, round and round, and what it&amp;rsquo;s good at is noticing that something moved since the last pass. That&amp;rsquo;s the whole method here: read the list, keep it, read it again, compare.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://radarmodel.com/images/radarmodel-name.png&#34; alt=&#34;A radar screen with blips labelled gpt-4o, claude-sonnet, gemini-pro and llama-70b, and one red blip marked &amp;ldquo;gone?&amp;rdquo;, next to the two words of the name explained.&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://radarmodel.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/about/</guid>
      <description>&lt;p&gt;RadarModel watches the models your app depends on and tells you when one of them changes underneath it. It&amp;rsquo;s two products on one small engine. RadarModel AI watches the model lists of AI providers. RadarModel Schema watches database schemas for drift: changes made outside your migrations.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-the-project-exists&#34;&gt;Why the Project Exists&lt;/h2&gt;&#xA;&lt;p&gt;An app that calls an AI model calls it by name. &lt;code&gt;gpt-4o&lt;/code&gt;, &lt;code&gt;claude-sonnet-4-5&lt;/code&gt;, &lt;code&gt;gemini-2.5-flash&lt;/code&gt;. Those names don&amp;rsquo;t stay put. Providers retire models on a schedule, rename them, shrink a context window, add a retirement date, or change the price per token. Each of them announces it somewhere: a changelog, a deprecations page, an email to whoever signed up. Most teams find out when a request fails in production.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://radarmodel.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/contact/</guid>
      <description>&lt;p&gt;The project would like to hear from:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Teams running AI in production&lt;/strong&gt; who want to say what they&amp;rsquo;d need RadarModel AI to catch.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Teams whose databases drift&lt;/strong&gt; who want to say what RadarModel Schema should catch, or which database to cover next.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone&lt;/strong&gt; who wants another provider covered, such as Azure OpenAI, AWS Bedrock or Mistral.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Anyone&lt;/strong&gt; with a question about the tool, its tests or the figures on this site.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Write to &lt;strong&gt;&lt;a href=&#34;mailto:info@radarmodel.com&#34;&gt;info@radarmodel.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Download RadarModel</title>
      <link>https://radarmodel.com/download/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/download/</guid>
      <description>&lt;p&gt;Each archive below holds both commands, &lt;code&gt;radarmodel-ai&lt;/code&gt; and &lt;code&gt;radarmodel-schema&lt;/code&gt;, with the license files and the README. The links always point to the latest release.&lt;/p&gt;&#xA;&lt;div style=&#34;overflow-x:auto&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;System&lt;/th&gt;&#xA;          &lt;th&gt;Download&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/radarmodel_linux_amd64.tar.gz&#34;&gt;radarmodel_linux_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Linux, ARM64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/radarmodel_linux_arm64.tar.gz&#34;&gt;radarmodel_linux_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Apple silicon&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/radarmodel_darwin_arm64.tar.gz&#34;&gt;radarmodel_darwin_arm64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;macOS, Intel&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/radarmodel_darwin_amd64.tar.gz&#34;&gt;radarmodel_darwin_amd64.tar.gz&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Windows, x86-64&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/radarmodel_windows_amd64.zip&#34;&gt;radarmodel_windows_amd64.zip&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;em&gt;Checksums are in &lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases/latest/download/SHA256SUMS&#34;&gt;SHA256SUMS&lt;/a&gt;. Every release is listed on &lt;a href=&#34;https://github.com/radarmodel/radarmodel/releases&#34;&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;install&#34;&gt;Install&lt;/h2&gt;&#xA;&lt;p&gt;On Linux or macOS:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xzf radarmodel_linux_amd64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv radarmodel-ai radarmodel-schema /usr/local/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;radarmodel-ai version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;radarmodel-schema version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The binaries are pure Go and need nothing else installed. The macOS binaries aren&amp;rsquo;t signed by Apple, so macOS may block the first run. Allow it in System Settings under Privacy &amp;amp; Security, or run &lt;code&gt;xattr -d com.apple.quarantine radarmodel-ai radarmodel-schema&lt;/code&gt;. On Windows, unzip the archive and run &lt;code&gt;radarmodel-ai.exe&lt;/code&gt; or &lt;code&gt;radarmodel-schema.exe&lt;/code&gt; from a terminal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick Start</title>
      <link>https://radarmodel.com/quick-start/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/quick-start/</guid>
      <description>&lt;p&gt;Five minutes, one config file, and you&amp;rsquo;ll know the next time a model your app calls changes. First &lt;a href=&#34;https://radarmodel.com/download/&#34;&gt;download&lt;/a&gt; RadarModel and put &lt;code&gt;radarmodel-ai&lt;/code&gt; and &lt;code&gt;radarmodel-schema&lt;/code&gt; on your PATH. This page starts with RadarModel AI; &lt;a href=&#34;#radarmodel-schema&#34;&gt;RadarModel Schema&lt;/a&gt; follows.&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-write-a-config&#34;&gt;1. Write a config&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;radarmodel-ai init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That writes &lt;code&gt;radarmodel.json&lt;/code&gt; in the current folder. Open it and put the models your app actually calls under &lt;code&gt;watch&lt;/code&gt;, as &lt;code&gt;provider:model&lt;/code&gt;. Remove the providers you don&amp;rsquo;t use.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;interval&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1h&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;providers&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;},&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openrouter&amp;#34;&lt;/span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;watch&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openai:gpt-4o&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openrouter:anthropic/*&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  ]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A &lt;code&gt;*&lt;/code&gt; matches anything, slashes included, so &lt;code&gt;openrouter:anthropic/*&lt;/code&gt; watches every Anthropic model on OpenRouter.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reference</title>
      <link>https://radarmodel.com/reference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://radarmodel.com/reference/</guid>
      <description>&lt;p&gt;Everything RadarModel 0.2 does, in one page: &lt;code&gt;radarmodel-ai&lt;/code&gt; first, then &lt;a href=&#34;#radarmodel-schema&#34;&gt;&lt;code&gt;radarmodel-schema&lt;/code&gt;&lt;/a&gt;. The &lt;a href=&#34;https://github.com/radarmodel/radarmodel#readme&#34;&gt;README on GitHub&lt;/a&gt; says the same in the repository.&lt;/p&gt;&#xA;&lt;h2 id=&#34;commands&#34;&gt;Commands&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;radarmodel-ai init  [-config FILE]           write a starter config&#xA;radarmodel-ai check [-config FILE] [flags]   scan once, compare, report&#xA;radarmodel-ai watch [-config FILE] [flags]   scan every interval until stopped&#xA;radarmodel-ai show  [-config FILE] SOURCE    list the stored models of a source&#xA;radarmodel-ai version&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The config is &lt;code&gt;radarmodel.json&lt;/code&gt; in the current folder, or the file in &lt;code&gt;$RADARMODEL_CONFIG&lt;/code&gt;, or &lt;code&gt;-config FILE&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
