<?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: tomoyaf</title>
    <description>The latest articles on DEV Community by tomoyaf (@tomoyaf).</description>
    <link>https://dev.to/tomoyaf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F74156%2F89121a75-8f4b-444b-98f9-8f77dd72b906.jpeg</url>
      <title>DEV Community: tomoyaf</title>
      <link>https://dev.to/tomoyaf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tomoyaf"/>
    <language>en</language>
    <item>
      <title>I Built a Tool That Lets Claude Read My Terminal Logs — Here's Why You Need One Too</title>
      <dc:creator>tomoyaf</dc:creator>
      <pubDate>Mon, 09 Feb 2026 16:48:15 +0000</pubDate>
      <link>https://dev.to/tomoyaf/i-built-a-tool-that-lets-claude-read-my-terminal-logs-heres-why-you-need-one-too-3pi</link>
      <guid>https://dev.to/tomoyaf/i-built-a-tool-that-lets-claude-read-my-terminal-logs-heres-why-you-need-one-too-3pi</guid>
      <description>&lt;p&gt;We're living in the golden age of AI-assisted coding.&lt;/p&gt;

&lt;p&gt;Claude can refactor your functions. Copilot can write your tests. Cursor can navigate your entire codebase.&lt;/p&gt;

&lt;p&gt;But ask any of them: &lt;em&gt;"What was that error I saw 5 minutes ago?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Silence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI can read your code. But it's completely blind to your runtime.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the problem I solved with &lt;strong&gt;&lt;a href="https://github.com/tomoyaf/logifai" rel="noopener noreferrer"&gt;logifai&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Moment I Knew I Had to Build This
&lt;/h2&gt;

&lt;p&gt;I was debugging a race condition. The bug appeared maybe once every 50 requests — completely random.&lt;/p&gt;

&lt;p&gt;After 2 hours of watching logs scroll by, I finally caught it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ERROR] Connection timeout: pool exhausted after 30000ms
        at ConnectionPool.acquire (lib/pool.js:142:15)
        at async QueryRunner.connect (lib/runner.js:87:21)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I immediately asked Claude: &lt;em&gt;"Can you help me fix this connection pool exhaustion?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Claude asked: &lt;em&gt;"Can you show me the error message and stack trace?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I scrolled up. And up. And up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gone.&lt;/strong&gt; Swallowed by 10,000 lines of HTTP request logs.&lt;/p&gt;

&lt;p&gt;I spent the next 20 minutes trying to reproduce the error, just so I could copy-paste it.&lt;/p&gt;

&lt;p&gt;That night, I started building logifai.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is logifai?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;logifai&lt;/strong&gt; is a zero-dependency CLI tool that:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;📥 &lt;strong&gt;Captures&lt;/strong&gt; your terminal output via pipe&lt;/li&gt;
&lt;li&gt;🔄 &lt;strong&gt;Normalizes&lt;/strong&gt; logs into a consistent format&lt;/li&gt;
&lt;li&gt;🔒 &lt;strong&gt;Redacts&lt;/strong&gt; secrets automatically (API keys, tokens, passwords)&lt;/li&gt;
&lt;li&gt;🌐 &lt;strong&gt;Serves&lt;/strong&gt; a real-time Web UI&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Integrates&lt;/strong&gt; with Claude Code via a Skill&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One line changes your debugging workflow forever:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev 2&amp;gt;&amp;amp;1 | logifai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Every log is now searchable by AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  See It In Action
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Pipe Your Command
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;npm run dev 2&amp;gt;&amp;amp;1 | logifai

📡 logifai v0.1.0
📁 Session: a1b2c3d4
🌐 Web UI: http://localhost:3100
⏳ Capturing stdin...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Errors Happen (They Always Do)
&lt;/h3&gt;

&lt;p&gt;Your app crashes. A stack trace flies by at 100 lines per second.&lt;/p&gt;

&lt;p&gt;Normally, you'd panic-scroll or pray your terminal buffer is big enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not anymore.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Ask Claude
&lt;/h3&gt;

&lt;p&gt;With the Claude Code Skill installed, just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; What errors happened in my last session?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude:&lt;/strong&gt; I found 3 errors in session &lt;code&gt;a1b2c3d4&lt;/code&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Line 142:&lt;/strong&gt; &lt;code&gt;TypeError: Cannot read property 'id' of undefined&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Location: &lt;code&gt;src/api/users.ts:47&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Line 287:&lt;/strong&gt; &lt;code&gt;ECONNREFUSED 127.0.0.1:5432&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PostgreSQL connection failed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Line 512:&lt;/strong&gt; &lt;code&gt;JsonWebTokenError: jwt malformed&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication middleware rejected the token&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Want me to investigate any of these?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Claude now sees what your terminal saw.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Web UI
&lt;/h2&gt;

&lt;p&gt;logifai automatically opens a Web UI at &lt;code&gt;http://localhost:3100&lt;/code&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Live streaming&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Logs appear in real-time via Server-Sent Events&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Level filtering&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toggle ERROR / WARN / INFO / DEBUG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Keyword search&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Find specific messages instantly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Line references&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Click any line to copy a &lt;code&gt;logifai://&lt;/code&gt; URI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Shift+click&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Select a range of lines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No React. No npm install. No webpack. Just HTML served from a single TypeScript file.&lt;/p&gt;




&lt;h2&gt;
  
  
  Log References: Share Exact Lines
&lt;/h2&gt;

&lt;p&gt;Every session gets a unique ID. Every line gets a number.&lt;/p&gt;

&lt;p&gt;This creates precise, shareable references:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;logifai://a1b2c3d4:142-150
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Translation: &lt;em&gt;"Session a1b2c3d4, lines 142 through 150"&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What You Can Do With References
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;In your terminal:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;logifai show logifai://a1b2c3d4:142-150

142: &lt;span class="o"&gt;[&lt;/span&gt;ERROR] Connection refused
143:     at Socket.connect &lt;span class="o"&gt;(&lt;/span&gt;net.js:1141:16&lt;span class="o"&gt;)&lt;/span&gt;
144:     at DBClient.connect &lt;span class="o"&gt;(&lt;/span&gt;client.js:89:12&lt;span class="o"&gt;)&lt;/span&gt;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In GitHub issues:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The error occurs at &lt;code&gt;logifai://a1b2c3d4:142&lt;/code&gt;. See attached logs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;With Claude:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Explain this error: &lt;code&gt;logifai://a1b2c3d4:142-150&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Automatic Secret Redaction
&lt;/h2&gt;

&lt;p&gt;Logs leak secrets. It happens to everyone.&lt;/p&gt;

&lt;p&gt;logifai automatically detects and redacts sensitive data:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pattern&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;AWS Keys&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AKIAIOSFODNN7EXAMPLE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[AWS_KEY]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI Keys&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sk-proj-abc123def456...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[API_KEY]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bearer Tokens&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Bearer eyJhbGciOiJ...&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Bearer [TOKEN]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database URLs&lt;/td&gt;
&lt;td&gt;&lt;code&gt;postgres://user:secret@host&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;postgres://user:[REDACTED]@host&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private Keys&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-----BEGIN RSA PRIVATE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;[PRIVATE_KEY]&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Your logs never leave your machine.&lt;/strong&gt; No cloud. No telemetry. No tracking.&lt;/p&gt;

&lt;p&gt;Storage location: &lt;code&gt;~/.local/state/logifai/logs/&lt;/code&gt; (permissions: 600)&lt;/p&gt;




&lt;h2&gt;
  
  
  The Normalizer: Order From Chaos
&lt;/h2&gt;

&lt;p&gt;Different tools log differently. logifai normalizes them all:&lt;/p&gt;

&lt;h3&gt;
  
  
  Input (Raw log)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2024-01-15 10:23:45 ERROR Failed to connect
    at Database.connect (db.js:42)
    at Server.start (server.js:15)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Output (NDJSON)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2024-01-15T10:23:45.000Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"level"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ERROR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Failed to connect"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stack"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"at Database.connect (db.js:42)&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    at Server.start (server.js:15)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"session_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a1b2c3d4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"git_branch"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"feature/auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"git_commit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"7f3a2b1"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Supported Formats
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON&lt;/strong&gt; — pino, winston, bunyan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-line stack traces&lt;/strong&gt; — automatically grouped with their errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log levels&lt;/strong&gt; — inferred from keywords when not explicit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timestamps&lt;/strong&gt; — ISO 8601, Unix epoch, RFC 3339&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common formats&lt;/strong&gt; — Apache CLF, Syslog, nginx&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  One-Line Install (macOS / Linux)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/fujitatomoya/logifai/main/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detects your OS and CPU architecture&lt;/li&gt;
&lt;li&gt;Downloads the correct binary from GitHub Releases&lt;/li&gt;
&lt;li&gt;Verifies SHA256 checksum&lt;/li&gt;
&lt;li&gt;Installs to &lt;code&gt;~/.local/bin/&lt;/code&gt; and updates your PATH&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Alternative: npm
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; logifai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Enable Claude Code Integration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;logifai install-skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This installs the Skill to &lt;code&gt;~/.claude/skills/logifai/&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why These Technical Choices?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Zero runtime dependencies&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No &lt;code&gt;node_modules&lt;/code&gt;. No supply chain attacks. ~20MB binary.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bun compile&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Single executable. No Node.js required on target machine.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NDJSON storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stream-friendly. Grep-able. No database setup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Server-Sent Events&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Simpler than WebSockets. Works through corporate proxies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embedded HTML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No build step. The UI is a template string in TypeScript.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;XDG Base Directory&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Respects &lt;code&gt;~/.local/state&lt;/code&gt;, &lt;code&gt;~/.config&lt;/code&gt;, &lt;code&gt;~/.cache&lt;/code&gt; conventions.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The entire codebase uses only Node.js built-ins: &lt;code&gt;node:fs&lt;/code&gt;, &lt;code&gt;node:http&lt;/code&gt;, &lt;code&gt;node:test&lt;/code&gt;, etc.&lt;/p&gt;




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

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;What's Included&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Complete&lt;/td&gt;
&lt;td&gt;Pipe capture, Web UI, Claude Skill, auto-redaction, &lt;code&gt;show&lt;/code&gt; command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;🚧 In Progress&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;logifai exec npm run dev&lt;/code&gt; — wrap commands, preserve colors and TTY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;📋 Planned&lt;/td&gt;
&lt;td&gt;SQLite FTS5 for millisecond full-text search across all sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;💭 Exploring&lt;/td&gt;
&lt;td&gt;MCP server protocol, semantic search, anomaly detection&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Get Started in 60 Seconds
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Install logifai&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/fujitatomoya/logifai/main/install.sh | bash

&lt;span class="c"&gt;# 2. Capture your dev server&lt;/span&gt;
npm run dev 2&amp;gt;&amp;amp;1 | logifai

&lt;span class="c"&gt;# 3. Open the Web UI&lt;/span&gt;
&lt;span class="c"&gt;# → http://localhost:3100&lt;/span&gt;

&lt;span class="c"&gt;# 4. Install Claude Code integration&lt;/span&gt;
logifai install-skill

&lt;span class="c"&gt;# 5. Ask Claude about your logs&lt;/span&gt;
&lt;span class="c"&gt;# → "What errors happened in my last session?"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/fujitatomoya/logifai" rel="noopener noreferrer"&gt;github.com/fujitatomoya/logifai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues &amp;amp; Feedback:&lt;/strong&gt; &lt;a href="https://github.com/fujitatomoya/logifai/issues" rel="noopener noreferrer"&gt;github.com/fujitatomoya/logifai/issues&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If logifai saves you from scrolling through logs even once, consider giving it a ⭐ on GitHub.&lt;/p&gt;

&lt;p&gt;And if you've ever lost a stack trace to terminal buffer overflow, share this with a friend. They'll thank you.&lt;/p&gt;




</description>
      <category>ai</category>
      <category>programming</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
