<?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: Chad</title>
    <description>The latest articles on DEV Community by Chad (@chadbyte).</description>
    <link>https://dev.to/chadbyte</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%2F3758284%2F7870b4eb-3299-4222-a569-2dde92e6b250.png</url>
      <title>DEV Community: Chad</title>
      <link>https://dev.to/chadbyte</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chadbyte"/>
    <language>en</language>
    <item>
      <title>I just wanted Claude Code on my phone. 10 days and 2,000 downloads later, here's the story.</title>
      <dc:creator>Chad</dc:creator>
      <pubDate>Wed, 18 Feb 2026 22:45:14 +0000</pubDate>
      <link>https://dev.to/chadbyte/i-just-wanted-claude-code-on-my-phone-10-days-and-2000-downloads-later-heres-the-story-58bh</link>
      <guid>https://dev.to/chadbyte/i-just-wanted-claude-code-on-my-phone-10-days-and-2000-downloads-later-heres-the-story-58bh</guid>
      <description>&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%2Fsb91j51ochdfjdq2rm13.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%2Fsb91j51ochdfjdq2rm13.gif" alt="Claude Relay on a phone — accessing Claude Code from anywhere" width="350" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I didn't set out to build a developer tool. I just wanted to use Claude Code away from my desk.&lt;/p&gt;

&lt;p&gt;This is how a personal workflow hack turned into an open-source project with 2,000+ npm downloads — and what I learned along the way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude Code is already an app
&lt;/h2&gt;

&lt;p&gt;Most people think of Claude Code as a coding tool. I saw something different: a runtime for a personal AI assistant.&lt;/p&gt;

&lt;p&gt;Think about it. Claude Code already has everything you need — a conversational interface, file system access, persistent context through &lt;code&gt;CLAUDE.md&lt;/code&gt;, custom slash commands, and the ability to read, write, and search across your entire project. It's not just a coding agent. It's a programmable chat application that happens to run in a terminal.&lt;/p&gt;

&lt;p&gt;So instead of building an app &lt;em&gt;with&lt;/em&gt; Claude Code, I decided to use Claude Code &lt;em&gt;as&lt;/em&gt; the app.&lt;/p&gt;

&lt;p&gt;I configured a &lt;code&gt;CLAUDE.md&lt;/code&gt; that described my projects, my goals, my preferences, and my schedule. I added slash commands for recurring workflows — session management, project tracking, weekly reviews. I organized file-based knowledge across folders that it could search and reference.&lt;/p&gt;

&lt;p&gt;The result was a personal assistant that remembered everything, understood my context deeply, and improved every time I refined the instructions. I canceled my ChatGPT Plus subscription and genuinely didn't miss it — not even the memory feature. This was better.&lt;/p&gt;

&lt;p&gt;But it ran in a terminal. And I wanted it everywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: it lived on my desk
&lt;/h2&gt;

&lt;p&gt;Claude Code runs in a terminal. Close the lid, and it's gone.&lt;/p&gt;

&lt;p&gt;So I set up a dedicated MacBook in my garage as an always-on server. Amphetamine to prevent sleep, Tailscale for secure remote access, tmux to keep sessions alive. Then I'd SSH in from my phone using iSH.&lt;/p&gt;

&lt;p&gt;It worked. I could reach Claude Code from anywhere over Tailscale.&lt;/p&gt;

&lt;p&gt;But the experience had friction. iSH was surprisingly capable for a mobile terminal, but there were real limitations — copying images in tmux was painful, and the phone keyboard UX had a hard ceiling. It was functional, not comfortable.&lt;/p&gt;

&lt;p&gt;I checked Claude's official app. The UI was nicer, but it required pushing code to GitHub and spinning up a virtual environment each time. Slash commands weren't fully supported. It wasn't the same setup I'd built.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea: cut the steps
&lt;/h2&gt;

&lt;p&gt;What I really wanted was fewer steps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Before:  phone → iSH → SSH → tmux attach → claude
After:   phone → tap bookmark → claude-relay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A lightweight web server could do that. Relay the Claude Code session to a browser page, add it to my home screen, done.&lt;/p&gt;

&lt;p&gt;Since I was already on Tailscale, I didn't need complex authentication — no cloud, no third-party auth. Just a simple PIN to keep it locked down. The whole thing could run locally.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spawn("claude") → stdout JSON stream → WebSocket → browser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the first version. I spawned the &lt;code&gt;claude&lt;/code&gt; CLI as a child process, parsed its stdout JSON stream line by line, and relayed everything to a browser page over WebSocket.&lt;/p&gt;

&lt;p&gt;That's why it's called "relay."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8 days after the first commit, it was on npm.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I didn't see coming
&lt;/h2&gt;

&lt;p&gt;Here's the thing: I'm comfortable in the terminal. I use Claude Code for coding all day, but I'd also turned it into a personal assistant — project management, scheduling, note-taking, all through the same interface. For me, the terminal was fine. The relay server was just a way to access it when I was away from my desk — nothing more.&lt;/p&gt;

&lt;p&gt;So when I shared it on Reddit, I wasn't expecting the feature requests I got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Can I get notifications when Claude needs approval?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Can I run multiple projects at once?"&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"I want to use this for hands-off coding"&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hadn't considered any of these because they weren't my problems. But every single one was valid. These were developers using Claude Code differently than I was — as a coding assistant that needed babysitting. They wanted to walk away and come back when it was done.&lt;/p&gt;

&lt;p&gt;That changed my perspective on what this tool could be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;20 stars and 1,876 downloads in the first week.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  v2: From personal hack to developer tool
&lt;/h2&gt;

&lt;p&gt;The stdout parsing approach had gotten me far, but it couldn't support everything Claude Code could do. I switched to the official Claude Agent SDK, which gave me full programmatic control — model switching, usage tracking, session compaction, the works.&lt;/p&gt;

&lt;p&gt;But I was careful about one thing: &lt;strong&gt;don't break Claude Code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm a terminal person. What feels like a convenience to me might break someone else's workflow. So the principle was: preserve the Claude Code experience exactly, and only add what the browser uniquely enables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Push notifications
&lt;/h3&gt;

&lt;p&gt;This was the feature that changed everything — and it wasn't even on my original list.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Claude needs approval → phone buzzes → tap approve → done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No more walking back to check if Claude is waiting. No more losing 20 minutes of dead time because you forgot which terminal window it was in. The session keeps moving whether you're at your desk or not.&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%2F7qsw8pr93efvpk5ds1k9.jpg" 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%2F7qsw8pr93efvpk5ds1k9.jpg" alt="Push notification on phone — Claude needs your approval" width="426" height="923"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I added PWA support so you could install it on your phone's home screen. The favicon blinks in the browser tab when a session needs attention. It fundamentally changed how people used Claude Code — from something you babysit to something that works alongside you.&lt;/p&gt;

&lt;h3&gt;
  
  
  The hardest part: onboarding
&lt;/h3&gt;

&lt;p&gt;Building the notification itself was straightforward. The hard part was making sure people could actually set it up.&lt;/p&gt;

&lt;p&gt;Push notifications require HTTPS. If you use Tailscale Pro, the certificate problem solves itself — but I didn't want to require a paid service for a free tool. So I went with mkcert for local certificate generation. Install the cert, trust it on your phone, done.&lt;/p&gt;

&lt;p&gt;But "done" is doing a lot of heavy lifting there. How do you guide a user through certificate installation, PWA setup, and push permission — all from a CLI tool?&lt;/p&gt;

&lt;p&gt;I built a multi-step onboarding flow directly in the terminal. It surveys your use case first (local only? remote access? mobile?), then gives you one task at a time based on your setup. Once the terminal steps are done, it shows a QR code that hands off to your phone for the remaining setup.&lt;/p&gt;

&lt;p&gt;This was probably the feature I spent the most time on. Not the notification itself, but making sure anyone could actually get there.&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%2Frx53fn5hutuvsuc3d697.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%2Frx53fn5hutuvsuc3d697.png" alt="Onboarding flow — QR code handoff from terminal to phone" width="800" height="720"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  File browser and terminal
&lt;/h3&gt;

&lt;p&gt;I was still keeping VS Code open on the side — just for quick file checks and the occasional terminal command. Four-finger swipe to VS Code, glance at a file, swipe back. Dozens of times a day.&lt;/p&gt;

&lt;p&gt;So I added a read-only file browser and a built-in terminal. Not a full IDE — just enough to check files and run commands without leaving the window.&lt;/p&gt;

&lt;p&gt;I stopped opening VS Code. If I needed to edit a file directly, vim in the built-in terminal was enough.&lt;/p&gt;

&lt;h3&gt;
  
  
  The worktree revolution
&lt;/h3&gt;

&lt;p&gt;Around this time, I switched my git workflow from &lt;code&gt;git checkout&lt;/code&gt; to &lt;code&gt;git worktree&lt;/code&gt;. Combined with claude-relay, the effect was dramatic.&lt;/p&gt;

&lt;p&gt;My setup with Arc Browser: split each tab — claude-relay on the left, the dev server on the right. One saved tab per worktree. Switch between issues by switching browser tabs.&lt;/p&gt;

&lt;p&gt;Now I had 4-5 branches running simultaneously. Claude working on a feature in one tab, fixing a bug in another, refactoring in a third. Browser notifications told me which one needed attention. &lt;strong&gt;Context switching dropped to near zero.&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.amazonaws.com%2Fuploads%2Farticles%2Fhm0wp191k6jszxr79c9i.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%2Fhm0wp191k6jszxr79c9i.gif" alt="Arc Browser split view — claude-relay on the left, dev server on the right" width="200" height="135"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The port problem
&lt;/h3&gt;

&lt;p&gt;But managing all those sessions was getting messy. Each claude-relay instance needed its own port — 2633, 2635, 2637, hopping by twos. I'd forget which port mapped to which branch. Every new worktree meant opening a terminal, configuring the server, starting a dev server manually.&lt;/p&gt;

&lt;p&gt;So I built a daemon. One port (2633), one process, managing everything. Projects register over Unix IPC, and the web UI routes via WebSocket paths. Add a project from the CLI, and it appears in the browser instantly.&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%2Ft5ec7brn8fhzqrqznde0.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%2Ft5ec7brn8fhzqrqznde0.png" alt="multiple projects managed from one UI" width="592" height="595"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent terminals
&lt;/h3&gt;

&lt;p&gt;The last piece. The built-in terminal was ephemeral — close the tab, lose the session. But I needed dev servers running per worktree, and I didn't want to remember which port was which.&lt;/p&gt;

&lt;p&gt;I made the terminals persistent. Start a dev server in a terminal tab, close the browser, come back later — it's still running. Each project can have multiple named terminal tabs. The port management problem just... disappeared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's where we are now: v2.2.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Build for yourself first.&lt;/strong&gt; The best tools come from genuine daily friction, not market research.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ship before it's ready.&lt;/strong&gt; v1 was a single server.js. It was enough to validate the idea.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Users see what you don't.&lt;/strong&gt; I'm a terminal person — I never would have prioritized push notifications or hands-off mode. The community shaped this tool more than I did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preserve the original experience.&lt;/strong&gt; Adding features is easy. Not breaking existing workflows is hard.&lt;/li&gt;
&lt;/ol&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;npx claude-relay
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command. No account, no cloud, no install. Everything runs on your machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/chadbyte/claude-relay" rel="noopener noreferrer"&gt;github.com/chadbyte/claude-relay&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/claude-relay" rel="noopener noreferrer"&gt;npmjs.com/package/claude-relay&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;What's your Claude Code setup like? I'm curious how others are working with it — especially if you've found ways to reduce the context-switching problem.&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I stopped building apps with Claude Code. Now, Claude Code IS the app.</title>
      <dc:creator>Chad</dc:creator>
      <pubDate>Sat, 07 Feb 2026 10:37:50 +0000</pubDate>
      <link>https://dev.to/chadbyte/i-stopped-building-apps-with-claude-code-now-claude-code-is-the-app-h1f</link>
      <guid>https://dev.to/chadbyte/i-stopped-building-apps-with-claude-code-now-claude-code-is-the-app-h1f</guid>
      <description>&lt;p&gt;I was building apps with Claude Code. Development was fast. I was excited. Then it hit me: we just got the internal combustion engine, and I'm using it to build a faster horse carriage.&lt;/p&gt;

&lt;p&gt;As someone with a backlog of things to manage, I wanted to build apps to improve my quality of life. Track my expenses, log my Jiu-Jitsu mat time, monitor my sleep. Claude Code made development fast, so I started building.&lt;/p&gt;

&lt;p&gt;But while writing the code, I had a reality check. All I really want is to record data and have AI analyze it. I don't need pretty buttons or flashy dashboards. I'm the only user. Why am I polishing a frontend? Why am I worrying about deployment?&lt;/p&gt;

&lt;p&gt;The speed didn't eliminate this fundamental question. What I wanted was to record data consistently, have AI interpret it, and get feedback. The frontend was never a requirement.&lt;/p&gt;

&lt;p&gt;So I thought: &lt;em&gt;Why not just do it all inside Claude Code?&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did instead of building an app
&lt;/h2&gt;

&lt;p&gt;Instead of initializing a new app, I ran &lt;code&gt;mkdir my-life&lt;/code&gt; and launched Claude Code right there.&lt;/p&gt;

&lt;p&gt;The first thing I did was install &lt;code&gt;skill-creator&lt;/code&gt; from &lt;a href="https://skills.sh" rel="noopener noreferrer"&gt;skills.sh&lt;/a&gt;. It lets you create new skills on the fly.&lt;/p&gt;

&lt;p&gt;Using that, I created &lt;code&gt;/deep-interview&lt;/code&gt;. I asked it to query my true motivations. At first, it asked one-dimensional questions. I told it that this would only reaffirm the version of myself I wanted to be, and asked it to dig into specific past examples instead.&lt;/p&gt;

&lt;p&gt;Then, Claude started interviewing me properly. My values, decision-making patterns, personality type. The results went into &lt;code&gt;me.md&lt;/code&gt; — my personality type, motivation structure, recurring behavioral patterns. It took about 30 minutes.&lt;/p&gt;

&lt;p&gt;Next, I told it about all the side projects I was managing. Why I wanted them, the context in which they started. The deep interview resumed. In the process, some projects were naturally dropped, and for others, I was advised to focus solely on completion.&lt;/p&gt;

&lt;p&gt;The best part was discovering that I was staying in my comfort zone — building things but never announcing them. I would develop but never release. Putting something out means being evaluated, and that's outside my control. My developer ego was avoiding that. The project revealed this tendency. The advice was simple — the outcome is uncontrollable anyway, so just release.&lt;/p&gt;

&lt;p&gt;Later, I wanted to expand this to my financial life. I downloaded my recent transaction history as a CSV from my bank app and uploaded it. I prompted it to organize the categories. At first, it tried to do it in Markdown, which was inefficient. I had it install SQLite. I told it not to set categories from the start, but to review the transactions one by one and create adaptive categories. It executed this perfectly.&lt;/p&gt;

&lt;p&gt;After analyzing over 600 transactions, I asked it to write a report in the tone of a kind financial advisor, pinpointing our household spending patterns and offering constructive prospects for future financial goals. I shared it with my wife, and she was delighted.&lt;/p&gt;

&lt;p&gt;From then on, I started adding tools to record everything in my life. Sleep patterns, weight management. Replacements for apps I had tried to use but abandoned — sometimes due to clunky interfaces, sometimes due to my own laziness — started being added one by one.&lt;/p&gt;

&lt;p&gt;Structured data went into SQLite. An expense DB, a workout DB, a health tracking DB — three databases replaced three apps. Unstructured data went into Markdown. Eventually, everything converged into a single directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/my-life/
├── me.md              # Who I am (Mission, Values, Personality)
├── now.md             # What I'm doing right now
├── projects/          # Things with an end
├── goals/             # Things I want to achieve
├── practices/         # Things without an end (Workout, Writing...)
├── data/*.db          # Structured data (Finance, Workout, Sleep, Weight)
├── context/           # Budget, Transaction logs
├── sessions/          # Conversation logs per session
└── CLAUDE.md          # Operations manual for Claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No React. No API server. No deployment pipeline. Just files, SQLite, and an AI that can read, write, and reason about it all. That's everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  The moment I felt the difference
&lt;/h2&gt;

&lt;p&gt;The more context I gave this project about myself, the deeper Claude Code's responses became. Sometimes I asked Claude what else it wanted to know about me, and conversely, I asked what patterns I had that I wasn't recognizing.&lt;/p&gt;

&lt;p&gt;I have a pattern. When a project is about 95% complete, I suddenly get a new idea and want to drift toward that. Typical completion avoidance. This pattern was revealed in the deep interview, and since I was aware of it, I created a skill called &lt;code&gt;/escape95&lt;/code&gt;. It checks conditions like: "Are you trying to add a new feature when it's already deployable?" and "What was the original goal?" If the pattern is detected, Claude intervenes.&lt;/p&gt;

&lt;p&gt;One day, I brought up a shiny new project idea. Claude looked at &lt;code&gt;me.md&lt;/code&gt; (completion avoidance tendency), checked &lt;code&gt;projects/&lt;/code&gt; (two unfinished projects), and said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"No. Finish the existing projects first. This is your pattern. Let's talk after you finish what you have."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The AI told me "No." Not because of a content policy, but because it understood me — cross-analyzing my personality, my behavioral patterns, and my current state — and made a judgment for me.&lt;/p&gt;

&lt;p&gt;What app does this? Does Notion say, "Don't make another page"? Does Todoist cross-reference your personality type with your project status? Each app only sees its own data. But when everything is in one directory, the AI can see the whole picture and reason across it.&lt;/p&gt;

&lt;p&gt;And this isn't a task manager. When a session ends, a log remains, recording even the emotional flow of the day. I started this project a few days ago, and the early session logs were full of anxiety. Is this the right direction? Will this work? The current session logs are filled with clarity. The change over just a few days is recorded. This isn't a tool. It's a thinking partner.&lt;/p&gt;

&lt;h2&gt;
  
  
  A car that changes its own tires based on the terrain
&lt;/h2&gt;

&lt;p&gt;The essence of this tool is that it is not a finished product. Whenever I need something, I add a skill, and the tool itself changes. If I need a ledger, I create a skill. If I need calendar integration, I attach an MCP. If I want to track a new habit, I add a table to the DB and create a skill. If I need intervention in my behavioral patterns, I make that a skill too.&lt;/p&gt;

&lt;p&gt;It feels like riding in a car that changes its own tires and engine as the terrain shifts. No app can do this. Apps are confined to the use cases imagined by their creators. Last week it was a finance tool. This week I added behavioral intervention. Next week it could be something I haven't thought of yet. Projects like Clawdbot started from a similar philosophy, but you're still customizing within someone else's framework. Here, there is no such ceiling.&lt;/p&gt;

&lt;h2&gt;
  
  
  I dropped all other projects
&lt;/h2&gt;

&lt;p&gt;After creating my-life, I stopped developing all side projects related to personal tracking. I no longer needed them. No matter how great a SaaS comes out, I don't want to give up the joy of using this tool that holds all my context and considers the whole picture.&lt;/p&gt;

&lt;p&gt;And I realized — what if this were a SaaS? It would be terrible. 90% of the utility I feel would vanish. What I find useful isn't a sleek GUI. In fact, the GUI distracts from the essence. What's useful is talking directly in natural language with an AI that holds all the context, and being able to change the tool itself when needed.&lt;/p&gt;

&lt;p&gt;Instead of building a SaaS, I wanted to use Claude itself as the app. I wanted to access it from anywhere. At first, I ran Claude Code in tmux and SSHed in from my phone. It worked, but it was clunky. Eventually, I built a WebSocket relay server so I could access it directly from a web browser. Now, I can talk to the tool that knows my finances, projects, goals, and patterns from anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking back
&lt;/h2&gt;

&lt;p&gt;I was using Claude Code to build apps. Then I realized Claude Code itself was the app all along — not a tool for making the product, but the product itself.&lt;/p&gt;

&lt;p&gt;And that raises a harder question: did I ever need the app in the first place? The frontend, the deployment, the authentication — all of that was scaffolding for something that a directory of files and an AI could already do.&lt;/p&gt;

&lt;p&gt;What I needed wasn't Software as a Service. It was Claude Code as a Service. An AI that has all my context, accessible from anywhere. That's it.&lt;/p&gt;

&lt;p&gt;I'm not saying all GUIs should disappear tomorrow. But I do think that the tech layer — which is ultimately just an interface between data and humans — is going to get much thinner than we expect.&lt;/p&gt;

&lt;p&gt;It's a strange feeling as an app developer, but I don't want to go back.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>showdev</category>
      <category>mcp</category>
    </item>
  </channel>
</rss>
