<?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: RAKSHANEX TECHNOLOGIES</title>
    <description>The latest articles on DEV Community by RAKSHANEX TECHNOLOGIES (@rakshanex).</description>
    <link>https://dev.to/rakshanex</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%2F1902093%2F7867d9b1-6076-4692-a772-6c4001b2f763.png</url>
      <title>DEV Community: RAKSHANEX TECHNOLOGIES</title>
      <link>https://dev.to/rakshanex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rakshanex"/>
    <language>en</language>
    <item>
      <title>Hello World Is a Lie — Build a Real Program in RUDRA (Chapter 2)</title>
      <dc:creator>RAKSHANEX TECHNOLOGIES</dc:creator>
      <pubDate>Thu, 08 Oct 2026 05:14:40 +0000</pubDate>
      <link>https://dev.to/rakshanex/hello-world-is-a-lie-build-a-real-program-in-rudra-chapter-2-1a3h</link>
      <guid>https://dev.to/rakshanex/hello-world-is-a-lie-build-a-real-program-in-rudra-chapter-2-1a3h</guid>
      <description>&lt;p&gt;Hello world teaches you nothing. It has no state, no decisions, no loops, no bugs. It's a greeting card, not a program.&lt;/p&gt;

&lt;p&gt;Chapter 2 is where RUDRA gets real. We build a &lt;strong&gt;Number Summarizer&lt;/strong&gt;: feed it 1..n, it prints each number's even/odd status, totals them up, and classifies the sum. Small enough to fit in your head. Real enough to teach you everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The program
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;sum_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="k"&gt;mut&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"RUDRA number summary"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{i} is even"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{i} is odd"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sum_to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"sum: {s}"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;is_even&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"the sum is even"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"the sum is odd"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The ideas that do all the work
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;let&lt;/code&gt; vs &lt;code&gt;let mut&lt;/code&gt;&lt;/strong&gt; — variables are immutable by default. Reassign a plain &lt;code&gt;let&lt;/code&gt; and the compiler stops you with the exact line number. Mutability is opt-in, which means every mutation in your code is a deliberate decision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ranges end exclusive&lt;/strong&gt; — &lt;code&gt;1..6&lt;/code&gt; means 1 through 5. This WILL bite you exactly once; after that you'll never forget. The idiom for "1 through n" is &lt;code&gt;1..(n + 1)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The accumulator&lt;/strong&gt; — &lt;code&gt;total = total + i;&lt;/code&gt; inside the loop. (No &lt;code&gt;+=&lt;/code&gt; in RUDRA's book — the explicit form keeps beginners honest about what's happening.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions with types&lt;/strong&gt; — &lt;code&gt;fn sum_to(n: int) -&amp;gt; int&lt;/code&gt;. Parameters and return types are written out. The compiler checks every call.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The honest workflow
&lt;/h2&gt;

&lt;p&gt;There's no keyboard-input API in the book at this stage — so &lt;code&gt;n&lt;/code&gt; lives in the source. Change it and re-run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rudrac summary.rux &lt;span class="nt"&gt;--run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Edit → run → read output → repeat. n = 5, 10, 20… each run teaches you something.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3 bugs you will definitely write
&lt;/h2&gt;

&lt;p&gt;Debugging method: &lt;strong&gt;problem → behavior → reason → fix → retest.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Off-by-one&lt;/strong&gt; — you write &lt;code&gt;1..n&lt;/code&gt; and n silently vanishes from the sum. Runs fine. Wrong answer. The exclusive end strikes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing &lt;code&gt;mut&lt;/code&gt;&lt;/strong&gt; — you reassign a plain &lt;code&gt;let&lt;/code&gt;. Compiler error, exact line given. Add &lt;code&gt;mut&lt;/code&gt;, move on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;=&lt;/code&gt; vs &lt;code&gt;==&lt;/code&gt;&lt;/strong&gt; — assignment inside a condition. Compiler error; conditions need comparison.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every one of these has bitten a professional this month. You're in good company.&lt;/p&gt;

&lt;h2&gt;
  
  
  Refactor like you mean it
&lt;/h2&gt;

&lt;p&gt;Repeated logic becomes a function (&lt;code&gt;is_even&lt;/code&gt;, &lt;code&gt;sum_to&lt;/code&gt;). Names say what they mean. One idea per function. And the rule that keeps you honest: refactor only with features you've already learned — no cleverness debt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proof it works
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;n&lt;/th&gt;
&lt;th&gt;sum&lt;/th&gt;
&lt;th&gt;parity&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;odd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;odd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;odd&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;210&lt;/td&gt;
&lt;td&gt;even&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Real runs, real numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep going
&lt;/h2&gt;

&lt;p&gt;🎥 Start the course — Chapter 1 video: &lt;a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=-adNF7Fi0Pg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📥 Download RUDRA (free): &lt;a href="https://github.com/rakshanex/rudra" rel="noopener noreferrer"&gt;https://github.com/rakshanex/rudra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 WhatsApp channel: &lt;a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47" rel="noopener noreferrer"&gt;https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next chapters build on this foundation — the course follows the official book, chapter by chapter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; which of the 3 bugs has bitten YOU most recently — off-by-one, missing mut, or &lt;code&gt;=&lt;/code&gt; vs &lt;code&gt;==&lt;/code&gt;? Confess in the comments.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Piyush Kumar — Founder &amp;amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>Your First 60 Seconds With a Language That Compiles Itself — RUDRA Chapter 1</title>
      <dc:creator>RAKSHANEX TECHNOLOGIES</dc:creator>
      <pubDate>Thu, 08 Oct 2026 05:14:00 +0000</pubDate>
      <link>https://dev.to/rakshanex/your-first-60-seconds-with-a-language-that-compiles-itself-rudra-chapter-1-3m6d</link>
      <guid>https://dev.to/rakshanex/your-first-60-seconds-with-a-language-that-compiles-itself-rudra-chapter-1-3m6d</guid>
      <description>&lt;p&gt;Most systems languages make you earn your first "hello world."&lt;/p&gt;

&lt;p&gt;Install the compiler. Install the linker. Configure the build system. Sacrifice something to the linker gods. Then — maybe — your program runs.&lt;/p&gt;

&lt;p&gt;RUDRA skips all of that. Chapter 1 of the course is about one thing: going from zero to a running native binary as fast as humanly possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  One archive. That's the whole toolchain.
&lt;/h2&gt;

&lt;p&gt;Download RUDRA from &lt;a href="https://github.com/rakshanex/rudra" rel="noopener noreferrer"&gt;https://github.com/rakshanex/rudra&lt;/a&gt; and you get four small tools:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudra&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Everyday driver: &lt;code&gt;new&lt;/code&gt;, &lt;code&gt;run&lt;/code&gt;, &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;fmt&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudrac&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The compiler: one &lt;code&gt;.rux&lt;/code&gt; file → native binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ruxpkg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudra-lsp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Language server (VS Code extension: &lt;code&gt;rakshanex.rudra&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No GCC. No Clang. No assembler. No linker. RUDRA emits x86-64 machine code and writes the executable itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your first program
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;hello.rux&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello, RUDRA!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rudrac hello.rux &lt;span class="nt"&gt;--run&lt;/span&gt;
&lt;span class="c"&gt;# ✅ Compiled: build/hello&lt;/span&gt;
&lt;span class="c"&gt;# Hello, RUDRA!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three lines. One command. A real native binary — a few kilobytes, starts in about a millisecond.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project workflow you'll use forever
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rudra new myapp &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;myapp
rudra run     &lt;span class="c"&gt;# compile + run&lt;/span&gt;
rudra build   &lt;span class="c"&gt;# native binary&lt;/span&gt;
rudra &lt;span class="nb"&gt;fmt&lt;/span&gt;     &lt;span class="c"&gt;# format code&lt;/span&gt;
rudra &lt;span class="nb"&gt;test&lt;/span&gt;    &lt;span class="c"&gt;# run test_* functions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every project is just a &lt;code&gt;Rux.toml&lt;/code&gt; manifest plus &lt;code&gt;src/main.rux&lt;/code&gt;. No build scripts, no 400-line config files.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happens between source and binary
&lt;/h2&gt;

&lt;p&gt;RUDRA's compilation pipeline has 8 stages: lex → parse → resolve imports → type-check → monomorphize generics → emit x86-64 → native ELF executable. You don't need to memorize them — but knowing your language doesn't hide a C compiler under the hood changes how you think about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One more trick before you go
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"2 + 2 = {2 + 2}"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 2 + 2 = 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;String interpolation with &lt;code&gt;{...}&lt;/code&gt; — any expression, evaluated inline. You'll use this constantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep going
&lt;/h2&gt;

&lt;p&gt;🎥 Watch Chapter 1 (full video lesson): &lt;a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=-adNF7Fi0Pg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📥 Download RUDRA (free): &lt;a href="https://github.com/rakshanex/rudra" rel="noopener noreferrer"&gt;https://github.com/rakshanex/rudra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 WhatsApp channel: &lt;a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47" rel="noopener noreferrer"&gt;https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next: Chapter 2 — we build a real Number Summarizer with loops, mutable state, and functions. And we debug it like professionals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; what's the most painful install experience you've ever had with a programming language? Tell me in the comments — I need to feel better about my 2 AM linker story.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Piyush Kumar — Founder &amp;amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>computerscience</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built My Own Programming Language Because I Was Tired of Fighting C Compilers</title>
      <dc:creator>RAKSHANEX TECHNOLOGIES</dc:creator>
      <pubDate>Thu, 08 Oct 2026 05:10:23 +0000</pubDate>
      <link>https://dev.to/rakshanex/i-built-my-own-programming-language-because-i-was-tired-of-fighting-c-compilers-27c4</link>
      <guid>https://dev.to/rakshanex/i-built-my-own-programming-language-because-i-was-tired-of-fighting-c-compilers-27c4</guid>
      <description>&lt;p&gt;Every programmer has a breaking point.&lt;/p&gt;

&lt;p&gt;Mine came at 2 AM, staring at a linker error that had nothing to do with my code. Three hours of "programming" — zero lines written. Just me versus the toolchain. Again.&lt;/p&gt;

&lt;p&gt;That night I asked a stupid question: what if the language just... compiled itself? No GCC. No LLVM. No assembler. No linker. One download, one binary, done.&lt;/p&gt;

&lt;p&gt;Two years later, that stupid question has a name: &lt;strong&gt;RUDRA&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  I built it. It works. Here's the proof.
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello, RUDRA!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;rudrac hello.rux &lt;span class="nt"&gt;--run&lt;/span&gt;
&lt;span class="c"&gt;# ✅ Compiled: build/hello&lt;/span&gt;
&lt;span class="c"&gt;# Hello, RUDRA!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. One command. A few kilobytes of native executable. Starts in about a millisecond.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why another language?
&lt;/h2&gt;

&lt;p&gt;Fair question. The world doesn't need another toy language.&lt;/p&gt;

&lt;p&gt;RUDRA isn't a toy — it's a bet. A bet that you don't have to choose between speed, safety, and simplicity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Memory-safe by default:&lt;/strong&gt; statically typed, no null, bounds-checked access, immutable by default. Use-after-free? Caught at compile time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actually powerful:&lt;/strong&gt; generics, traits, closures, sum types with exhaustive pattern matching. A real standard library — files, networking, threads, JSON, HTTP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple enough to learn in a weekend:&lt;/strong&gt; clean Rust-and-Go-flavored syntax. Readable by humans — and by AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The decision nobody else made
&lt;/h2&gt;

&lt;p&gt;Here's the part that makes compiler people do a double-take: RUDRA has its own native backend. It emits x86-64 machine code and writes the ELF binary itself.&lt;/p&gt;

&lt;p&gt;Most new languages cheat at this step — they lean on LLVM (gigabytes of dependency) or shell out to GCC. RUDRA does neither. The whole toolchain is four small tools:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudra&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Project driver: new, run, build, fmt, test&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudrac&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The compiler: one .rux file → native binary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ruxpkg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rudra-lsp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Language server (VS Code extension in the marketplace)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The honest part
&lt;/h2&gt;

&lt;p&gt;RUDRA is v1.1.0. Let me tell you what it can't do yet: DNS/hostname resolution and HTTPS/TLS are still on the roadmap. The compiler source is proprietary; the toolchain binaries are free to use.&lt;/p&gt;

&lt;p&gt;I'm not claiming it replaces Rust. I'm claiming something better: building it taught me more about compilers, type systems, and language design than a decade of using other people's languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn it with me — free
&lt;/h2&gt;

&lt;p&gt;I'm teaching all of it on YouTube, chapter by chapter, straight from the official book "The RUDRA Programming Language":&lt;/p&gt;

&lt;p&gt;🎥 Chapter 1 — Introduction, Installation &amp;amp; Your First Program: &lt;a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=-adNF7Fi0Pg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📥 Download RUDRA (free): &lt;a href="https://github.com/rakshanex/rudra" rel="noopener noreferrer"&gt;https://github.com/rakshanex/rudra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 WhatsApp channel: &lt;a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47" rel="noopener noreferrer"&gt;https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chapter 2 is next — we build a real Number Summarizer app: loops, mutable state, functions, debugging.&lt;/p&gt;

&lt;h2&gt;
  
  
  One question for you
&lt;/h2&gt;

&lt;p&gt;What's the first program you'd write in a brand-new systems language?&lt;/p&gt;

&lt;p&gt;Drop it in the comments — the best answer might become a chapter in the course.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;em&gt;Piyush Kumar — Founder &amp;amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.&lt;/em&gt;
&lt;/h2&gt;

</description>
      <category>programming</category>
      <category>computerscience</category>
      <category>opensource</category>
      <category>systemsprogramming</category>
    </item>
    <item>
      <title>🇮🇳 Building OmniCore OS: From an Idea to a Working Development Build:</title>
      <dc:creator>RAKSHANEX TECHNOLOGIES</dc:creator>
      <pubDate>Sun, 06 Sep 2026 06:44:57 +0000</pubDate>
      <link>https://dev.to/rakshanex/building-omnicore-os-from-an-idea-to-a-working-development-build-19eb</link>
      <guid>https://dev.to/rakshanex/building-omnicore-os-from-an-idea-to-a-working-development-build-19eb</guid>
      <description>&lt;h1&gt;
  
  
  🇮🇳 Building OmniCore OS: From an Idea to a Working Development Build
&lt;/h1&gt;

&lt;p&gt;A few days ago, I shared the vision behind &lt;strong&gt;OmniCore OS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Today, I want to share the next step in that journey.&lt;/p&gt;

&lt;p&gt;The idea is no longer just a concept.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OmniCore OS is now booting as a working development build.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Getting an operating system to boot is only one milestone. The bigger challenge is building a platform where security, integrity, verification, and resilience are considered from the foundation up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why OmniCore OS?
&lt;/h2&gt;

&lt;p&gt;Modern computing infrastructure depends on software that organizations need to trust, verify, and control.&lt;/p&gt;

&lt;p&gt;Security should not simply be something added after a system has been built.&lt;/p&gt;

&lt;p&gt;It should influence the architecture, build process, system configuration, update mechanism, and operational model from the beginning.&lt;/p&gt;

&lt;p&gt;That is the direction we're exploring with OmniCore OS.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛡️ Current Development Build
&lt;/h2&gt;

&lt;p&gt;The current development stage includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom boot environment&lt;/li&gt;
&lt;li&gt;Custom system identity and branding&lt;/li&gt;
&lt;li&gt;Desktop environment&lt;/li&gt;
&lt;li&gt;Installation environment&lt;/li&gt;
&lt;li&gt;Security-focused system architecture&lt;/li&gt;
&lt;li&gt;Build and deployment pipeline&lt;/li&gt;
&lt;li&gt;System testing and validation&lt;/li&gt;
&lt;li&gt;Foundation for future security and forensic capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But the real challenge isn't simply making an OS boot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real challenge is building a system that can be trusted.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔐 The Questions That Matter
&lt;/h2&gt;

&lt;p&gt;Can the system be verified?&lt;/p&gt;

&lt;p&gt;Can changes to critical components be detected?&lt;/p&gt;

&lt;p&gt;Can updates be securely delivered?&lt;/p&gt;

&lt;p&gt;Can the software supply chain be monitored?&lt;/p&gt;

&lt;p&gt;What happens if the system is compromised?&lt;/p&gt;

&lt;p&gt;Can useful forensic evidence be preserved?&lt;/p&gt;

&lt;p&gt;These are the questions driving the engineering process.&lt;/p&gt;

&lt;h2&gt;
  
  
  BUILD → HARDEN → TEST → BREAK → FIX → VALIDATE
&lt;/h2&gt;

&lt;p&gt;The objective is not to claim that the current build is already secure.&lt;/p&gt;

&lt;p&gt;It isn't.&lt;/p&gt;

&lt;p&gt;This is an &lt;strong&gt;early development build&lt;/strong&gt;, and many components still need to be implemented, tested, and independently evaluated.&lt;/p&gt;

&lt;p&gt;The goal is to continuously identify weaknesses and improve the architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 What Comes Next?
&lt;/h2&gt;

&lt;p&gt;We are currently evaluating the next capabilities to implement, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;System hardening&lt;/li&gt;
&lt;li&gt;Integrity verification&lt;/li&gt;
&lt;li&gt;Secure update mechanisms&lt;/li&gt;
&lt;li&gt;Software supply-chain security&lt;/li&gt;
&lt;li&gt;Security monitoring&lt;/li&gt;
&lt;li&gt;Digital-forensics readiness&lt;/li&gt;
&lt;li&gt;Offline and isolated deployment&lt;/li&gt;
&lt;li&gt;Reproducible and auditable builds&lt;/li&gt;
&lt;li&gt;Security-focused system tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture will continue to evolve as development and testing progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  🇮🇳 Building Toward Sovereign Computing
&lt;/h2&gt;

&lt;p&gt;For me, sovereign computing means more than putting an Indian name on a product.&lt;/p&gt;

&lt;p&gt;It means developing the capability to understand, control, secure, and continuously improve the technology stack.&lt;/p&gt;

&lt;p&gt;Architecture.&lt;/p&gt;

&lt;p&gt;Build systems.&lt;/p&gt;

&lt;p&gt;Software supply chain.&lt;/p&gt;

&lt;p&gt;Security controls.&lt;/p&gt;

&lt;p&gt;Verification.&lt;/p&gt;

&lt;p&gt;Deployment.&lt;/p&gt;

&lt;p&gt;That is the broader direction behind OmniCore OS.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Is Only the Beginning
&lt;/h2&gt;

&lt;p&gt;The current ISO is a &lt;strong&gt;development build&lt;/strong&gt;, not a final product or production release.&lt;/p&gt;

&lt;p&gt;There is still a significant amount of engineering, testing, and validation ahead.&lt;/p&gt;

&lt;p&gt;But seeing an idea move through:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idea → Architecture → Build → Boot → Test → Improve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;is an important milestone.&lt;/p&gt;

&lt;p&gt;And now the real work begins.&lt;/p&gt;

&lt;p&gt;🇮🇳 &lt;strong&gt;OMNICORE OS&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Secure. Sovereign. Advanced.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Built by &lt;strong&gt;RAKSHANEX TECHNOLOGIES&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the foundation.&lt;br&gt;&lt;br&gt;
Harden the system.&lt;br&gt;&lt;br&gt;
Break it.&lt;br&gt;&lt;br&gt;
Fix it.&lt;br&gt;&lt;br&gt;
Verify it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;I'd genuinely like to hear from developers, security researchers, OS engineers, DFIR professionals, and systems engineers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What capabilities would you consider essential for a security-focused operating system at the foundation level?&lt;/strong&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8zdy2k6qurjqwrgedysw.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%2F8zdy2k6qurjqwrgedysw.png" alt=" " width="640" height="480"&gt;&lt;/a&gt;&lt;br&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%2Fz9sp2ea5pyysldemrymt.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%2Fz9sp2ea5pyysldemrymt.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;br&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%2Faiky9qgln020hz4f6hyk.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%2Faiky9qgln020hz4f6hyk.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>linux</category>
      <category>devops</category>
    </item>
    <item>
      <title>When Your AI Agent Gets Breached, Can You Prove What It Did?</title>
      <dc:creator>RAKSHANEX TECHNOLOGIES</dc:creator>
      <pubDate>Tue, 01 Sep 2026 20:36:58 +0000</pubDate>
      <link>https://dev.to/rakshanex/when-your-ai-agent-gets-breached-can-you-prove-what-it-did-4lf0</link>
      <guid>https://dev.to/rakshanex/when-your-ai-agent-gets-breached-can-you-prove-what-it-did-4lf0</guid>
      <description>&lt;p&gt;&lt;em&gt;Introducing AgentTrace — an open-source, offline forensic tool for reconstructing AI-agent security incidents.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;AI agents are no longer demos. LLMs wired to tools, memory, retrieval, and other agents are running in production — reading data, calling APIs, moving money, touching customer records. And like everything else that touches production, they get caught up in security incidents.&lt;/p&gt;

&lt;p&gt;But investigating an AI-agent incident is not like traditional digital forensics. I kept running into the same wall, so I built a tool for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI-agent forensics is genuinely different
&lt;/h2&gt;

&lt;p&gt;Three things break the usual DFIR playbook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The attack vector is natural language.&lt;/strong&gt; When an attacker plants a malicious instruction in a document an agent will retrieve, that instruction looks identical to a legitimate query in every log most teams collect. There is no binary payload, no CVE signature, no network packet that lights up. The exploit is a sentence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The anomaly is the sequence, not any single event.&lt;/strong&gt; Every individual tool call the agent makes is authorized and looks normal. "Read a file." "Call an API." "Make an HTTP request." Nothing is wrong on its own. The attack is the &lt;em&gt;order&lt;/em&gt; — retrieve poisoned content, then access a secret, then send data out. You cannot see it unless you have the whole chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The evidence is scattered and short-lived.&lt;/strong&gt; The pieces live in six or seven different systems: LLM invocation logs, tool execution traces, MCP server logs, vector-store retrieval logs, OAuth records, egress logs. Different teams own each one. Different retention windows delete each one. One documented 2026 incident produced roughly 17,600 agent actions in five days; the team's own postmortem called reconstructing it by hand "impractical."&lt;/p&gt;

&lt;p&gt;The key insight: the industry has mostly solved &lt;em&gt;recording&lt;/em&gt; agent activity (OpenTelemetry's GenAI conventions, MCP logging, tamper-evident audit logs). What nobody had was an automated way to &lt;em&gt;reconstruct&lt;/em&gt; what actually happened from that recorded evidence. That gap is what AgentTrace fills.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AgentTrace does
&lt;/h2&gt;

&lt;p&gt;AgentTrace is the investigation layer that sits downstream of the recorders. Point it at your evidence, and it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ingests 7 evidence sources&lt;/strong&gt; into one normalized schema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verifies integrity + chain of custody&lt;/strong&gt; — hash-chain verification, gap and witness-anchor detection, HMAC-signed manifests, and a tamper-evident custody ledger.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reconstructs the causal attack chain&lt;/strong&gt; across fragmented logs (timeline + provenance-style causal graph).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detects 6 attack patterns&lt;/strong&gt;, each mapped to a &lt;strong&gt;MITRE ATLAS&lt;/strong&gt; technique and linked to the exact evidence: prompt injection via retrieval, exfiltration via tool chaining, OAuth/credential-theft chains, sub-agent hijack, memory poisoning, tool-permission escalation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Builds kill-chain narratives and a 0–100 risk score.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Produces reports&lt;/strong&gt; in JSON, Markdown, and self-contained offline HTML (with an SVG causal graph), including an &lt;strong&gt;EU AI Act Article 12&lt;/strong&gt; coverage section.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exports portable, signed case bundles&lt;/strong&gt; for air-gapped transfer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Two design choices I won't compromise on
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No AI/ML in the detection path.&lt;/strong&gt; Every finding is deterministic and traces back to concrete evidence. A forensic tool has to be explainable — a model that says "I think this is an attack" does not survive a review, an audit, or a courtroom.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local-first, zero dependencies.&lt;/strong&gt; It runs fully offline on the Python standard library alone. No cloud, no account, no API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like in practice
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;agentdfir

&lt;span class="c"&gt;# What happened? Any known attack patterns?&lt;/span&gt;
agenttrace detect logs/&lt;span class="k"&gt;*&lt;/span&gt;.json logs/&lt;span class="k"&gt;*&lt;/span&gt;.jsonl

&lt;span class="c"&gt;# Is the evidence trustworthy — altered or missing?&lt;/span&gt;
agenttrace verify logs/&lt;span class="k"&gt;*&lt;/span&gt;.jsonl &lt;span class="nt"&gt;--signing-key&lt;/span&gt; &lt;span class="s2"&gt;"case-key"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--case-number&lt;/span&gt; &lt;span class="s2"&gt;"IR-2026-0042"&lt;/span&gt; &lt;span class="nt"&gt;--case-officer&lt;/span&gt; &lt;span class="s2"&gt;"A. Analyst"&lt;/span&gt;

&lt;span class="c"&gt;# Produce a report for management / legal / a regulator&lt;/span&gt;
agenttrace report logs/&lt;span class="k"&gt;*&lt;/span&gt;.json logs/&lt;span class="k"&gt;*&lt;/span&gt;.jsonl &lt;span class="nt"&gt;--html-out&lt;/span&gt; report.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On a synthetic multi-source incident, &lt;code&gt;detect&lt;/code&gt; surfaces things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[CRITICAL] exfiltration_via_tool_chaining — 25 calls to 'crm_export' in 48s,
           monotonically increasing offsets  (MITRE ATLAS AML.T0057)
[CRITICAL] oauth_credential_theft_chain    — credential access -&amp;gt; rapid egress
[HIGH]     prompt_injection_via_retrieval  — poisoned chunk -&amp;gt; new sensitive tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each finding links to the exact events behind it, and the HTML report renders the whole story as a causal graph: poisoned document entered context → agent behavior shifted → credentials accessed → data left the building.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chain of custody, everywhere
&lt;/h2&gt;

&lt;p&gt;Forensic output is only useful if it holds up. Every stage — acquisition, verification, analysis, reporting, export, transfer — is written to a tamper-evident, hash-chained ledger attributed to a case officer, with tool version and timestamps. Reports and manifests are cryptographically bound to the exact evidence they were built from.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PyPI:&lt;/strong&gt; &lt;code&gt;pip install agentdfir&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/piyush295/agenttrace" rel="noopener noreferrer"&gt;https://github.com/piyush295/agenttrace&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Apache-2.0, offline, dependency-free.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd genuinely value feedback from anyone doing incident response on agentic systems — especially on the detection heuristics and which additional evidence sources are worth supporting next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authorized, defensive use only.&lt;/strong&gt; AgentTrace analyzes evidence you are authorized to investigate; it is not an attack or surveillance tool.&lt;/p&gt;

</description>
      <category>aisecurity</category>
      <category>dfir</category>
      <category>security</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
