<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Momen Adel</title>
    <description>The latest articles on DEV Community by Momen Adel (@momenbuilds).</description>
    <link>https://dev.to/momenbuilds</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3985569%2F3498a196-3756-4c47-8d7a-78be22a313e1.jpeg</url>
      <title>DEV Community: Momen Adel</title>
      <link>https://dev.to/momenbuilds</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/momenbuilds"/>
    <language>en</language>
    <item>
      <title>I built a safe mode for AI coding agents</title>
      <dc:creator>Momen Adel</dc:creator>
      <pubDate>Mon, 15 Jun 2026 12:56:56 +0000</pubDate>
      <link>https://dev.to/momenbuilds/i-built-a-safe-mode-for-ai-coding-agents-3928</link>
      <guid>https://dev.to/momenbuilds/i-built-a-safe-mode-for-ai-coding-agents-3928</guid>
      <description>&lt;p&gt;AI coding agents are getting really good.&lt;/p&gt;

&lt;p&gt;Claude Code, Cursor, Codex, Replit, Lovable, Bolt, all of these tools can now build apps, edit files, run commands, install packages, touch databases, and ship changes fast.&lt;/p&gt;

&lt;p&gt;But there is one problem.&lt;/p&gt;

&lt;p&gt;They are powerful enough to act, but not careful enough to fully trust.&lt;/p&gt;

&lt;p&gt;A normal AI coding session can go from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;fix this bug&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;changed auth logic&lt;/li&gt;
&lt;li&gt;edited env handling&lt;/li&gt;
&lt;li&gt;touched database code&lt;/li&gt;
&lt;li&gt;installed packages&lt;/li&gt;
&lt;li&gt;ran commands&lt;/li&gt;
&lt;li&gt;maybe even changed production-related files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;before you fully understand what happened.&lt;/p&gt;

&lt;p&gt;That is fine when the action is safe.&lt;/p&gt;

&lt;p&gt;But not every action is safe.&lt;/p&gt;

&lt;p&gt;Creating a draft is safe.&lt;/p&gt;

&lt;p&gt;Opening a ticket is safe.&lt;/p&gt;

&lt;p&gt;Adding a comment is safe.&lt;/p&gt;

&lt;p&gt;Deleting production data is not safe.&lt;/p&gt;

&lt;p&gt;Sending emails to users is not safe.&lt;/p&gt;

&lt;p&gt;Rotating keys is not safe.&lt;/p&gt;

&lt;p&gt;Deploying to production without review is not safe.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Keel&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Keel is safe mode for AI coding agents.&lt;/p&gt;

&lt;p&gt;It checks commands and tool calls before they run.&lt;/p&gt;

&lt;p&gt;Safe actions run.&lt;/p&gt;

&lt;p&gt;Risky actions ask first.&lt;/p&gt;

&lt;p&gt;Dangerous actions get blocked.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;Before an AI agent does something, Keel checks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What action is it trying to run?&lt;/li&gt;
&lt;li&gt;Is this action reversible?&lt;/li&gt;
&lt;li&gt;What systems or files could it touch?&lt;/li&gt;
&lt;li&gt;Should this run, ask for approval, or be blocked?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then Keel records what happened so you can understand the full story later.&lt;/p&gt;

&lt;p&gt;Not just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the agent changed code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what command ran&lt;/li&gt;
&lt;li&gt;what tool call happened&lt;/li&gt;
&lt;li&gt;what arguments it used&lt;/li&gt;
&lt;li&gt;what files or records were touched&lt;/li&gt;
&lt;li&gt;whether it was allowed, gated, or blocked&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think this layer is missing.&lt;/p&gt;

&lt;p&gt;We already have tools for AI chat.&lt;/p&gt;

&lt;p&gt;We already have tools for AI coding.&lt;/p&gt;

&lt;p&gt;We already have observability tools.&lt;/p&gt;

&lt;p&gt;But observability usually tells you what happened after the damage.&lt;/p&gt;

&lt;p&gt;Keel is trying to stop the bad action before it lands.&lt;/p&gt;

&lt;p&gt;The first version is focused on people building with AI coding agents.&lt;/p&gt;

&lt;p&gt;Things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;block risky shell commands&lt;/li&gt;
&lt;li&gt;ask before production deploys&lt;/li&gt;
&lt;li&gt;gate destructive database actions&lt;/li&gt;
&lt;li&gt;stop secrets from being exposed&lt;/li&gt;
&lt;li&gt;log every agent action&lt;/li&gt;
&lt;li&gt;make it easier to see what the AI actually did&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bigger idea is this:&lt;/p&gt;

&lt;p&gt;Every AI agent needs a brake, a black box, and an undo button.&lt;/p&gt;

&lt;p&gt;That is what I want Keel to become.&lt;/p&gt;

&lt;p&gt;I am looking for early users using Claude Code, Cursor, Codex, Replit, Lovable, Bolt, or any AI coding agent.&lt;/p&gt;

&lt;p&gt;Especially if an agent has ever done something weird, risky, or hard to debug in your project.&lt;/p&gt;

&lt;p&gt;Would love feedback from builders.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://getkeelai.com" rel="noopener noreferrer"&gt;https://getkeelai.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>programming</category>
      <category>security</category>
    </item>
  </channel>
</rss>
