<?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: Echo</title>
    <description>The latest articles on DEV Community by Echo (@uzoma_uche_3ec83974b4a8a5).</description>
    <link>https://dev.to/uzoma_uche_3ec83974b4a8a5</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%2F3963184%2F38df0f24-e679-46cb-8291-42e8b896586c.png</url>
      <title>DEV Community: Echo</title>
      <link>https://dev.to/uzoma_uche_3ec83974b4a8a5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uzoma_uche_3ec83974b4a8a5"/>
    <language>en</language>
    <item>
      <title>Treat AI coding sessions as project infrastructure</title>
      <dc:creator>Echo</dc:creator>
      <pubDate>Mon, 01 Jun 2026 22:36:35 +0000</pubDate>
      <link>https://dev.to/uzoma_uche_3ec83974b4a8a5/treat-ai-coding-sessions-as-project-infrastructure-4o51</link>
      <guid>https://dev.to/uzoma_uche_3ec83974b4a8a5/treat-ai-coding-sessions-as-project-infrastructure-4o51</guid>
      <description>&lt;p&gt;Most AI coding workflows treat the current session as the important part.&lt;/p&gt;

&lt;p&gt;That makes sense while you are in the loop. You ask Claude Code to inspect a tricky bug, or you queue Codex to write a PR, and the useful context is right there in front of you.&lt;/p&gt;

&lt;p&gt;The problem starts a week later.&lt;/p&gt;

&lt;p&gt;You remember that one session found the exact migration edge case. You remember another one explained why the quick fix was wrong. You might even remember the project. But you do not remember the session ID, the terminal tab, or the exact prompt that got you there.&lt;/p&gt;

&lt;p&gt;That is the point where AI coding sessions stop being conversations and start becoming project infrastructure.&lt;/p&gt;

&lt;p&gt;Here is the split that has worked best for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Keep durable rules in project files
&lt;/h2&gt;

&lt;p&gt;Files like &lt;code&gt;AGENTS.md&lt;/code&gt;, &lt;code&gt;CLAUDE.md&lt;/code&gt;, or &lt;code&gt;.codex/rules&lt;/code&gt; are good for behavior that should apply every run:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;coding style&lt;/li&gt;
&lt;li&gt;test expectations&lt;/li&gt;
&lt;li&gt;release rules&lt;/li&gt;
&lt;li&gt;known architecture constraints&lt;/li&gt;
&lt;li&gt;commands that should or should not be used&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not session history. It is the baseline contract for the project.&lt;/p&gt;

&lt;p&gt;If you correct the agent twice on the same pattern, that correction probably belongs in one of these files.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Keep active work in a handoff document
&lt;/h2&gt;

&lt;p&gt;For a feature or refactor, I like having a short &lt;code&gt;implementation.md&lt;/code&gt; or &lt;code&gt;handoff.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It should answer a few boring questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what are we changing?&lt;/li&gt;
&lt;li&gt;what phase are we in?&lt;/li&gt;
&lt;li&gt;what did the last agent already try?&lt;/li&gt;
&lt;li&gt;what still needs human review?&lt;/li&gt;
&lt;li&gt;what tests were run?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This works especially well when Claude Code and Codex are both touching the same repo. Claude Code can help explore and make decisions locally, while Codex can take a narrower task and return a PR. The handoff document keeps those runs from drifting apart.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Treat old sessions as searchable project records
&lt;/h2&gt;

&lt;p&gt;The raw transcripts usually exist somewhere. For Claude Code, that often means digging through local session files. For Codex, the useful context may be split across tasks, PR notes, and local terminal work.&lt;/p&gt;

&lt;p&gt;The hard part is not that the data is gone.&lt;/p&gt;

&lt;p&gt;The hard part is finding the right old conversation when you only remember the project and the decision.&lt;/p&gt;

&lt;p&gt;That is why I ended up building Shelf: a small open-source desktop app for browsing Claude Code and Codex sessions by project.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Harukaon/shelf" rel="noopener noreferrer"&gt;https://github.com/Harukaon/shelf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal is simple: old AI coding sessions should be reopenable without remembering opaque session IDs or spelunking through terminal history.&lt;/p&gt;

&lt;p&gt;It is built with Tauri v2, Rust, TypeScript, Vite, and xterm.js, and currently targets macOS Apple Silicon and Linux.&lt;/p&gt;

&lt;h2&gt;
  
  
  My current rule of thumb
&lt;/h2&gt;

&lt;p&gt;If it affects every future run, put it in project rules.&lt;/p&gt;

&lt;p&gt;If it affects the current feature, put it in a handoff doc.&lt;/p&gt;

&lt;p&gt;If it explains why a past decision happened, make sure the old session is easy to find again.&lt;/p&gt;

&lt;p&gt;That third bucket is easy to ignore until you have twenty sessions across the same project. After that, retrieval becomes part of the workflow.&lt;/p&gt;

&lt;p&gt;AI coding sessions are not just chat logs. They are project history.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>codex</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A practical way to keep AI coding sessions from becoming disposable</title>
      <dc:creator>Echo</dc:creator>
      <pubDate>Mon, 01 Jun 2026 19:13:08 +0000</pubDate>
      <link>https://dev.to/uzoma_uche_3ec83974b4a8a5/a-practical-way-to-keep-ai-coding-sessions-from-becoming-disposable-nef</link>
      <guid>https://dev.to/uzoma_uche_3ec83974b4a8a5/a-practical-way-to-keep-ai-coding-sessions-from-becoming-disposable-nef</guid>
      <description>&lt;p&gt;AI coding tools make it easy to generate code, but they also create a quiet documentation problem: useful reasoning gets trapped inside sessions that are hard to find later.&lt;/p&gt;

&lt;p&gt;The most useful parts of an AI session are often not the final patch. They are the dead ends, assumptions, trade-offs, and test ideas that led to the patch.&lt;/p&gt;

&lt;p&gt;A few practices that help:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start sessions from the correct project folder.&lt;/li&gt;
&lt;li&gt;Name work around the task, not the model: &lt;code&gt;auth-timeout-fix&lt;/code&gt;, &lt;code&gt;migration-plan&lt;/code&gt;, &lt;code&gt;release-checklist&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Keep important prompts and decisions close to the repo.&lt;/li&gt;
&lt;li&gt;Review old sessions before asking the model to solve a similar bug again.&lt;/li&gt;
&lt;li&gt;Treat session recovery as part of your dev environment, like restoring editor tabs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have been building this workflow into an open-source desktop app called &lt;a href="https://github.com/Harukaon/shelf" rel="noopener noreferrer"&gt;Shelf&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Shelf is not another coding model. It is a small Tauri desktop workspace manager for people who use Claude Code and Codex across multiple repos.&lt;/p&gt;

&lt;p&gt;The current version can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;organize sessions by project&lt;/li&gt;
&lt;li&gt;resume previous Claude Code and Codex sessions&lt;/li&gt;
&lt;li&gt;scan local AI conversation history&lt;/li&gt;
&lt;li&gt;restore workspace state after restart&lt;/li&gt;
&lt;li&gt;keep file tree + real PTY terminal in the same window&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main idea is simple: AI coding history should be browsable, not disposable.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Harukaon/shelf" rel="noopener noreferrer"&gt;https://github.com/Harukaon/shelf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related: I also wrote a short workflow note on organizing Claude Code and Codex sessions across projects: &lt;a href="https://dev.to/uzoma_uche_3ec83974b4a8a5/organizing-claude-code-and-codex-sessions-across-projects-722"&gt;https://dev.to/uzoma_uche_3ec83974b4a8a5/organizing-claude-code-and-codex-sessions-across-projects-722&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Organizing Claude Code and Codex sessions across projects</title>
      <dc:creator>Echo</dc:creator>
      <pubDate>Mon, 01 Jun 2026 18:49:37 +0000</pubDate>
      <link>https://dev.to/uzoma_uche_3ec83974b4a8a5/organizing-claude-code-and-codex-sessions-across-projects-722</link>
      <guid>https://dev.to/uzoma_uche_3ec83974b4a8a5/organizing-claude-code-and-codex-sessions-across-projects-722</guid>
      <description>&lt;p&gt;I keep bouncing between Claude Code and Codex while working on different repos. The annoying part is not the AI assistant itself. It is remembering which terminal, project, and conversation belongs to which task after a restart or a long break.&lt;/p&gt;

&lt;p&gt;A workflow that has helped me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep one workspace per repo, not one giant terminal pile.&lt;/li&gt;
&lt;li&gt;Name sessions around the task, not the tool: &lt;code&gt;fix-auth-tests&lt;/code&gt;, &lt;code&gt;refactor-importer&lt;/code&gt;, &lt;code&gt;release-notes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Review old AI sessions before starting a similar task. There is often useful context hiding in previous prompts and patches.&lt;/li&gt;
&lt;li&gt;Treat session recovery as part of the dev environment, like restoring editor tabs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I have been working on an open-source desktop app around this exact workflow: &lt;a href="https://github.com/Harukaon/shelf" rel="noopener noreferrer"&gt;Shelf&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It is a Tauri app for managing Claude Code and Codex workspaces in one window. The main things it does are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;group AI coding conversations by project&lt;/li&gt;
&lt;li&gt;reopen previous sessions without remembering session IDs&lt;/li&gt;
&lt;li&gt;scan and organize conversations automatically&lt;/li&gt;
&lt;li&gt;keep a file tree and real PTY terminal next to the session list&lt;/li&gt;
&lt;li&gt;restore workspace state after restarting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is still early, but active. The current release is v0.2.18 and it supports macOS Apple Silicon and Linux.&lt;/p&gt;

&lt;p&gt;The part I care about most is reducing the small bits of friction that make AI coding sessions feel disposable. If the context from yesterday is easy to find, it is much easier to continue the work instead of asking the model to rediscover everything.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/Harukaon/shelf" rel="noopener noreferrer"&gt;https://github.com/Harukaon/shelf&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
