<?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: Vladislav Ramazaev</title>
    <description>The latest articles on DEV Community by Vladislav Ramazaev (@vladar107).</description>
    <link>https://dev.to/vladar107</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%2F4001141%2Fbebe3d69-a81a-4eb3-8926-ba48d36365d1.jpg</url>
      <title>DEV Community: Vladislav Ramazaev</title>
      <link>https://dev.to/vladar107</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladar107"/>
    <language>en</language>
    <item>
      <title>Claude Is Bad at Searching Its Own Memory</title>
      <dc:creator>Vladislav Ramazaev</dc:creator>
      <pubDate>Wed, 08 Jul 2026 12:19:09 +0000</pubDate>
      <link>https://dev.to/vladar107/claude-is-bad-at-searching-its-own-memory-4307</link>
      <guid>https://dev.to/vladar107/claude-is-bad-at-searching-its-own-memory-4307</guid>
      <description>&lt;p&gt;I had what sounded like a simple request: ask Claude Code questions about work I had already done with Claude Code.&lt;/p&gt;

&lt;p&gt;The answers were all somewhere on disk. Claude Code stores local transcripts as JSONL files, and I had weeks of them: debugging sessions, project decisions, one-off investigations, cost summaries, configuration changes, and the usual trail of half-remembered engineering context.&lt;/p&gt;

&lt;p&gt;In theory, this should be easy.&lt;/p&gt;

&lt;p&gt;Give the agent access to the files. Let it search. It can grep. It can parse JSON. It can inspect timestamps. It can reason over long context. If anything should be good at answering questions from a pile of text, it should be a coding agent with shell tools.&lt;/p&gt;

&lt;p&gt;In practice, this is exactly the kind of task where a capable agent becomes slow, expensive, and weirdly fragile.&lt;/p&gt;

&lt;p&gt;The problem is not that Claude cannot search. The problem is that raw search is the wrong abstraction.&lt;/p&gt;

&lt;p&gt;I already had another abstraction available. I had built &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt;: a local tool that indexes coding-agent sessions and exposes them through search, session views, analytics, and an MCP server.&lt;/p&gt;

&lt;p&gt;The practical question was whether that MCP surface was actually worth exposing to Claude. Was it meaningfully better than simply giving the agent raw transcript files and letting it use normal shell tools?&lt;/p&gt;

&lt;p&gt;So I ran a small benchmark on a very specific use case: answering questions about my own AI coding-agent history.&lt;/p&gt;

&lt;p&gt;The result was blunt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Raw file search worked, but it was the worst option.&lt;/li&gt;
&lt;li&gt;An indexed retrieval interface was about 2.8x faster at the median.&lt;/li&gt;
&lt;li&gt;It was about 2.3x cheaper at the median.&lt;/li&gt;
&lt;li&gt;It was also more accurate, especially when the answer required stitching together multiple sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benchmark did not show that Claude needs more search tools.&lt;/p&gt;

&lt;p&gt;It showed that Claude needs less raw search work.&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%2Fjwrmfq5wq8l90c0xeqbm.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%2Fjwrmfq5wq8l90c0xeqbm.png" alt="MCP makes Claude's memory faster and cheaper" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Use Case
&lt;/h2&gt;

&lt;p&gt;I use coding agents heavily. Over time, the transcripts become a real knowledge base.&lt;/p&gt;

&lt;p&gt;They contain answers to questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did we make this project decision?&lt;/li&gt;
&lt;li&gt;What was the root cause of that weird failure last month?&lt;/li&gt;
&lt;li&gt;Which session contained the fix?&lt;/li&gt;
&lt;li&gt;How much did a project cost over a given week?&lt;/li&gt;
&lt;li&gt;What did we conclude after comparing several tools?&lt;/li&gt;
&lt;li&gt;Did we already investigate this bug?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not hypothetical “memory” in the vague chatbot sense. It is concrete operational memory: local transcripts, timestamps, working directories, tool calls, costs, and final answers.&lt;/p&gt;

&lt;p&gt;The naive solution is obvious: point Claude at the transcript files and ask it to search.&lt;/p&gt;

&lt;p&gt;Claude Code transcripts live as JSONL. A coding agent can use &lt;code&gt;rg&lt;/code&gt;, &lt;code&gt;jq&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;, Python, SQLite, or whatever else it decides. For a human developer, this sounds like a reasonable interface. The data is there. The tools are familiar.&lt;/p&gt;

&lt;p&gt;But from the agent’s perspective, every question now includes a tax:&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%2Fcvwv1pqy6bijamnigfvn.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%2Fcvwv1pqy6bijamnigfvn.png" alt="Raw search vs Index search" width="800" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is a lot of work before the agent has even started answering the question.&lt;/p&gt;

&lt;p&gt;I wanted to know how bad that tax was, and whether &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt;’s indexed MCP interface removed enough of it to justify being a separate tool surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Experiment
&lt;/h2&gt;

&lt;p&gt;I built a question bank from my real Claude Code history: 41 questions with verified reference answers and evidence.&lt;/p&gt;

&lt;p&gt;The corpus covered three weeks of local Claude Code sessions, from June 15 to July 6, 2026. The questions were intentionally practical. Some were simple lookups. Others required reading a session. Others required aggregating cost or token usage across days. Others required remembering decisions spread across multiple conversations.&lt;/p&gt;

&lt;p&gt;Then I ran the same questions through different tool setups. The main comparison was raw transcript access versus the &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt; MCP server; the hybrid and skill arms were there to answer follow-up questions about agent choice and interface mechanics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raw files&lt;/strong&gt; The agent could use normal file and shell tools over local transcripts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP&lt;/strong&gt; The agent could use &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt;, the indexed retrieval system I had already built, exposed through MCP tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid&lt;/strong&gt; The agent had both MCP and raw file tools, so it could choose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skill + CLI&lt;/strong&gt; A later fourth arm used the same &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt; index, but through a skill that taught the agent a CLI workflow instead of MCP tool calls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each question ran three times per arm. Answers were graded blindly by a separate judge model against the reference answers.&lt;/p&gt;

&lt;p&gt;In total: 492 measured runs and 492 blind judgings.&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%2Fhb9pnuoc8qw926g08nr0.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%2Fhb9pnuoc8qw926g08nr0.png" alt="Experiment scheme" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Headline Result
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fivrhzydksx5c72gz26u8.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%2Fivrhzydksx5c72gz26u8.png" alt="First results" width="800" height="1102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The raw approach was not a disaster. Claude often found the answer.&lt;/p&gt;

&lt;p&gt;But it was consistently worse.&lt;/p&gt;

&lt;p&gt;Compared with MCP, raw files were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;about 2.8x slower at the median&lt;/li&gt;
&lt;li&gt;about 2.3x more expensive at the median&lt;/li&gt;
&lt;li&gt;less accurate overall&lt;/li&gt;
&lt;li&gt;less predictable, including the only runs that hit the turn cap&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters. Averages are not the whole story. When an agent is searching raw transcripts, the worst cases become ugly: broad searches, huge result sets, repeated parsing, false leads, and more turns spent deciding whether it has enough evidence.&lt;/p&gt;

&lt;p&gt;An index gives the agent a bounded path. Search the index, open the relevant session window, ask for analytics if the question is numeric, answer with evidence.&lt;/p&gt;

&lt;p&gt;Raw search makes the agent rebuild that path from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Raw Search Actually Fails
&lt;/h2&gt;

&lt;p&gt;The interesting part is not simple lookup.&lt;/p&gt;

&lt;p&gt;If the question is “find the session where I said X,” raw search can be fine. Sometimes it is even competitive. Grep is good. Literal text search works when the answer contains a rare phrase.&lt;/p&gt;

&lt;p&gt;The gap appears when the answer is not one string in one file.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For aggregate questions, raw files scored 63%. MCP scored 90%.&lt;/li&gt;
&lt;li&gt;For multi-session questions, raw files scored 65%. MCP scored 75%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That matches the failure mode I saw while inspecting the runs. The agent was not stupid. It was doing reasonable things. But it had to infer too much structure from too little interface.&lt;/p&gt;

&lt;p&gt;An aggregate question is not just search. It needs semantics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which sessions count?&lt;/li&gt;
&lt;li&gt;Which project name maps to which working directory?&lt;/li&gt;
&lt;li&gt;Are resumed sessions duplicated?&lt;/li&gt;
&lt;li&gt;Are costs attached to messages, requests, or sessions?&lt;/li&gt;
&lt;li&gt;What date range is inclusive?&lt;/li&gt;
&lt;li&gt;Are we grouping by day, project, or agent?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are database questions pretending to be file-search questions.&lt;/p&gt;

&lt;p&gt;The raw-file agent had to solve the database problem over and over again using generic tools. The indexed agent could call the database-shaped interface directly.&lt;/p&gt;

&lt;p&gt;That is the whole lesson.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hybrid Was a Useful Sanity Check
&lt;/h2&gt;

&lt;p&gt;The hybrid arm mattered because it tested whether the index was actually useful to the agent when raw access was still available.&lt;/p&gt;

&lt;p&gt;If raw files were just as good, or if the agent preferred them, hybrid would show that.&lt;/p&gt;

&lt;p&gt;It did not.&lt;/p&gt;

&lt;p&gt;Given both options, agents used MCP exclusively in 72% of hybrid runs.&lt;/p&gt;

&lt;p&gt;That is a strong behavioral signal. When the indexed tool was available, Claude mostly stopped doing expensive archaeology in the transcript files.&lt;/p&gt;

&lt;p&gt;Hybrid matched MCP accuracy at 88%, but cost more: $0.16 median instead of $0.12. That makes sense. Giving the agent more options sometimes means it spends extra turns exploring those options.&lt;/p&gt;

&lt;p&gt;The best interface was not “everything.”&lt;/p&gt;

&lt;p&gt;The best interface was the right abstraction.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP vs Skill Was the Smaller Question
&lt;/h2&gt;

&lt;p&gt;After the main study, I tested one more thing.&lt;/p&gt;

&lt;p&gt;Maybe MCP was not special. Maybe the value came from the underlying index, and any decent interface to that index would work.&lt;/p&gt;

&lt;p&gt;So I added a fourth arm: a skill that taught the agent to use the &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt; CLI. The CLI talked to the same index and exposed the same kind of retrieval workflow, but the agent accessed it through shell commands instead of typed MCP tool calls.&lt;/p&gt;

&lt;p&gt;The result:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP: 88% accuracy, $0.12 median cost, 30s median latency&lt;/li&gt;
&lt;li&gt;Skill + CLI: 87% accuracy, $0.20 median cost, 34s median latency&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the cleanest conclusion in the whole experiment:The index is the value. MCP is the efficiency layer.&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%2Fpofhgz8vu0e1sdzi8nme.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%2Fpofhgz8vu0e1sdzi8nme.png" alt="MCP vs Skill results" width="800" height="1102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The skill approach worked. It almost matched MCP accuracy. If you already have a good CLI and do not want to build an MCP server, a skill can be a perfectly reasonable way to teach an agent how to use it.&lt;/p&gt;

&lt;p&gt;But it costs more. The agent has to load the skill, make shell calls, read human-formatted CLI output, and sometimes post-process that output. MCP gives it a more direct, typed interface.&lt;/p&gt;

&lt;p&gt;There was one interesting advantage to the CLI path: oversized CLI outputs could persist to files, and the agent could then grep those files. That is a real affordance MCP results did not have in this setup. But for normal high-volume retrieval, MCP was cleaner and cheaper.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Coding-agent history is becoming project memory.&lt;/p&gt;

&lt;p&gt;Not because anyone designed it that way, but because the transcripts are where the work happened. The bug investigation is there. The decision rationale is there. The failed attempts are there. The exact command output is there. The cost and token metadata are there.&lt;/p&gt;

&lt;p&gt;If you use agents seriously, eventually you ask: “What did we do last time?”&lt;/p&gt;

&lt;p&gt;And the tempting answer is: “Just let the agent search the logs.”&lt;/p&gt;

&lt;p&gt;This benchmark is my argument against that. Raw logs are a storage format. They are not a memory interface.&lt;/p&gt;

&lt;p&gt;When you expose raw transcripts to an agent, you are asking it to spend reasoning tokens on plumbing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;locating&lt;/li&gt;
&lt;li&gt;parsing&lt;/li&gt;
&lt;li&gt;deduplicating&lt;/li&gt;
&lt;li&gt;joining&lt;/li&gt;
&lt;li&gt;windowing&lt;/li&gt;
&lt;li&gt;aggregating&lt;/li&gt;
&lt;li&gt;validating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That work is not free. It shows up as latency. It shows up as cost. It shows up as missed answers. It shows up as fragile runs that depend on whether the agent guessed the right search term.&lt;/p&gt;

&lt;p&gt;An index moves that work out of the model loop.&lt;/p&gt;

&lt;p&gt;That is why the indexed approaches won. More specifically, that is why exposing &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt; through MCP made sense: it turned a transcript-mining problem into a few bounded retrieval calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Practical Takeaway
&lt;/h2&gt;

&lt;p&gt;If you want coding agents to use history, do not start by giving them a bigger pile of files. Start by giving them a retrieval layer.&lt;/p&gt;

&lt;p&gt;For my use case, the right shape was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;full-text search over transcripts&lt;/li&gt;
&lt;li&gt;session listing by project/date/agent&lt;/li&gt;
&lt;li&gt;“open around this hit” session windows&lt;/li&gt;
&lt;li&gt;analytics for cost/token/date aggregation&lt;/li&gt;
&lt;li&gt;stable IDs and metadata&lt;/li&gt;
&lt;li&gt;enough evidence in the result for the agent to cite its path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once that existed, the agent became faster and cheaper because it no longer had to reinvent it.&lt;/p&gt;

&lt;p&gt;For &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;claudescope&lt;/a&gt;, the answer was yes: exposing the index as MCP was worth it. MCP was the best interface I tested for repeated use. A skill over a CLI was a good lightweight alternative. Raw files were useful as a fallback, but not as the main path.&lt;/p&gt;

&lt;p&gt;The punchline is simple:&lt;/p&gt;

&lt;p&gt;Claude can search its own memory. But if you make it grep raw chat logs every time, you are wasting the model on work your tooling should have already done.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>agents</category>
      <category>mcp</category>
    </item>
    <item>
      <title>Want to share one tool I use. Hope, you also can find it useful</title>
      <dc:creator>Vladislav Ramazaev</dc:creator>
      <pubDate>Fri, 26 Jun 2026 12:22:11 +0000</pubDate>
      <link>https://dev.to/vladar107/want-to-share-one-tool-i-use-hope-you-also-can-find-it-useful-1pkl</link>
      <guid>https://dev.to/vladar107/want-to-share-one-tool-i-use-hope-you-also-can-find-it-useful-1pkl</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj" class="crayons-story__hidden-navigation-link"&gt;How I Built a Local Explorer for Six AI Coding Agents.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/vladar107" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4001141%2Fbebe3d69-a81a-4eb3-8926-ba48d36365d1.jpg" alt="vladar107 profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/vladar107" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Vladislav Ramazaev
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Vladislav Ramazaev
                
              
              &lt;div id="story-author-preview-content-3982058" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/vladar107" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4001141%2Fbebe3d69-a81a-4eb3-8926-ba48d36365d1.jpg" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Vladislav Ramazaev&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj" id="article-link-3982058"&gt;
          How I Built a Local Explorer for Six AI Coding Agents.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/claude"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;claude&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

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

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>How I Built a Local Explorer for Six AI Coding Agents.</title>
      <dc:creator>Vladislav Ramazaev</dc:creator>
      <pubDate>Wed, 24 Jun 2026 22:00:00 +0000</pubDate>
      <link>https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj</link>
      <guid>https://dev.to/vladar107/how-i-built-a-local-explorer-for-six-ai-coding-agents-2bj</guid>
      <description>&lt;p&gt;AI coding agents are becoming a normal part of software engineering, but their history is still surprisingly difficult to work with.&lt;/p&gt;

&lt;p&gt;A session usually lives inside one specific tool. Once it becomes long, gets archived, or you switch to another agent, finding an earlier decision, command, error, or code change becomes unnecessarily difficult.&lt;/p&gt;

&lt;p&gt;I originally built &lt;strong&gt;Claudescope&lt;/strong&gt; as a small viewer for my Claude Code sessions.&lt;br&gt;
It has since grown into a local, read-only explorer for sessions produced by six coding agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;OpenAI Codex&lt;/li&gt;
&lt;li&gt;JetBrains Junie&lt;/li&gt;
&lt;li&gt;pi&lt;/li&gt;
&lt;li&gt;opencode&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is open source and available on GitHub &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;github.com/vladar107/claudescope&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1lo7f3py8qmsua7vaukj.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%2F1lo7f3py8qmsua7vaukj.png" alt="Claudescope Browse View" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The problem with coding-agent history
&lt;/h2&gt;

&lt;p&gt;Coding agents generate a large amount of useful context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prompts and responses&lt;/li&gt;
&lt;li&gt;commands and tool calls&lt;/li&gt;
&lt;li&gt;generated code&lt;/li&gt;
&lt;li&gt;file edits&lt;/li&gt;
&lt;li&gt;architectural decisions&lt;/li&gt;
&lt;li&gt;failed attempts&lt;/li&gt;
&lt;li&gt;debugging history&lt;/li&gt;
&lt;li&gt;token usage&lt;/li&gt;
&lt;li&gt;project memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, every agent stores this information differently.&lt;/p&gt;

&lt;p&gt;Some use JSONL files. Some use SQLite. Their schemas, directory structures, tool-call formats, and metadata are different.&lt;/p&gt;

&lt;p&gt;The data exists, but it is optimized for the agent runtime rather than for a developer trying to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why was this implementation chosen?&lt;/li&gt;
&lt;li&gt;Which session introduced this change?&lt;/li&gt;
&lt;li&gt;What command fixed this issue?&lt;/li&gt;
&lt;li&gt;How much did this project cost?&lt;/li&gt;
&lt;li&gt;Which agent previously worked in this repository?&lt;/li&gt;
&lt;li&gt;What context did the agent preserve for future sessions?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is possible to search the raw files with &lt;code&gt;grep&lt;/code&gt;, but that quickly becomes inconvenient once sessions contain nested tool calls, long outputs, subagents, generated diffs, and several agents using different formats.&lt;/p&gt;
&lt;h2&gt;
  
  
  From a Claude viewer to a multi-agent explorer
&lt;/h2&gt;

&lt;p&gt;The first version only understood Claude Code transcripts.&lt;/p&gt;

&lt;p&gt;Supporting more agents required changing the internal model. Claudescope could no longer treat Claude’s format as the application format.&lt;/p&gt;

&lt;p&gt;Instead, each agent now has a connector responsible for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;locating its local session storage&lt;/li&gt;
&lt;li&gt;reading it without modifying anything&lt;/li&gt;
&lt;li&gt;parsing its native format&lt;/li&gt;
&lt;li&gt;converting events into a shared session model&lt;/li&gt;
&lt;li&gt;associating sessions with projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This means a repository touched by Claude Code, Codex, and opencode appears as one project rather than three unrelated histories.&lt;/p&gt;

&lt;p&gt;Each session still keeps its agent identity, so sessions can be filtered and compared without losing their origin.&lt;/p&gt;

&lt;p&gt;Adding another agent is mostly a matter of implementing another connector rather than changing the rest of the application.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reading a session as a conversation
&lt;/h2&gt;

&lt;p&gt;Raw transcript files are useful for machines, but not particularly pleasant for humans.&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%2F57p5ds4q7nu0wawi2wz0.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%2F57p5ds4q7nu0wawi2wz0.png" alt="Claudescope Session View" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claudescope renders a session as a threaded conversation with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Markdown rendering&lt;/li&gt;
&lt;li&gt;syntax-highlighted code&lt;/li&gt;
&lt;li&gt;tool calls paired with their results&lt;/li&gt;
&lt;li&gt;collapsible reasoning and long outputs&lt;/li&gt;
&lt;li&gt;subagent and sidechain turns&lt;/li&gt;
&lt;li&gt;attachments&lt;/li&gt;
&lt;li&gt;token information&lt;/li&gt;
&lt;li&gt;command and terminal blocks&lt;/li&gt;
&lt;li&gt;syntax-highlighted file diffs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claude Code slash commands and shell turns are also converted from their raw representation into cleaner command and terminal blocks.&lt;/p&gt;

&lt;p&gt;For large sessions, rendering everything at once becomes expensive. Claudescope progressively renders turns and clamps very large tool outputs behind a &lt;strong&gt;Show all&lt;/strong&gt; action.&lt;/p&gt;

&lt;p&gt;There is also an in-session search bar. It searches regular messages, collapsed reasoning, tool calls, tool results, and subagent content, then expands the relevant section automatically.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reviewing what the agent changed
&lt;/h2&gt;

&lt;p&gt;Conversation history is only one side of an agent session. In many cases, the most important output is the set of modified files.&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%2Fhk9f4x291lj6yxtlw420.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%2Fhk9f4x291lj6yxtlw420.png" alt="Claudescope Changed Files View" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Files changed&lt;/strong&gt; view aggregates edits made during a session and presents them more like a code review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;changed-file navigation&lt;/li&gt;
&lt;li&gt;per-file additions and deletions&lt;/li&gt;
&lt;li&gt;diff statistics&lt;/li&gt;
&lt;li&gt;syntax-highlighted red and green diffs&lt;/li&gt;
&lt;li&gt;lazily loaded file contents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful when returning to an old session and wanting to understand its actual effect without rereading the full conversation.&lt;/p&gt;

&lt;p&gt;It also helps separate what the agent discussed from what it eventually changed.&lt;/p&gt;
&lt;h2&gt;
  
  
  Searching across all sessions
&lt;/h2&gt;

&lt;p&gt;Claudescope builds a local DuckDB index over normalized session events.&lt;/p&gt;

&lt;p&gt;Full-text search uses DuckDB BM25 and works across all supported agents and projects.&lt;/p&gt;

&lt;p&gt;Results are grouped by session and include highlighted snippets. Selecting a result opens the original session at the matching message.&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%2Fcarcntwm8l454ov0so9e.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%2Fcarcntwm8l454ov0so9e.png" alt="Claudescope Search View" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This makes the session archive useful as an engineering knowledge base.&lt;/p&gt;

&lt;p&gt;For example, I can search for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an error message I encountered weeks ago&lt;/li&gt;
&lt;li&gt;the name of a class an agent refactored&lt;/li&gt;
&lt;li&gt;an architectural trade-off discussed in another session&lt;/li&gt;
&lt;li&gt;a command that solved a local environment issue&lt;/li&gt;
&lt;li&gt;a prompt pattern that produced a useful result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The index is refreshed automatically as new sessions appear.&lt;/p&gt;
&lt;h2&gt;
  
  
  Agent memory is part of the history
&lt;/h2&gt;

&lt;p&gt;Transcripts are not the only source of agent context.&lt;/p&gt;

&lt;p&gt;Different agents also maintain instruction and memory files such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copilot instruction files&lt;/li&gt;
&lt;li&gt;agent-specific project memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Claudescope includes a memory browser that presents these files alongside session history.&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%2Fso32rth10zx4vasz10bt.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%2Fso32rth10zx4vasz10bt.png" alt="Claudescope Memory View" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For Claude Code’s distilled project facts, memory entries can link back to the session that produced them. This provides provenance instead of showing memory as unexplained text.&lt;/p&gt;

&lt;p&gt;This became especially useful after adding multiple agents. Instructions and memory are often fragmented across several files, even when they describe the same project.&lt;/p&gt;
&lt;h2&gt;
  
  
  Continuing an old session
&lt;/h2&gt;

&lt;p&gt;A session viewer should not necessarily become another coding-agent client.&lt;/p&gt;

&lt;p&gt;Claudescope remains read-only, but it can generate the appropriate resume or fork command for the original agent CLI.&lt;/p&gt;

&lt;p&gt;You can copy the command, return to the terminal, and continue the session in the tool that created it.&lt;/p&gt;

&lt;p&gt;This keeps responsibilities separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the agent remains responsible for running and modifying code&lt;/li&gt;
&lt;li&gt;Claudescope remains responsible for browsing and analysing history&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Token, cost, and efficiency analytics
&lt;/h2&gt;

&lt;p&gt;Agent sessions are also operational data.&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%2Ftmeqmry6tyocofyrg9jm.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%2Ftmeqmry6tyocofyrg9jm.png" alt="Claudescope Analytics View" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claudescope tracks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;input and output tokens&lt;/li&gt;
&lt;li&gt;cache reads and cache creation&lt;/li&gt;
&lt;li&gt;estimated cost&lt;/li&gt;
&lt;li&gt;cost by project&lt;/li&gt;
&lt;li&gt;cost by model&lt;/li&gt;
&lt;li&gt;cost by agent&lt;/li&gt;
&lt;li&gt;activity over time&lt;/li&gt;
&lt;li&gt;cache-hit ratios&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pricing can be refreshed from LiteLLM’s community pricing table, while local overrides remain possible.&lt;/p&gt;

&lt;p&gt;The newer session-efficiency view ranks sessions by cost and provides context such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;response count&lt;/li&gt;
&lt;li&gt;cost per response&lt;/li&gt;
&lt;li&gt;tool-call count&lt;/li&gt;
&lt;li&gt;tools per response&lt;/li&gt;
&lt;li&gt;cache usage&lt;/li&gt;
&lt;li&gt;statistical outlier indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not intended to declare one agent or session objectively “better.” It makes unusually expensive or tool-heavy sessions easier to identify and investigate.&lt;/p&gt;
&lt;h2&gt;
  
  
  Exporting and sharing sessions
&lt;/h2&gt;

&lt;p&gt;Sessions can be exported to Markdown for documentation, bug reports, or technical discussions.&lt;/p&gt;

&lt;p&gt;Because transcripts may include local paths and credentials, the export flow includes an optional redaction mode for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;home-directory paths&lt;/li&gt;
&lt;li&gt;likely secrets&lt;/li&gt;
&lt;li&gt;sensitive environment values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redaction is necessarily heuristic, so exported content should still be reviewed before publishing.&lt;/p&gt;
&lt;h2&gt;
  
  
  Local and read-only by design
&lt;/h2&gt;

&lt;p&gt;Coding-agent transcripts can contain source code, prompts, file paths, commands, memory, and sometimes secrets.&lt;/p&gt;

&lt;p&gt;For that reason, Claudescope runs locally and binds to &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It treats every agent source as read-only. Its own persistent state—primarily the DuckDB index and pricing files—is stored separately under &lt;code&gt;~/.claudescope&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Transcript content is not uploaded to a hosted service.&lt;/p&gt;

&lt;p&gt;The server also rejects non-loopback &lt;code&gt;Host&lt;/code&gt; headers. Binding to localhost alone does not prevent DNS-rebinding attacks from malicious websites, so the additional host validation protects the local transcript API without introducing a login flow.&lt;/p&gt;

&lt;p&gt;The only optional outbound requests are version and model-pricing checks. Neither includes transcript content.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;Claudescope is distributed through npm, Homebrew, and Nix.&lt;/p&gt;
&lt;h3&gt;
  
  
  npm
&lt;/h3&gt;

&lt;p&gt;Node.js 22.12 or newer is required.&lt;br&gt;
&lt;/p&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; @vladar107/claudescope
claudescope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can also be started without a global installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @vladar107/claudescope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Homebrew
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew tap vladar107/tap
brew &lt;span class="nb"&gt;install &lt;/span&gt;claudescope
claudescope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Nix
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nix run github:vladar107/claudescope
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default command starts the application as a background process and opens it in the browser.&lt;/p&gt;

&lt;p&gt;Other lifecycle commands include:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claudescope status
claudescope open
claudescope logs &lt;span class="nt"&gt;-f&lt;/span&gt;
claudescope restart
claudescope stop
claudescope update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What changed after the first release
&lt;/h2&gt;

&lt;p&gt;The initial release was primarily a Claude Code session viewer.&lt;/p&gt;

&lt;p&gt;Since then, Claudescope has added:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support for five additional coding agents&lt;/li&gt;
&lt;li&gt;unified multi-agent projects&lt;/li&gt;
&lt;li&gt;Windows support&lt;/li&gt;
&lt;li&gt;Homebrew and Nix installation&lt;/li&gt;
&lt;li&gt;better handling of very large sessions&lt;/li&gt;
&lt;li&gt;a memory and instruction-file browser&lt;/li&gt;
&lt;li&gt;session resume and fork commands&lt;/li&gt;
&lt;li&gt;a rebuilt code-review-style Files changed view&lt;/li&gt;
&lt;li&gt;Markdown export with optional redaction&lt;/li&gt;
&lt;li&gt;live model-pricing updates&lt;/li&gt;
&lt;li&gt;session-efficiency analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The direction has also changed slightly.&lt;/p&gt;

&lt;p&gt;The goal is no longer simply to make individual transcripts readable. It is to make coding-agent history searchable, reviewable, and reusable across tools.&lt;/p&gt;

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

&lt;p&gt;There are still many possible directions.&lt;/p&gt;

&lt;p&gt;Looking ahead, connectors for more agents are an obvious next step. Beyond that, I’m not entirely sure what should come next — it already covers my own workflow pretty well. I’d really like to hear how others are using their session history and what’s missing for them.&lt;/p&gt;

&lt;p&gt;I am particularly interested in how developers use old agent sessions in practice.&lt;br&gt;
Do you return to them to find decisions, prompts, commands, code changes, or something else?&lt;/p&gt;

&lt;p&gt;Feedback, bug reports, connector contributions, and pull requests are welcome: &lt;a href="https://github.com/vladar107/claudescope" rel="noopener noreferrer"&gt;Claudescope on GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>claude</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
