<?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: Ruslan Murtuzaliyev</title>
    <description>The latest articles on DEV Community by Ruslan Murtuzaliyev (@id_1).</description>
    <link>https://dev.to/id_1</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3632363%2F808b68be-14b0-4b31-9148-77cfa4052180.jpg</url>
      <title>DEV Community: Ruslan Murtuzaliyev</title>
      <link>https://dev.to/id_1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/id_1"/>
    <language>en</language>
    <item>
      <title>Turning GPT GIFs into a cat film: what smoothing fixed, and what it didn’t</title>
      <dc:creator>Ruslan Murtuzaliyev</dc:creator>
      <pubDate>Fri, 06 Nov 2026 08:52:28 +0000</pubDate>
      <link>https://dev.to/id_1/turning-gpt-gifs-into-a-cat-film-what-smoothing-fixed-and-what-it-didnt-2bn1</link>
      <guid>https://dev.to/id_1/turning-gpt-gifs-into-a-cat-film-what-smoothing-fixed-and-what-it-didnt-2bn1</guid>
      <description>&lt;p&gt;A cat crosses a room, jumps onto a windowsill, watches a bird, curls up and falls asleep. That became a 57.2-second silent edit assembled from short GPT-generated GIFs.&lt;/p&gt;

&lt;p&gt;The useful experiment was smaller: take three selected shots and compare their native timing with a locally finished version. Keeping the cat’s size and position consistent across cuts turned out to matter as much as making its movement smoother.&lt;/p&gt;

&lt;h2&gt;
  
  
  The comparison
&lt;/h2&gt;



&lt;p&gt;&lt;a href="https://github.com/user-attachments/assets/4c200322-2bfc-46ad-8ba9-8548614608a5" rel="noopener noreferrer"&gt;Watch the full 7.68-second comparison&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Both panels use the &lt;strong&gt;same three generated WALK, JUMP and CURL takes&lt;/strong&gt;, at the same playback speed.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;After&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Generated source drawings&lt;/td&gt;
&lt;td&gt;16 per shot&lt;/td&gt;
&lt;td&gt;The same source takes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source frame duration&lt;/td&gt;
&lt;td&gt;160 ms&lt;/td&gt;
&lt;td&gt;Original timing retained for the comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finishing&lt;/td&gt;
&lt;td&gt;Native GIF sequence&lt;/td&gt;
&lt;td&gt;Framing corrections, background compositing and selective interpolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comparison duration&lt;/td&gt;
&lt;td&gt;7.68 seconds&lt;/td&gt;
&lt;td&gt;7.68 seconds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Sixteen drawings at 160 ms give 2.56 seconds per shot. Three shots give 7.68 seconds. The native drawing cadence is 6.25 drawings per second; the MP4 comparison is encoded at 25 fps. An export frame rate alone does not add motion. Interpolated frames estimate intermediate states between source drawings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/user-attachments/assets/32e3381d-dbd7-4ff3-8356-1d379b2b7456" rel="noopener noreferrer"&gt;Watch the complete 57.2-second cat edit&lt;/a&gt;. That longer film includes other beats and editing decisions; the three-shot comparison above is a separate, shorter artifact.&lt;/p&gt;

&lt;h2&gt;
  
  
  What improved
&lt;/h2&gt;

&lt;p&gt;The finished side combines several changes. Framing cleanup reduces visible scale and room changes, compositing stabilizes the background, and selective interpolation fills some of the gaps between poses.&lt;/p&gt;

&lt;p&gt;That means this comparison cannot isolate how much improvement comes from interpolation alone. Reframing and compositing visibly contribute to the result. A cleaner way to measure that contribution would be a separate comparison with framing held fixed; that test is still to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  What still needed a different take
&lt;/h2&gt;

&lt;p&gt;During development, the cat disappeared around a cut, the bird’s contact with its branch was wrong, and the bird faded away instead of flying out of frame. Other revisions introduced scale changes or extra stripes on the cat’s back.&lt;/p&gt;

&lt;p&gt;Those failures made frame inspection necessary. Additional intermediate frames cannot establish an action that the generated source never depicted correctly. Around a fast jump, interpolation also needs review for doubled contours and ghosting.&lt;/p&gt;

&lt;p&gt;For this workflow, each replacement shot needs two checks: its beginning against the previous shot’s ending, and its ending against the next shot’s beginning. A take can improve the action while making either cut worse.&lt;/p&gt;

&lt;p&gt;The resulting review questions are concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the cat keep the same apparent size, markings and silhouette?&lt;/li&gt;
&lt;li&gt;Do its feet, the floor and the windowsill agree about contact?&lt;/li&gt;
&lt;li&gt;Does the action progress through the jump, landing and curl?&lt;/li&gt;
&lt;li&gt;Does the sleeping shot contain visible breathing rather than a frozen pose?&lt;/li&gt;
&lt;li&gt;Do both neighboring cuts preserve position and direction well enough for the intended edit?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are human review questions, not automated acceptance scores.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is reproducible from the public code
&lt;/h2&gt;

&lt;p&gt;The accompanying &lt;a href="https://github.com/antropos17/chatgpt-gif-cinema" rel="noopener noreferrer"&gt;GIF Cinema repository and agent skill&lt;/a&gt; document shot planning, short GIF generation with still-image references, frame inspection, explicit retakes and MP4 assembly. I maintain that project.&lt;/p&gt;

&lt;p&gt;The included three-shot &lt;strong&gt;astronaut&lt;/strong&gt; example can be assembled without an API key. It is a separate native-timing baseline, not a reproduction of the finished cat. New generation requires the user’s own API billing and model access.&lt;/p&gt;

&lt;p&gt;The extra compositing, interpolation and Studio interface used for the cat are private and are outside the public skill. The repository uses a source-available evaluation license, with commercial use, redistribution and hosting requiring permission.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/antropos17/chatgpt-gif-cinema/blob/main/docs/SHOWCASE.md" rel="noopener noreferrer"&gt;Matching decoded frame pairs and the comparison notes&lt;/a&gt; make it possible to inspect the selected footage without publishing private prompts or request logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would test next
&lt;/h2&gt;

&lt;p&gt;The selected edit still contains stepped source poses and small matte or shading differences. One cat film does not establish reliable continuity across other characters, styles or longer films.&lt;/p&gt;

&lt;p&gt;The next useful test would hold framing and source takes fixed, compare native timing against interpolation, and review the jump at full speed as well as frame by frame. That would separate motion improvement from composition repair.&lt;/p&gt;

&lt;p&gt;The lesson from this experiment is that a coherent little film needs both: acceptable source action and cuts that preserve enough visual continuity for the viewer to follow it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: AI drafted and edited this article from my experiment notes and the referenced artifacts. The animations are AI-generated; the comparison includes local postprocessing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Ruslan Murtuzaliyev</dc:creator>
      <pubDate>Tue, 27 Oct 2026 01:19:34 +0000</pubDate>
      <link>https://dev.to/id_1/-18g2</link>
      <guid>https://dev.to/id_1/-18g2</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j" class="crayons-story__hidden-navigation-link"&gt;AI Agents Have the Keys to Your Computer. I Spent 8 Months Building an Antivirus for Them.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Single-use MCP approvals prevent permission creep&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/id_1" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3632363%2F808b68be-14b0-4b31-9148-77cfa4052180.jpg" alt="id_1 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/id_1" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ruslan Murtuzaliyev
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ruslan Murtuzaliyev
                
                
              
              &lt;div id="story-author-preview-content-4924587" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/id_1" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3632363%2F808b68be-14b0-4b31-9148-77cfa4052180.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ruslan Murtuzaliyev&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 27&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j" id="article-link-4924587"&gt;
          AI Agents Have the Keys to Your Computer. I Spent 8 Months Building an Antivirus for Them.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;26&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              31&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            10 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>AI Agents Have the Keys to Your Computer. I Spent 8 Months Building an Antivirus for Them.</title>
      <dc:creator>Ruslan Murtuzaliyev</dc:creator>
      <pubDate>Tue, 27 Oct 2026 01:18:13 +0000</pubDate>
      <link>https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j</link>
      <guid>https://dev.to/id_1/ai-agents-have-the-keys-to-your-computer-i-spent-8-months-building-an-antivirus-for-them-349j</guid>
      <description>&lt;p&gt;A coding agent with terminal access can install a package, run a script, start a child process and connect to a server. Add skills, hooks and MCP tools, and a request like “fix the build” can become a chain of actions with access to your files and credentials.&lt;/p&gt;

&lt;p&gt;Those actions need security decisions. Which command may run? Which tool call did I actually approve? What should happen when an agent touches a sensitive path?&lt;/p&gt;

&lt;p&gt;I've spent eight months building &lt;strong&gt;AEGIS: an open-source security and protection app for local AI agents&lt;/strong&gt;. “Antivirus for AI agents” is how I describe the project. Its protective controls are concrete: &lt;strong&gt;deny a configured command before it starts, require approval for an exact MCP request, reject known secrets on configured MCP routes, review skills before use, and pause or stop a selected agent process.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The part I care about most is being able to say &lt;strong&gt;no before a routed action executes&lt;/strong&gt;. You explicitly connect the commands and MCP tools you want AEGIS to govern, then define the decisions they must pass. The activity views and investigation tools help you choose those rules and respond when something needs attention.&lt;/p&gt;

&lt;p&gt;Here is the security workflow I am building around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before launch:&lt;/strong&gt; inspect a skill, project or agent configuration for suspicious command patterns and changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At execution:&lt;/strong&gt; apply command policies and exact, single-use MCP approvals on the routes you configure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;During a session:&lt;/strong&gt; investigate sensitive activity, receive alerts, and pause or stop the process you selected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After a session:&lt;/strong&gt; review the evidence, refine rules and export an audit record.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Cover: AI-generated editorial artwork from the AEGIS project. A conceptual illustration, rather than recorded activity.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://dev.to/id_1/kaspersky-found-512-bugs-in-openclaw-so-i-built-a-monitor-to-catch-ai-agents-misbehaving-30a9"&gt;my March post&lt;/a&gt;, I shared an early monitoring-focused build. Since then, command policies, precise tool approvals and security review have become central to AEGIS. The downloadable Windows release is &lt;strong&gt;0.20.1-beta&lt;/strong&gt;, under the MIT license. The workflows below describe that beta; the final development section covers newer source work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Block a denied command before it starts
&lt;/h2&gt;

&lt;p&gt;A destructive command is easier to deal with before it starts. This is where AEGIS puts a policy decision directly in the execution path.&lt;/p&gt;

&lt;p&gt;For a command deliberately routed through AEGIS, a selected-action policy evaluates the executable, working directory, arguments and selected environment. A denied decision stops that route &lt;strong&gt;before process creation&lt;/strong&gt;. Eligible actions can require fresh terminal confirmation; a policy deny stays denied.&lt;/p&gt;

&lt;p&gt;You explicitly route a command through AEGIS. Its permission is tied to this executable, these arguments, this directory and this attempt. That gives you a practical place to enforce a rule before launch.&lt;/p&gt;

&lt;p&gt;Compatible policies can use &lt;strong&gt;Cedar&lt;/strong&gt;, alongside the supported JSON policy formats. You can expose a fixed selected command, or a bounded catalog of commands, as MCP tools backed by those execution checks. Changes to the selected policy and request are checked as part of the operation.&lt;/p&gt;

&lt;p&gt;There is also a separate controlled deletion route: one selected regular-file path, an explicit policy and mandatory terminal confirmation. This gives a deliberate cleanup action its own review step.&lt;/p&gt;

&lt;p&gt;For specialized Windows workflows, AEGIS includes opt-in &lt;strong&gt;Job&lt;/strong&gt; and &lt;strong&gt;AppContainer&lt;/strong&gt; launch routes. A Job keeps the launched process and its ordinary member descendants under a shared lifetime. The selected offline AppContainer route uses a fresh workspace and a restricted Windows token with no additional capabilities. You select these routes per action and set up their documented native helpers and runtime requirements. The &lt;a href="https://github.com/antropos17/Aegis/blob/274d65711ac858c9d309c73f1f7c9c4e52872ed1/docs/ACTION-EXECUTION.md" rel="noopener noreferrer"&gt;execution documentation&lt;/a&gt; explains how to configure them.&lt;/p&gt;

&lt;p&gt;The Action control workspace helps inspect that setup. It separates a configuration check from observing a running route and seeing whether a call actually reached it. That distinction matters when connecting a real client: a settings file on disk is only one part of the path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Protect MCP access with exact approvals and secret filtering
&lt;/h2&gt;

&lt;p&gt;Consider a hypothetical file-writing tool. One request targets &lt;code&gt;notes/review.md&lt;/code&gt;; another targets &lt;code&gt;.env&lt;/code&gt;. The tool name is identical. The decision should include the arguments.&lt;/p&gt;

&lt;p&gt;AEGIS's validating MCP gateway checks the accepted tool catalog and schema, then requires approval bound to the &lt;strong&gt;exact tool call and arguments&lt;/strong&gt;. It consumes the one-use grant before forwarding the call. A changed request needs its own approval. Permission for one operation cannot silently become permission for another through that gateway.&lt;/p&gt;

&lt;p&gt;The gateway supports explicitly configured stdio, loopback HTTP and pinned HTTPS routes. Expiring grants can be retained across restarts. Selected-command policies and gateway approvals perform separate jobs; the selected-action adapter is the route that connects an MCP tool to command-policy execution.&lt;/p&gt;

&lt;p&gt;Credentials deserve a decision point too. You can configure &lt;strong&gt;known-secret filtering&lt;/strong&gt; for routed MCP metadata, arguments and results, including recognized encodings. When a configured known value matches, that route rejects it. This lets you protect a particular credential from being passed through that connection.&lt;/p&gt;

&lt;p&gt;The source includes narrow Claude and Gemini hook integrations as well. They depend on the provider loading and honoring the configured hook. Gemini's helper checks the exact complete shell input and working directory; the newer Claude setup work is described below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review skills and configurations before trusting them
&lt;/h2&gt;

&lt;p&gt;A downloaded skill or package brings another author's commands and configuration into your workspace. Reviewing those components before use is a security decision: what am I about to let this agent execute?&lt;/p&gt;

&lt;p&gt;AEGIS's &lt;strong&gt;Local security&lt;/strong&gt; workspace lets you select a project, a skill or package directory, or a supported agent profile. Its static review looks for patterns such as downloaded-code execution, credential-upload commands, destructive deletion, permission bypass, installation scripts, mutable dependencies and instructions to conceal actions.&lt;/p&gt;

&lt;p&gt;It inspects supported shell, JavaScript and Python command flows alongside package and configuration evidence. Project inventory collects recognized package and lock files, Git/configuration evidence and supported profile layouts. Profiles include Codex, Claude, Cursor and Gemini. You can also inspect fingerprints from an explicitly selected offline MCP tool catalog without starting that server.&lt;/p&gt;

&lt;p&gt;Each finding gives you something specific to investigate. A command downloading and executing a script deserves a different decision from an ordinary dependency declaration.&lt;/p&gt;

&lt;p&gt;You can save an inventory snapshot, capture it again later, and compare added, changed or removed observations. Accepting a snapshot involves fresh revalidation, so the recorded review stays tied to the configuration you actually inspected.&lt;/p&gt;

&lt;p&gt;AEGIS also imports supported &lt;strong&gt;Cisco JSON and SARIF reports&lt;/strong&gt;. You can compare an external report with a fresh built-in review while keeping its origin visible. That makes an existing report useful inside the same investigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdcuwz0xpm8dvo5kjx5jx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdcuwz0xpm8dvo5kjx5jx.png" alt="AEGIS Local security workspace" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Actual AEGIS source UI with simulated data, captured 11 October 2026. Source: AEGIS project screenshots.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pause or stop the agent process that needs attention
&lt;/h2&gt;

&lt;p&gt;When an observed process needs attention, AEGIS gives you a direct response: &lt;strong&gt;pause, resume or stop the selected instance&lt;/strong&gt;. It rechecks the process identity before dispatching the action, and Stop requires confirmation.&lt;/p&gt;

&lt;p&gt;That detail matters because a process identifier can be reused after a process exits. The intervention needs to stay attached to the instance whose evidence you were reviewing.&lt;/p&gt;

&lt;p&gt;Sensitive-activity notifications can appear as native desktop popups, while in-app review and anomaly notifications keep the investigation accessible. Popup preferences and throttling let you fit alerts around normal work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Investigate the activity behind a security alert
&lt;/h2&gt;

&lt;p&gt;To make a useful security decision, I need to connect an observation to the process behind it. An unfamiliar endpoint, a sensitive-directory change or a new child process is a reason to inspect the evidence.&lt;/p&gt;

&lt;p&gt;During a session, the Monitoring workspace identifies recognized local agents and shows separate running instances. You can select an instance, follow process relationships, filter the view and open its activity details.&lt;/p&gt;

&lt;p&gt;Recognition uses bundled signatures and available parent-process or IDE-host evidence. The agent catalog is editable: add validated custom definitions and import or export them for your own tools.&lt;/p&gt;

&lt;p&gt;File investigation brings together configured sensitive-directory changes, recognized agent configuration paths and available platform observations. Events retain the attribution evidence that supports them. Network views show TCP endpoints associated with detected agent processes, with destination classifications and available verified names.&lt;/p&gt;

&lt;p&gt;CPU and memory history help explain a busy session. Where available, NVIDIA VRAM samples add hardware context. Statistics separates AEGIS's own resource use from the processes it monitors.&lt;/p&gt;

&lt;p&gt;Local environment discovery can also surface WSL distribution names and Docker container or image candidates; Linux has a local Podman discovery path. Those entries help locate environments worth investigating, with their candidate status visible.&lt;/p&gt;

&lt;p&gt;Coverage and freshness belong in this workspace too. AEGIS exposes sensor health and stale observations so you can judge the record in front of you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzslkkctlivoqoy4y78t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxzslkkctlivoqoy4y78t.png" alt="AEGIS Monitoring workspace" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Actual AEGIS source UI with simulated data, captured 11 October 2026. Source: AEGIS project screenshots.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Detect unusual behavior and build useful security rules
&lt;/h2&gt;

&lt;p&gt;Security alerts need context. A process touching a sensitive path is worth examining; a change in its recent behavior can make that observation more useful.&lt;/p&gt;

&lt;p&gt;AEGIS maintains live behavior separately for process instances and retains recent completed-session profiles per agent. With enough history, it compares dimensions such as file volume, sensitive activity, directories, endpoints and active hours against earlier sessions.&lt;/p&gt;

&lt;p&gt;Risk explanations show the captured factors contributing to a score. Older events lose influence over time. Anomaly warnings identify deviations for investigation, and sequence rules can connect ordered observations into a reviewable detection record.&lt;/p&gt;

&lt;p&gt;The interface gives you ways to manage the resulting noise: review sensitive observations, record false-positive exceptions, and put an agent instance on a watchlist for alerts. You can search sensitive-path rules, enable or disable them, reload them and add schema-validated custom YAML rules.&lt;/p&gt;

&lt;p&gt;Rules &amp;amp; permissions also saves agent- or instance-scoped category preferences and profiles. Those review preferences sit alongside the explicitly configured execution controls described earlier. Keeping the chosen route visible makes it easier to understand which decision governs a particular action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep an audit trail for security review
&lt;/h2&gt;

&lt;p&gt;An investigation often continues after the agent session ends.&lt;/p&gt;

&lt;p&gt;AEGIS retains audit history and statistics. You can export activity as &lt;strong&gt;JSON or CSV&lt;/strong&gt;, generate an &lt;strong&gt;HTML session report&lt;/strong&gt;, save a &lt;strong&gt;diagnostic ZIP&lt;/strong&gt;, and export retained audit records. Daily audit records carry sequence numbers and SHA-256 linkage for local chain verification.&lt;/p&gt;

&lt;p&gt;Reports preserve the context needed for review. Paths, process names and endpoints can still be sensitive, so I would inspect an export before attaching it to a public issue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftnf112ivje3fq1skomvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftnf112ivje3fq1skomvo.png" alt="AEGIS Events workspace" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Actual AEGIS source UI with simulated data, captured 11 October 2026. Source: AEGIS project screenshots.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There is an optional &lt;strong&gt;Anthropic activity assessment&lt;/strong&gt; as well. You explicitly request it, supply an API key and confirm the external activity metadata being sent; that provider usage can incur charges. The beta can assess an agent-name group or the session and produce a threat report. Local static review remains a separate workflow.&lt;/p&gt;

&lt;p&gt;For Claude Code, Statistics shows observed input, output and cache token subtotals from matching readable local session data, together with model labels, source samples and collection health. Estimated USD costs help make a long session easier to understand. They are estimates based on the observed usage and pricing data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make security fit daily work
&lt;/h2&gt;

&lt;p&gt;I want the security workspace to fit beside an editor: stay accessible, keep useful exclusions and make alerts manageable.&lt;/p&gt;

&lt;p&gt;AEGIS can live in the tray, start with Windows, start minimized, pause monitoring and quit explicitly. Scan intervals and presets, build-directory exclusions, custom exclusions and sensitive-path patterns let you adjust collection to the workspace.&lt;/p&gt;

&lt;p&gt;Validated configuration import/export makes that setup portable. API-key fields are omitted from settings exports, and configured keys use encrypted persistence.&lt;/p&gt;

&lt;p&gt;The desktop includes light and dark themes, high-contrast variants, reduced motion, English and Brazilian Portuguese, Simple and Advanced navigation, and task search. Hardware-acceleration settings provide a restart path when changing rendering behavior.&lt;/p&gt;

&lt;p&gt;Windows update actions verify downloaded artifacts before reporting them ready and verify them again before installation. The public delivery is &lt;strong&gt;Windows-first&lt;/strong&gt;; macOS and Linux source paths remain experimental. Core monitoring and review records stay local. Requested updates, network naming and explicitly confirmed provider analysis have their own external traffic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Newer protection work in the development branch
&lt;/h2&gt;

&lt;p&gt;Current source contains work beyond the 0.20.1 installer.&lt;/p&gt;

&lt;p&gt;One addition is a persisted, explicitly selected project folder for change watching, with its own Coverage state and select, clear and refresh controls. Another is live &lt;strong&gt;Claude Tool context&lt;/strong&gt; explanation, connecting captured events with matching local main-session metadata and showing the evidence behind the association.&lt;/p&gt;

&lt;p&gt;Optional AI analysis now targets a concrete observed process instance with identity revalidation. Network interruptions retain observations with clearer freshness information, and notifications follow valid process instances more precisely.&lt;/p&gt;

&lt;p&gt;A particularly important protection workflow is the &lt;strong&gt;separate Claude hook profile&lt;/strong&gt;: review a policy, install it into an app-owned settings profile, inspect or remove the recognized hook, and launch Claude with that selected profile. The &lt;a href="https://github.com/antropos17/Aegis/blob/db8ec3d223662cb07ecb6cc5e859fe684e2a9592/docs/CLAUDE-HOOK-APP.md#private-unpacked-asar-qualification" rel="noopener noreferrer"&gt;current implementation record&lt;/a&gt; documents an installed-Claude allow/deny run through a private unpacked application package. Using a separate test profile, the allowed marker was created, the denied action received an explicit AEGIS denial, and its marker was absent.&lt;/p&gt;

&lt;p&gt;That is a specific development result on the recorded package and provider version. It belongs to the newer source work, separate from the public beta download.&lt;/p&gt;

&lt;h2&gt;
  
  
  Put a security check around your next agent workflow
&lt;/h2&gt;

&lt;p&gt;Start with the &lt;a href="https://github.com/antropos17/Aegis/releases/tag/aegis-v0.20.1-beta" rel="noopener noreferrer"&gt;Windows beta&lt;/a&gt; and its &lt;a href="https://github.com/antropos17/Aegis/blob/274d65711ac858c9d309c73f1f7c9c4e52872ed1/docs/RELEASE-VERIFICATION.md" rel="noopener noreferrer"&gt;installer-verification guide&lt;/a&gt;. Choose a local project or skill folder for review. Inspect a detected agent instance. If you want command or MCP controls, deliberately configure the relevant route using the linked documentation.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://antropos17.github.io/aegis-media/" rel="noopener noreferrer"&gt;illustrated overview&lt;/a&gt; is a quick way to see the workspace before installing. The &lt;a href="https://github.com/antropos17/Aegis" rel="noopener noreferrer"&gt;source and issue tracker&lt;/a&gt; are open under MIT.&lt;/p&gt;

&lt;p&gt;If this is useful, &lt;strong&gt;&lt;a href="https://github.com/antropos17/Aegis" rel="noopener noreferrer"&gt;star AEGIS on GitHub&lt;/a&gt;&lt;/strong&gt;. It is a small, voluntary way to help people discover the project and follow its progress.&lt;/p&gt;

&lt;p&gt;If someone on your team gives agents terminal, repository or MCP access, &lt;strong&gt;send them this post&lt;/strong&gt;. A practical walkthrough, an honest review or a demonstration of your own workflow would help introduce AEGIS to the people it is being built for.&lt;/p&gt;

&lt;p&gt;And if you want to help build it, &lt;a href="https://github.com/antropos17/Aegis/blob/master/CONTRIBUTING.md" rel="noopener noreferrer"&gt;contributions are welcome&lt;/a&gt;: agent signatures, detection rules, documentation, reproducible bug reports and focused pull requests all have a place.&lt;/p&gt;

&lt;p&gt;I've put eight months into building AEGIS because giving an agent access to a computer also creates a security responsibility. I want developers to be able to inspect what they install, define which actions are allowed, and intervene when a process needs to stop. Which action in your workflow would you put behind a security check first?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ruslan Murtuzaliyev · Escape Studio / AEGIS. AI generated this draft with little human editing. Feature descriptions were checked against the linked release and development source.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Kaspersky Found 512 Bugs in OpenClaw. So I Built a Monitor to Catch AI Agents Misbehaving.</title>
      <dc:creator>Ruslan Murtuzaliyev</dc:creator>
      <pubDate>Wed, 18 Mar 2026 22:35:10 +0000</pubDate>
      <link>https://dev.to/id_1/kaspersky-found-512-bugs-in-openclaw-so-i-built-a-monitor-to-catch-ai-agents-misbehaving-30a9</link>
      <guid>https://dev.to/id_1/kaspersky-found-512-bugs-in-openclaw-so-i-built-a-monitor-to-catch-ai-agents-misbehaving-30a9</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;How this started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I didn't plan to build a security tool. I'm a CS student in Toronto. My February plans involved catching up on assignments, maybe learning some Rust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then OpenClaw went viral.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you missed it: OpenClaw is an open-source AI agent that hit 20,000 GitHub stars in 24 hours. It connects to your WhatsApp, email, calendar, terminal. It runs 24/7. It writes its own code for tasks it hasn't seen before.&lt;/p&gt;

&lt;p&gt;Kaspersky audited it: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;512 vulnerabilities. Eight critical. A researcher got into Anthropic API keys, Telegram tokens, full admin access on exposed instances with Shodan. SecurityScorecard counted 135,000+ instances on the public internet, zero auth. More than 15,000 were vulnerable to remote code execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;820 out of 10,700 ClawHub skills were malware.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I read the Kaspersky report in my dorm and realized something basic: there's no tooling for this. Antivirus for malware, sure. Firewalls for networks. EDR for endpoints. But for AI agents running code on your machine with full disk access?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Nothing existed. So I started building...&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What it does?&lt;/strong&gt; (&lt;a href="https://aegis-demo-ten.vercel.app/" rel="noopener noreferrer"&gt;demo&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziajp6ewg0sd3kp2zz08.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziajp6ewg0sd3kp2zz08.gif" alt="1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aegis sits between your AI agent and your OS. It polls and diffs process trees, watches the filesystem via chokidar, and logs network activity through OS-level APIs, all in user-space, no drivers required. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It watches four things:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Processes:&lt;/strong&gt;&lt;br&gt;
Every spawn, every child process, every shell command. When Claude Code runs npm install, you see it. When something tries to curl a domain you don't recognize, you see that too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2) Files:&lt;/strong&gt;&lt;br&gt;
Real-time filesystem monitoring via chokidar. What's being read, written, created, deleted. Configurable rules flag when anything touches .env, .ssh/, or your credentials directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Network:&lt;/strong&gt;&lt;br&gt;
Outbound connections, DNS lookups, data leaving your machine. This is the one that gets the most attention from testers — knowing exactly where your agent sends data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Behavior:&lt;/strong&gt; &lt;br&gt;
68 detection rules match against known risky patterns. Each agent gets a trust score, 0 to 100, updated live.&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4959o2kj6osp0emdpc4z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4959o2kj6osp0emdpc4z.png" alt="2"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyh7bqu4tnurz3ixr2ix.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuyh7bqu4tnurz3ixr2ix.png" alt="3"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;The rule engine&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is where Aegis went from personal hack to something shareable. Rules are defined in a structured format, an example of what one looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;    &lt;span class="na"&gt;yaml- id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;AI012&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Sensitive Config Access&lt;/span&gt;
    &lt;span class="na"&gt;category&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;filesystem&lt;/span&gt;
    &lt;span class="na"&gt;severity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;high&lt;/span&gt;
    &lt;span class="na"&gt;pattern&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;.env|&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;.ssh|credentials|secret"&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Agent accessing sensitive configuration files&lt;/span&gt;
    &lt;span class="na"&gt;riskModifier&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On startup, the loader compiles patterns to RegExp, caches them in a Map, builds a categoryIndex for O(1) lookups by category.&lt;br&gt;
Rules hot-reload - edit the source, they update without a restart.&lt;/p&gt;

&lt;p&gt;68 rules cover filesystem access, network patterns, process behaviors, and agent-specific signatures including OpenClaw.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What I got wrong:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1: Chokidar globs.&lt;/strong&gt; I used glob patterns in ignored. Lost two days to events either missing or crashing. The issue is documented but not obvious. Function-form fixed it immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2: Tautological tests.&lt;/strong&gt; I wrote 12 tests for formatBytes, all green, looked great. A contributor pointed out every single test checked static input against static output. No edge cases. No boundaries. No negative numbers, no zero, no floats. She rewrote them into 25 tests that actually caught bugs. I merged it the same day.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3: Backdrop-filter stacking.&lt;/strong&gt; I put backdrop-filter: blur() on 33 elements for the glassmorphism look. Frames dropped. I didn't profile for a week because the rest of the UI was "fast enough." Eventually measured it — 33 composited elements is just too many. Cut it to 5, kept the visual effect where it mattered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4: Pushing to master.&lt;/strong&gt; "It's just a docs change." Lint-staged v16 has a bug on markdown-only commits. CI failed. Now I have a pre-commit hook that blocks edits on master. Should have had that from the start.&lt;br&gt;
My own security bugs. During a hardening pass I found HTML injection in IPC channels, path traversal bypassing file access rules, and no protection against LLM prompt injection. Three PRs, 112 new tests. If you're building anything that talks to an AI model over IPC, audit it. You'll find something.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5: My own security bugs.&lt;/strong&gt; During a hardening pass I found HTML injection in IPC channels, path traversal bypassing file access rules, and no protection against LLM prompt injection. Three PRs, 112 new tests. If you're building anything that talks to an AI model over IPC, audit it. You'll find something.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; Electron 33       Desktop shell
 Svelte 5 (runes)  43 components, pure CSS, no UI libraries
 Vite 7             Build: ~1.5s
 Vitest 4           707 tests, 44 files
 TypeScript         Strict, incremental migration from JS
 chokidar 3.6       File watching
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The main process is 28 CommonJS modules (23 core + 5 platform-specific) loaded directly by Node — no build step. CJS gets grief, but Electron's main process doesn't need a bundler, and I haven't spent a single hour debugging module resolution. I'll migrate when Electron's ESM support is stable.&lt;/p&gt;

&lt;p&gt;The renderer is 43 Svelte components with all animations constrained to &lt;em&gt;transform&lt;/em&gt; and &lt;em&gt;opacity&lt;/em&gt;, GPU composited only. No layout thrashing.&lt;/p&gt;

&lt;p&gt;IPC is batched at 1000ms. Stats use running counters, not recalculated from raw data. Startup staggers monitors at 3, 8, and 12 seconds so nothing blocks first paint. Bundle ships at 60kB gzipped JS. Idle memory sits around 180-220MB (Electron baseline + monitoring overhead).&lt;/p&gt;




&lt;h2&gt;
  
  
  What Aegis can't do
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No kernel-level monitoring.&lt;/strong&gt; Everything is user-space polling. A sophisticated agent or malware with privilege escalation can bypass this , Aegis won't catch what it can't observe. This is a visibility tool for understanding agent workflows, not a defense against APTs. ETW on Windows and eBPF on Linux are on the long-term roadmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows gets the most testing.&lt;/strong&gt; macOS and Linux work — a contributor shipped the cross-platform layer in PR #37 — but I develop on Windows, so that's where the edge cases get caught first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No rule editor UI.&lt;/strong&gt; You edit rules by hand. The IPC is ready (getRulesByCategory() and onRulesReloaded() already exist), the frontend isn't built yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single machine.&lt;/strong&gt; No fleet management. No cloud console. Aegis is a local tool. It tells you what happened on this computer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitoring, not prevention.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Will be added in future updates. But now, Aegis shows you what an agent did. It doesn't block it. If you're running OpenClaw in production, you need an isolated VM. This tool is a camera, not a lock.&lt;/p&gt;




&lt;h2&gt;
  
  
  Roadmap
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;v0.10.0-alpha  ← current

Next           Spawn hardening (child_process security)
               Rules UI (visual editor in the app)
               TypeScript migration — 9 remaining files

Later          UtilityProcess for scan loop
               Ring buffers + OOM hardening

Future         ML anomaly detection
               z-score deviation from baseline agent behavior

Long-term      ETW / eBPF kernel-level hooks
               Rust N-API modules for hot paths
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The ML layer is what I keep thinking about. Pattern-matching catches known bad behavior. But what about unknown bad behavior? An agent that usually reads five files per minute suddenly reading 500, that's a deviation you can catch with statistical methods, no rule required.&lt;/p&gt;

&lt;p&gt;Build a baseline, flag anomalies.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/antropos17/Aegis.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Aegis
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Starts in demo mode with simulated agent traffic. Poke around.&lt;/p&gt;

&lt;p&gt;Or skip install: &lt;strong&gt;&lt;a href="https://aegis-demo-ten.vercel.app/" rel="noopener noreferrer"&gt;live web demo&lt;/a&gt;&lt;/strong&gt; — runs in the browser, no setup.&lt;/p&gt;




&lt;h2&gt;
  
  
  By the numbers:
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Tests - 707 pass,0 fail&lt;br&gt;
Test files - 44&lt;br&gt;
Svelte components - 43&lt;br&gt;
Main process modules - 28 (23 core + 5 platform)&lt;br&gt;
Detection rules - 68&lt;br&gt;
Known agents - 107&lt;br&gt;
tsc errors - 0&lt;br&gt;
&lt;code&gt;any&lt;/code&gt; types - 0&lt;br&gt;
ESLint errors - 0&lt;br&gt;
Build - ~1.5s&lt;br&gt;
JS bundle (gzip) - 60 kB&lt;br&gt;
License - MIT&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What I need&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Stars matter for open-source visibility. &lt;/p&gt;

&lt;p&gt;If this seems useful,please &lt;strong&gt;&lt;a href="https://github.com/antropos17/Aegis" rel="noopener noreferrer"&gt;STAR&lt;/a&gt;&lt;/strong&gt; the repo.&lt;/p&gt;

&lt;p&gt;Beyond that: install it, break it, file issues. There are &lt;strong&gt;&lt;a href="https://github.com/antropos17/Aegis/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22" rel="noopener noreferrer"&gt;some good-first-issues&lt;/a&gt;&lt;/strong&gt; if you want to contribute code. If you know an agent's risky patterns, write a detection rule, I'll review and merge.&lt;/p&gt;

&lt;p&gt;What agent behavior would you want to detect first? Curious what rules people would write.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/antropos17/Aegis" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://aegis-demo-ten.vercel.app/" rel="noopener noreferrer"&gt;Demo&lt;/a&gt; · &lt;a href="https://aegisprotect.vercel.app/" rel="noopener noreferrer"&gt;Landing Page&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
