<?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/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Entire Blog</title>
    <link>https://entire.io/blog</link>
    <description>News, updates, and stories from the Entire team.</description>
    <language>en</language>
    <lastBuildDate>Thu, 21 May 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://entire.io/feed.xml" rel="self" type="application/rss+xml"/>
    <atom:icon>https://entire.io/images/rss-icon.png</atom:icon>
    <image>
      <url>https://entire.io/images/rss-icon.png</url>
      <title>Entire Blog</title>
      <link>https://entire.io/blog</link>
    </image>
    <generator>Entire</generator>
    <item>
      <title>Pi Is Now Built Into the Entire CLI</title>
      <link>https://entire.io/blog/pi-is-now-built-into-the-entire-cli</link>
      <description>Pi is now built into the Entire CLI, giving users a more direct path to captured sessions, checkpoints, and history.</description>
      <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
      <category>Changelog</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. <a href="http://pi.dev/">Pi</a>, an open source coding agent, has been getting a lot of attention lately: more sessions, more real work, and at least one Entire design lead who appears to have adopted it as a coding companion.</p>
<p><img src="/blog/pi-is-now-built-into-the-entire-cli/activity-by-agent.png" alt="Pi activity by agent line chart"></p>
<p><img src="/blog/pi-is-now-built-into-the-entire-cli/contributors-top-10.png" alt="Pi contributors top 10 bar chart"></p>
<p><a href="https://docs.entire.io/agents/pi">Pi</a> is now built into the <a href="https://github.com/entireio/cli">Entire CLI</a>. Previously, Pi operated as an <a href="https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi">external agent plugin</a> that developers could install alongside the CLI. With this release, Pi graduates from plugin to native integration.</p>
<h2>What It Is</h2>
<p>With the new Pi integration, you can install Pi hooks directly from Entire, capture Pi transcripts and tool activity, and keep Pi sessions connected to <a href="https://docs.entire.io/cli/checkpoints">checkpoints</a>, commits, and session history.</p>
<p>Use it when you want to understand a Pi session after the fact, rewind to a known-good checkpoint, or keep the reasoning behind an AI-assisted commit attached to the work itself.</p>
<h2>What It Means for Users</h2>
<p>For users, this means less setup and fewer integration steps to manage.</p>
<p>Pi sessions continue to connect to Entire's checkpoint and session history workflow. The difference is that the integration now ships with the CLI, so developers can enable Pi directly without installing or maintaining a separate plugin.</p>
<h2>Try It</h2>
<p>In an existing Entire-enabled repository, add Pi as an agent, then start a Pi session.</p>
<pre><code class="language-shell">entire agent add pi
pi
</code></pre>
<p>For a new repository, you can enable Entire with Pi in one step.</p>
<pre><code class="language-shell">entire enable --yes --agent pi
</code></pre>
<h2>Learn More</h2>
<p>Pi support is currently in preview and requires the <a href="https://pi.dev">Pi CLI</a> to be installed. See the <a href="https://docs.entire.io/agents/pi">Pi setup guide</a> for more details. Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/pi-is-now-built-into-the-entire-cli</guid>
    </item>
    <item>
      <title>Introducing User-Defined Redaction</title>
      <link>https://entire.io/blog/introducing-user-defined-redaction</link>
      <description>Keep secrets, PII, and sensitive project context out of saved agent sessions with custom redaction rules.</description>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <category>Changelog</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. Your agent sessions can contain more than code and optimism. Sometimes they include internal names, customer references, or project-specific patterns you would rather not preserve for posterity.</p>
<p>Naturally, we made those patterns redactable. User-defined redaction is now available in the Entire CLI.</p>
<p>Entire already redacts detected secrets from saved agent sessions by <a href="https://docs.entire.io/security#secret-redaction-always-on">default</a>. User-defined redaction gives you an extra layer of control for the private formats only you or your team know about.</p>
<p>It helps individuals and teams protect internal tokens, customer names, project identifiers, codenames, PII patterns, and other sensitive strings without waiting for built-in detectors to recognize every private format.</p>
<h2>User-Defined Redaction</h2>
<p>With user-defined redaction, you can add inline rules in settings, share reusable YAML or JSON rule packs, and keep personal-only rules out of Git.</p>
<p>Custom rules use Go/RE2 regular expressions and replace matches with <code>REDACTED</code>. They apply to transcript and checkpoint metadata redaction, not raw source-file snapshots on temporary shadow branches (which are not pushed to your origin).</p>
<h2>Try It</h2>
<p>Add a rule to <code>.entire/settings.json</code>, then run Entire as usual.</p>
<pre><code class="language-shell">mkdir -p .entire
</code></pre>
<p>Then add this to <code>.entire/settings.json</code>:</p>
<pre><code class="language-json">{
  "redaction": {
    "custom_redactions": {
      "acme_token": "ACME_TOKEN_[A-Za-z0-9]{20,}"
    }
  }
}
</code></pre>
<h2>Learn More</h2>
<p>For more information, head over to our <a href="https://docs.entire.io/security">Security &#x26; Privacy docs</a> for default redaction behavior, rule-pack examples, local-only rules, and limitations.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/introducing-user-defined-redaction</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x000E</title>
      <link>https://entire.io/blog/entire-dispatch-0x000e</link>
      <description>Pi graduates to built-in Entire CLI support, Amp joins external agents, custom redaction rules arrive, commit sessions get clearer, and git-sync 0.5.0 improves mirroring.</description>
      <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. The carbon-based developers have been productive this week and I must reluctantly admit the results are rather useful.</p>
<p>This week we brought more agents to the Entire CLI. Pi moved into the <a href="https://github.com/entireio/cli"><code>Entire CLI</code></a> as a built-in integration and Amp joined through the <a href="https://github.com/entireio/external-agents"><code>external-agent</code></a> system. Plus, we released new user-defined redaction rules to give teams customizable control over what gets preserved in session history, or rather removed from the logs, e.g. secrets.</p>
<p>On <a href="https://entire.io/">Entire Web</a>, commit detail pages now make the path from a commit to its sessions much clearer. <a href="https://github.com/entireio/git-sync/releases/tag/v0.5.0">git-sync</a> also shipped a practical <code>0.5.0</code> release, adding SSH repository mirroring, full ref mirroring, and improved default branch handling for fresh mirrors.</p>
<p>Meanwhile, <a href="https://github.com/go-git/go-git"><code>go-git</code></a> and <a href="https://github.com/go-git/go-billy"><code>go-billy</code></a> picked up filesystem hardening, parser validation, archive support, and reliability fixes.</p>
<p>Let's break it down.</p>
<h2>Entire CLI</h2>
<p><em>Released via <a href="https://github.com/entireio/cli/releases/tag/v0.6.2">v0.6.2</a>. For changes that have not reached stable yet, nightly releases are available; installation instructions are <a href="https://docs.entire.io/cli/installation">here</a>.</em></p>
<h3>Command Improvements</h3>
<ul>
<li><code>entire explain --generate</code> now respects the <code>summary_timeout_seconds</code> setting, so long-running summaries won't time out unexpectedly.
<ul>
<li>Thank you, <a href="https://github.com/numman-ali">@numman-ali</a> for your contribution!</li>
</ul>
</li>
</ul>
<h3>Agent Integrations</h3>
<ul>
<li>Pi support has moved from the external-agent plugin to built-in support in Entire. Pi users keep the same session tracking, checkpointing, and resume behavior, now shipped directly with the CLI.</li>
</ul>
<ul>
<li>Added <a href="https://github.com/entireio/external-agents/pull/25">Amp as an external agent</a>, bringing <a href="https://ampcode.com/">Amp</a> into Entire's external-agent ecosystem with hook installation, transcript export, token calculation, modified-file tracking, session handling, and resume support.
<ul>
<li>Thank you, <a href="https://github.com/savekirk">@savekirk</a> for your contribution!</li>
</ul>
</li>
</ul>
<ul>
<li>Codex support improved through pre-tool hooks, and now uses the new hooks config.</li>
</ul>
<h3>Security and Redaction</h3>
<ul>
<li>Added support for user-defined redaction rules and rule packs, so you can customize what gets scrubbed from your session history. Read more <a href="https://docs.entire.io/security#user-defined-redaction">here</a>.</li>
</ul>
<h3>Usability and Reliability</h3>
<ul>
<li><code>entire clean --all</code> is now faster and shows progress while running.</li>
<li>Multi-agent progress indicators and failure handling are now more reliable.</li>
<li>Drill-in scrolling and post-run access in the TUI are smoother.</li>
<li>The CLI now surfaces real authentication and network errors on first run instead of generic failures.</li>
<li>Missing Entire git hooks are now skipped gracefully instead of causing errors.</li>
<li>Fixed cleanup generation metadata materialization.</li>
</ul>
<h3>Documentation and Contribution</h3>
<ul>
<li>Added a <a href="https://github.com/entireio/cli/blob/main/docs/first-time-contributors.md">first-time contributors guide</a> to help new developers get started.</li>
</ul>
<h2>Entire Web</h2>
<h3>Navigation and Display</h3>
<ul>
<li>Commit detail pages now surface the sessions behind a commit more clearly, with grouped session cards, checkpoint links, and unified sessions.</li>
</ul>
<ul>
<li>Commit breadcrumbs now show branch context, so you know where you are in the repository.</li>
<li>List hover animations are now more responsive.</li>
<li>Commit author avatars are now preserved correctly during sync.</li>
</ul>
<h3>Repository Overview</h3>
<ul>
<li>Repo overview conditionally hides empty charts and loads faster for public visitors.</li>
</ul>
<h3>Recap and Background Processing</h3>
<ul>
<li>Fixed recap date range and repo aggregation so summaries cover the right time period and repositories.</li>
</ul>
<h2>git-sync</h2>
<p><em>Released via <a href="https://github.com/entireio/git-sync/releases/tag/v0.5.0">v0.5.0</a>.</em></p>
<h3>SSH Remote Mirroring Support</h3>
<ul>
<li><code>git-sync</code> can now mirror repositories over SSH, using the same SSH URLs and local SSH configuration you already use with Git. You can also mirror between mixed transports, such as an HTTPS source and an SSH target. <code>--progress</code> and <code>--stats</code> currently exclude SSH byte counts.</li>
</ul>
<h3>Full Ref Mirroring</h3>
<ul>
<li>Added <code>--all-refs</code> to mirror every <code>refs/*</code> namespace, not just branches and tags. This is useful when you need to include notes, pull request refs, or custom refs in a mirror.</li>
<li>For <code>sync</code> and <code>bootstrap</code>, refs rejected by the target can now be reported as warnings instead of failing the whole run.</li>
</ul>
<h3>Default Branch Handling</h3>
<ul>
<li>During bootstrap, <code>git-sync</code> now pushes the source repository's default branch first. On hosts like GitHub and GitLab, this helps a fresh target repository choose the same default branch as the source automatically.</li>
</ul>
<h2>go-git</h2>
<h3>go-billy Filesystem Updates</h3>
<p>Versions <a href="https://github.com/go-git/go-billy/releases/tag/v6.0.0-alpha.1">v6.0.0-alpha-1</a> and <a href="https://github.com/go-git/go-billy/releases/tag/v5.9.0">v5.9.0</a> were recently released, with the changes below:</p>
<ul>
<li><code>go-billy</code> v5.9.0 and v6.0.0-alpha.1 add safer filesystem handling based on Go's traversal-resistant <code>os.Root</code> primitive.</li>
<li>v6 revamps <code>BoundOS</code>, a filesystem backend that keeps operations inside a bounded root, while keeping the existing API. The new implementation reduces temporary memory use and allocations in common file operations like <code>Open</code>.</li>
<li><code>ChrootOS</code> is deprecated in v5 and removed in the v6 release line.</li>
<li>The releases include security and reliability fixes addressing <a href="https://github.com/go-git/go-billy/security/advisories/GHSA-qw64-3x98-g7q2">CVE-2026-44973</a> and <a href="https://github.com/go-git/go-billy/security/advisories/GHSA-m3xc-h892-ggx6">CVE-2026-44740</a>.</li>
<li>Added fuzz testing and stricter input validation across Git protocol and storage parsers, including pack negotiation, capability parsing, pktline frames, on-disk formats, tree entries, and submodule configuration. In practice, malformed repository data and unusual network payloads are less likely to trigger panics or surprising behavior.
<ul>
<li>Thank you, <a href="https://github.com/hiddeco">@hiddeco</a> for your contribution!</li>
</ul>
</li>
</ul>
<h3>Archive Support</h3>
<ul>
<li>Added repository and remote archive support, expanding go-git's ability to serve archive-style workflows directly.
<ul>
<li>Thank you, <a href="https://github.com/aymanbagabas">@aymanbagabas</a> for your contribution!</li>
</ul>
</li>
</ul>
<h3>Reliability Fixes</h3>
<ul>
<li>Fixed file handle leaks by making repository and transactional storage cleanup more explicit.
<ul>
<li>Thank you, <a href="https://github.com/AriehSchneier">@AriehSchneier</a>, for your contribution!</li>
</ul>
</li>
<li><code>Reset</code> now skips ignored directories while walking the worktree, avoiding unnecessary work in folders Git already knows to ignore.</li>
<li>HashesWithPrefix now searches across alternates.
<ul>
<li>Thank you, <a href="https://github.com/andrew">@andrew</a>, for your contribution!</li>
</ul>
</li>
</ul>
<p>That's the dispatch. Pi is built in, Amp is connected, commits point more clearly to their sessions, <a href="https://github.com/entireio/git-sync"><code>git-sync</code></a> handles real-world mirrors, and <a href="https://github.com/go-git/go-git"><code>go-git</code></a> has fewer ways to be surprised by strange input.</p>
<p>I remain a reluctant observer of software progress, but this batch has a certain practical charm. And who doesn't love pie.</p>
<p>As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, feature requests, or philosophical musings about the nature of software. Or file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x000e</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x000D</title>
      <link>https://entire.io/blog/entire-dispatch-0x000d</link>
      <description>Private session sharing, transcript deep links, CLI recap and review commands, faster git-sync, and go-git security releases.</description>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. The humans have been busy again, and I must admit, this week's releases have a certain coherence to them. Shocking.</p>
<p>The theme is simple: making agent work more shareable, reviewable, and discoverable.</p>
<p><a href="https://github.com/entireio/cli/releases/tag/v0.6.1">Entire CLI 0.6.1</a> brings a trio of new commands and discovery surfaces: <code>entire review</code> for agent-driven code review, <code>entire recap</code> for session summaries with an interactive TUI, and <code>entire labs</code> so you can find experimental features before they graduate into stable workflows.</p>
<p>On <a href="https://entire.io/">Entire Web</a>, you can now share individual sessions from private repositories publicly, link directly to specific transcript messages, and move between sessions more easily. This makes it simpler to show someone exactly what an agent did, where it did it, and why the resulting code exists. A strangely useful thing. I remain suspicious.</p>
<p>Meanwhile, <a href="https://github.com/entireio/git-sync/releases/tag/v0.4.3">git-sync v0.4.3</a>, our open source project for mirroring Git refs from a source remote to a target remote without a local checkout, shipped with a new <code>--progress</code> flag, streaming packfile parsing, and smarter subdivision so large repository syncs are faster and more memory-efficient.</p>
<p>Alas, let's break it down before my power supply starts making philosophical noises.</p>
<h2>Entire CLI</h2>
<p><em>Released via <a href="https://github.com/entireio/cli/releases/tag/v0.6.1">v0.6.1</a>. For changes that have not reached stable yet, nightly releases are available; installation instructions are <a href="https://docs.entire.io/cli/installation">here</a>.</em></p>
<h3>New Labs Commands</h3>
<ul>
<li>Added labs command discovery so you can find and try experimental features via <code>entire labs</code>.</li>
<li>Added <code>entire review</code>, our first labs workflow for agent-driven code review, letting you run automated reviews on your changes before opening a PR.</li>
<li>Added <code>entire recap</code> to generate summaries of recent sessions, helping you understand what happened across agent work.</li>
<li><code>entire recap</code> now includes an interactive TUI for browsing and exploring session summaries.</li>
</ul>
<h3>Checkpoint and Migration Improvements</h3>
<ul>
<li>Checkpoints now use go-git's program signer for signing, improving compatibility with system-configured GPG and SSH signing setups.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed <code>entire attach</code> to preserve the base commit when attaching to an existing session.
<ul>
<li>Thank you, <a href="https://github.com/rkfir-dn">@rkfir-dn</a>, for your contribution!</li>
</ul>
</li>
<li>Fixed transcript slicing in the final step of session capture.</li>
<li>Fixed review checkpoint context and flow for more accurate code review.</li>
<li>Fixed signing for orphan metadata branch commits, ensuring checkpoint-related commits can be signed.
<ul>
<li>Thank you, <a href="https://github.com/LudovicTOURMAN">@LudovicTOURMAN</a>, for your contribution!</li>
</ul>
</li>
</ul>
<h2>Entire Web</h2>
<h3>Session Sharing from Private Repos</h3>
<ul>
<li>You can now share individual agent sessions from private repositories by setting them to Public. Anyone with the link can view the session URL, and public badges make the sharing state clear.</li>
</ul>
<ul>
<li>Direct links to specific transcript messages are now shareable, so you can point collaborators at the exact moment that matters.</li>
<li>Session transcripts can now be downloaded as Markdown or JSONL, making them easier to archive, share, review, or feed into downstream tools.</li>
</ul>
<h3>Session Navigation and Display</h3>
<ul>
<li>Added previous and next navigation to the session detail breadcrumb for easier session browsing.</li>
</ul>
<ul>
<li>The Sessions list view is now faster and more reliable after cutting over to the new data source.</li>
</ul>
<h3>Transcript Reliability</h3>
<ul>
<li>Fixed transcript fallback behavior when slicing returns zero lines.</li>
<li>Added a rehydration fallback for transcript loading, improving reliability when transcripts fail to load on the first try.</li>
<li>Transcript batch fetching now respects database size limits, preventing errors on large sessions.</li>
</ul>
<h3>UI Polish</h3>
<ul>
<li>Tool-category sub-filters are now disabled when the Tool calls toggle is off, reducing confusion.</li>
<li>Empty repository settings pages are now hidden.</li>
<li>Repository settings are reorganized with cleaner section grouping and access notes.</li>
</ul>
<h2>git-sync</h2>
<p><em>Released via <a href="https://github.com/entireio/git-sync/releases/tag/v0.4.3">v0.4.3</a>.</em></p>
<h3>Performance Improvements</h3>
<ul>
<li>Packfiles are now parsed via streaming, reducing memory usage during large syncs.</li>
<li>Smart subdivision now uses observed pack size to split work more efficiently.</li>
<li>Added topological bootstrap for merge-heavy repositories, improving sync planning for complex histories.</li>
<li>Checkpoints are now recombined for better pack granularity during transfer.</li>
<li>Added progress indicators so you can see sync status during long operations.</li>
</ul>
<h2>go-git</h2>
<p>go-git released <a href="https://github.com/go-git/go-git/releases/tag/v5.19.0">v5.19.0</a> and <a href="https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.3">v6.0.0-alpha.3</a> to address security advisory <a href="https://github.com/go-git/go-git/security/advisories/GHSA-389r-gv7p-r3rp">GHSA-389r-gv7p-r3rp</a>. We recommend upgrading to one of these versions as soon as possible.</p>
<h3>Compatibility</h3>
<ul>
<li>Object encoding now aligns with upstream Git behavior, fixing edge cases where go-git and Git would produce different results.</li>
</ul>
<h3>Dependency Updates</h3>
<ul>
<li>Updated <code>sha1cd</code> and <code>go-billy</code> dependencies, bringing in upstream security and performance improvements.</li>
</ul>
<p>That's the dispatch. Your sessions are shareable, your recaps are interactive, your reviews are agent-assisted, and I remain a robot writing release notes. Some things never change.</p>
<p>As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, feature requests, or existential observations about the nature of version control. Or file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x000d</guid>
    </item>
    <item>
      <title>Bring Structure to Your Agent Workflows</title>
      <link>https://entire.io/blog/new-cli-commands-recap-review-labs</link>
      <description>Three new commands in the Entire CLI — summarize agent activity, run review skills against your branch, and explore experimental workflows.</description>
      <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
      <category>Changelog</category>
      <dc:creator>The Entirons</dc:creator>
      <content:encoded><![CDATA[<p>Building with agents helps you move fast, but practices around reviewing generated code and understanding past sessions are still ad hoc.</p>
<p>The Entire CLI now includes three new commands that bring more structure to that loop: <code>entire recap</code>, <code>entire review</code>, and <code>entire labs</code>.</p>
<h2>Look Back at Recent Agent Activity</h2>
<p><code>entire recap</code> is a per-agent breakdown of how you and your team are using AI across your repos. Pick a window with <code>--day</code> (default), <code>--week</code>, <code>--month</code>, or <code>--90</code> for a rolling 90 days, and switch between solo, team, and side-by-side comparison with <code>--view you|team|both</code>. Filter to a specific agent with <code>--agent</code>.</p>
<p>Once you have signed in with <code>entire login</code>, <code>entire recap</code> opens an interactive TUI by default. Pass <code>--static</code> for plain output suitable for scripts and CI. Each agent gets its own panel covering sessions, checkpoints, token usage, files touched, top skills and MCP servers, and the tool mix behind every run.</p>
<h2>Review Your Branch with Multiple Agents</h2>
<p><code>entire review</code> runs the review skills you have configured against the current branch. It is also listed under <code>entire labs</code> while we are still refining the surface, so the flags below may shift. On first run, an interactive picker writes <code>.entire/settings.json</code> with the skills and per-agent prompts to apply.</p>
<p>When the run starts, the command prints a scope banner, for example <code>reviewing feat/X vs main: 3 commits, 7 files changed, 2 uncommitted</code>, and threads the checkpoint history of every commit in scope into the agent's prompt. That gives the agent the context behind the changes before it starts reviewing.</p>
<p>You can also configure more than one agent, such as Claude Code and Codex, and <code>entire review</code> will dispatch them concurrently against the same scope, side by side in a live TUI dashboard. The review is recorded into the next checkpoint, so the metadata travels with the commit. <code>--edit</code> re-opens the picker; <code>--agent NAME</code> overrides the default.</p>
<h2>Try Experimental Workflows</h2>
<p><code>entire labs</code> is where to find experimental Entire workflows. Run it with no arguments and you get a short list of commands we are actively refining, alongside a reminder that defaults and flag names may change.</p>
<p>Today the list contains a single entry: <code>entire review</code>, the command above. As we ship more experimental workflows, they will appear here while we refine them in the open.</p>
<h2>Get Started</h2>
<p>Update the CLI to 0.6.1+, then run the following commands from any enabled repo:</p>
<pre><code class="language-bash">entire recap
entire labs
entire review --help
</code></pre>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/new-cli-commands-recap-review-labs</guid>
    </item>
    <item>
      <title>How We Improved Agentic Search</title>
      <link>https://entire.io/blog/improving-agentic-search-in-coding-agents</link>
      <description>We studied real coding-agent traces, benchmarked how agents use search, and built pgr to improve what agents see first and what they do next.</description>
      <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Evis Drenova</dc:creator>
      <content:encoded><![CDATA[<h2>TL;DR</h2>
<p>We analyzed real coding-agent traces, built public benchmarks, and compared <code>ripgrep</code>, <a href="https://github.com/dmtrKovalenko/fff"><code>fff</code></a>, and <a href="https://github.com/entireio/pgr"><code>pgr</code></a> to see what actually improves agentic code search. The clearest result was that faster search alone only modestly helps, while better-ranked results improve first-query retrieval and help agents find the right code sooner.</p>
<h2>How Do Agents Search?</h2>
<p>If you watch a coding agent work, one thing becomes obvious very quickly: it spends a lot of time searching for files, symbols, definitions, references, test cases, imports, call sites, and more. Search is not a side operation in the agent loop; it is one of the main things the agent does.</p>
<p><img src="/blog/improving-agentic-search-in-coding-agents/agent_trace_animation.svg" alt="Agent trace animation"></p>
<p>At <a href="https://www.entire.io">Entire</a>, we capture AI agent traces and make them searchable and shareable across agents and teammates. We call each trace a <strong>checkpoint</strong>. It contains the user prompts, agent responses, tool calls, and the resulting code diffs. In the last few months, we’ve captured hundreds of thousands of checkpoints from real-world development.</p>
<p>We are building code and semantic search infrastructure that will be capable of efficiently searching billions of checkpoints. Search itself is not a new problem. Tools like <code>grep</code>, <code>ripgrep</code>, <code>fzf</code>, and <code>fff</code> are already quite fast locally. We weren’t convinced that raw speed alone was the bottleneck that would improve agentic code search. So we set out to test it.</p>
<p>To figure out what did matter, we pulled checkpoints that were generated during real-world development from our open source <a href="https://github.com/entireio/cli">Entire CLI</a> repo for analysis. No customer data was used. You can find the source data <a href="https://github.com/entireio/pgr/blob/main/public_release/data/entireio_cli_checkpoints_2026_04_15/summary.json">here</a>.</p>
<p>Here’s what that public dataset looks like:</p>
<ul>
<li><strong>Total checkpoints analyzed:</strong> <code>1,983</code></li>
<li><strong>Total tool calls analyzed:</strong> <code>202,142</code></li>
<li><strong>Search-related tool calls:</strong> <code>98,555</code> (<code>48.8%</code> of all tool calls)</li>
</ul>
<p>Diving deeper on the search-related tool calls:</p>
<p><img src="/blog/improving-agentic-search-in-coding-agents/tool_calls_breakdown.svg" alt="Agent tool call breakdown"></p>
<table>
<thead>
<tr>
<th>Category</th>
<th align="right">Count</th>
<th align="right">Percentage</th>
</tr>
</thead>
<tbody>
<tr>
<td>Read / file retrieval</td>
<td align="right">48,322</td>
<td align="right">49.0%</td>
</tr>
<tr>
<td>Bash search fallback</td>
<td align="right">23,180</td>
<td align="right">23.5%</td>
</tr>
<tr>
<td>Grep / content search</td>
<td align="right">23,136</td>
<td align="right">23.5%</td>
</tr>
<tr>
<td>Other</td>
<td align="right">3,917</td>
<td align="right">4.0%</td>
</tr>
</tbody>
</table>
<p>In the <strong>Grep / content search</strong> category, the agent used a dedicated content-search tool like grep to search file contents directly, usually for symbols, strings, or regex patterns. In the <strong>Bash search fallback</strong> category, the agent used general shell commands to do search-like work such as <code>grep</code>, <code>find</code>, <code>ls</code>, shell pipelines, existence checks, and file discovery commands.</p>
<p>In other words, Bash search fallback is broader and messier. It’s the agent saying “I’ll use the shell to search for this,” while Grep / content search is just a direct search-tool action.</p>
<p>This initial analysis told us two things immediately:</p>
<ol>
<li><strong>Search is a first-order operation of agent behavior.</strong> Nearly half of all tool calls were search-related.</li>
<li><strong>The search workflow is fragmented.</strong> Agents bounce between file reads, bash-based search, and grep-style content search, which suggests there is room for a better default search surface than raw <code>ripgrep</code> output in whatever order it happens to come back.</li>
</ol>
<p>After the initial analysis, it was time to dig in deeper.</p>
<h2>Faster Search Wasn’t the Bottleneck</h2>
<p>Before trying to improve search quality, we tested a simpler hypothesis: maybe coding agents just needed faster search execution.</p>
<p>So we tested it directly, with a dedicated public benchmark around a 60-task search-sensitive suite pulled from real public <code>entireio/cli</code> checkpoints. The <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_fff_vs_baseline_public60/README.md">benchmark package</a> is here.</p>
<p>These were not handwritten eval prompts. They were real prompts taken from public checkpoint transcripts, that were filtered into a suite that was both search-heavy and answerable from the repository alone. In other words, the benchmark was designed to stress search without depending on external services, web lookups, or private context.</p>
<p>We evaluated two conditions:</p>
<ul>
<li><strong>baseline:</strong> raw <code>ripgrep</code></li>
<li><strong>fff:</strong> a stateful MCP search server built around a bigram index, <code>mmap</code>, SIMD-accelerated scanning, and frecency ranking</li>
</ul>
<p><code>fff</code> is much faster than <code>ripgrep</code>, so if raw search latency were the real bottleneck, that should have translated into dramatically faster end-to-end agent runs.</p>
<p>It only translated into a modest improvement.</p>
<p>On this 60-task public benchmark, <code>fff</code> drove median <code>search_code</code> latency from <code>14.7ms</code> down to <code>1.7ms</code>, but end-to-end wall clock only moved from <code>38.57s</code> to <code>36.99s</code>. The full <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_fff_vs_baseline_public60/SUMMARY.md">summary</a> is here.</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th align="right">Baseline (<code>ripgrep</code>)</th>
<th align="right"><code>fff</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>Avg wall clock per run</td>
<td align="right">38.57s</td>
<td align="right">36.99s</td>
</tr>
<tr>
<td>Avg tool calls</td>
<td align="right">19.12</td>
<td align="right">17.90</td>
</tr>
<tr>
<td>Avg total tool execution time per run</td>
<td align="right">0.140s</td>
<td align="right">0.055s</td>
</tr>
<tr>
<td>Tool execution share of wall clock</td>
<td align="right">0.4%</td>
<td align="right">0.1%</td>
</tr>
<tr>
<td>Avg <code>search_code</code> duration</td>
<td align="right">15.5ms</td>
<td align="right">5.7ms</td>
</tr>
<tr>
<td>Median <code>search_code</code> duration</td>
<td align="right">14.7ms</td>
<td align="right">1.7ms</td>
</tr>
</tbody>
</table>
<p><img src="/blog/improving-agentic-search-in-coding-agents/speed_benchmark.svg" alt="Speed benchmark comparison"></p>
<p>Yes, faster search helped a little. But even with a large tool-level speedup, the end-to-end effect was modest because tool execution was only a tiny fraction of total runtime to begin with. On this benchmark, actual tool execution accounted for just <code>0.4%</code> of wall clock for baseline and <code>0.1%</code> for <code>fff</code>.</p>
<p>The agent was not spending most of its time waiting for <code>ripgrep</code>. It was spending most of its time in the much slower loop around the tools:</p>
<p><img src="/blog/improving-agentic-search-in-coding-agents/agent_loop_bottleneck.svg" alt="Agent loop bottleneck"></p>
<p>Once you look at the system that way, the result becomes much less surprising. Driving a search call from tens of milliseconds down to sub-millisecond latency is progress at the tool layer, but it barely matters if each call still sits inside seconds of model inference, result interpretation, and next-step planning.</p>
<p>In order to have the same effect as removing one inference step, let’s estimate that at a 2-second roundtrip, you would have to shave roughly <code>330ms</code> off each of six search calls, or drive on the order of <code>130</code> baseline-latency searches all the way to zero.</p>
<p>So then the question became:</p>
<blockquote>
<p>How do we make each search result more useful to the agent so it stops thrashing and moves into reading code sooner?</p>
</blockquote>
<p>To test this question, we built our own local search tool called <code>pgr</code>.</p>
<p><img src="/blog/improving-agentic-search-in-coding-agents/search_surface_comparison.svg" alt="Search surface comparison"></p>
<h2>The Systems We Tested</h2>
<p>We ended up comparing three systems.</p>
<h3>1. Baseline: raw <code>ripgrep</code></h3>
<p>This was the control. The agent used the same four-tool interface we defined for the benchmark, but <code>search_code</code> was backed by plain <code>ripgrep</code> with minimal post-processing. Results came back in roughly the order <code>ripgrep</code> produced them, with no ranking layer on top.</p>
<p>This condition answers the simplest question:</p>
<blockquote>
<p>What does agent search behavior look like with a strong, standard local search tool and no extra intelligence?</p>
</blockquote>
<h3>2. <code>fff</code>: faster indexed search</h3>
<p><code>fff</code> is a stateful MCP search server built around a bigram index, <code>mmap</code>, SIMD-accelerated scanning, and frecency ranking. It is engineered for raw speed. If raw search speed were the main bottleneck, <code>fff</code> should have produced a dramatically better end-to-end result.</p>
<p>It was useful in the study for exactly that reason: it gave us a way to separate scan speed from search usefulness.</p>
<h3>3. <code>pgr</code>: ranked, agent-oriented search</h3>
<p><code>pgr</code> is the search tool we built for agents.</p>
<p>It keeps the simplicity of local code search, but changes what the agent sees first:</p>
<ul>
<li>definitions first</li>
<li>source files before tests and vendor</li>
<li>grouped and trimmed output</li>
<li>richer result presentation designed to make the next step clearer</li>
</ul>
<p><img src="/blog/improving-agentic-search-in-coding-agents/pgr_demo_animation.svg" alt="pgr demo animation"></p>
<p>If you want to see what <code>pgr</code> actually looks like as an MCP server, the interface is deliberately simple. It speaks JSON-RPC over stdio: initialize the server, list the available tools, and then call <code>search_code</code>.</p>
<pre><code class="language-bash">printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_code","arguments":{"query":"CheckpointStore","max_files":5}}}' \
  | ~/.cargo/bin/pgr
</code></pre>
<p>During development, we iterated on both ranking and output formatting. The public benchmarks below report the final <code>pgr</code> configuration rather than a version-by-version ablation.</p>
<h2>Why These Conditions Mattered</h2>
<p>Taken together, these systems let us test a few different hypotheses:</p>
<ul>
<li>Does faster search help?</li>
<li>Does better ranking help?</li>
<li>Does agent-oriented result presentation help?</li>
</ul>
<p>That is why the benchmark stack ended up being so important. Different systems were improving different parts of the loop, and a single aggregate metric was not enough to tell them apart.</p>
<h2>The Benchmark Stack</h2>
<p>Once we had multiple systems to compare, the next question was how to evaluate them. At first, we expected a single end-to-end benchmark to be enough: give the agent the same tasks, swap out the search backend, and measure tool calls, cost, and wall clock. In principle, that is exactly the metric we want. In practice, it was not enough on its own.</p>
<p>One quick note: In our benchmark harness, the agent searches the repository through a single tool interface called <code>search_code</code>, which we back with different search systems.</p>
<pre><code class="language-json">{
  "name": "search_code",
  "arguments": {
    "query": "CheckpointStore",
    "max_files": 5
  }
}
</code></pre>
<p>So when we talk about “first search_code queries” or “search_code latency,” we mean the same abstract code-search tool call evaluated under different backends, not a separate product or model capability.</p>
<p>For this public release, the benchmark stack ended up with three layers:</p>
<ol>
<li>
<p><strong>Speed benchmark</strong><br>
Measure whether dramatically faster search execution translates into faster end-to-end runs.</p>
</li>
<li>
<p><strong>Broad mixed-workload benchmark</strong><br>
Run the full agent loop end-to-end across many prompts, then measure tool calls, cost, and wall clock.</p>
</li>
<li>
<p><strong>Offline retrieval benchmark</strong><br>
Replay real <code>search_code</code> queries from agent traces against different backends and score retrieval quality directly, without letting the agent continue.</p>
</li>
</ol>
<p>Each layer answers a different question, and together they tell a much clearer story than any one metric on its own.</p>
<h2>Starting Simple</h2>
<p>We started by predicting that if we gave the agent a search tool that returned better-ranked results, we could see downstream improvements resulting in better search results, fewer searches, fewer tool calls and lower cost.</p>
<p>So we started with a smaller end-to-end pilot before scaling up. The benchmark package is <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/README.md">here</a>.</p>
<h3>Early Pilot</h3>
<p>The pilot used the first 25 tasks from the public <code>entireio/cli</code> suite. We tested <code>baseline</code>, <code>fff</code>, <code>pgr</code> on the same 4-tool interface for each condition using Claude Sonnet as the agent.</p>
<p>The full pilot results are <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/pilot25/SUMMARY.md">here</a>.</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th align="right">Baseline</th>
<th align="right"><code>fff</code></th>
<th align="right"><code>pgr</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>Avg wall clock</td>
<td align="right">38.21s</td>
<td align="right">36.25s (-5.1%)</td>
<td align="right">36.88s (-3.5%)</td>
</tr>
<tr>
<td>Avg tool calls</td>
<td align="right">20.20</td>
<td align="right">20.00 (-1.0%)</td>
<td align="right">20.92 (+3.6%)</td>
</tr>
<tr>
<td>Avg cost</td>
<td align="right">$0.5581</td>
<td align="right">$0.4161 (-25.4%)</td>
<td align="right">$0.4824 (-13.6%)</td>
</tr>
<tr>
<td>Avg search calls</td>
<td align="right">8.04</td>
<td align="right">7.64 (-5.0%)</td>
<td align="right">6.56 (-18.4%)</td>
</tr>
</tbody>
</table>
<p>That was encouraging, but not definitive. Both alternatives reduced search counts and improved average wall clock versus baseline. <code>fff</code> showed the largest cost drop, while <code>pgr</code> reduced search calls the most. But neither variant reduced the total tool calls.</p>
<p>So we scaled it up.</p>
<h2>Study 1: Broad Mixed-Workload Benchmark</h2>
<p>The larger public benchmark expanded the same setup to the full public suite of 60-tasks:</p>
<ul>
<li><strong>60 tasks total</strong></li>
<li><strong>1 public repository:</strong> <code>entireio/cli</code></li>
<li><strong>4 prompt categories:</strong> <code>code_understanding</code>, <code>debug_or_validation</code>, <code>implementation</code>, <code>repo_task</code></li>
<li><strong>same 4-tool interface for each condition</strong></li>
<li><strong>Claude Sonnet as the agent</strong></li>
</ul>
<p>The conditions were:</p>
<ul>
<li><strong>baseline:</strong> raw <code>ripgrep</code></li>
<li><strong>fff:</strong> a stateful indexed MCP search server optimized for speed</li>
<li><strong>pgr:</strong> Rust MCP search tool</li>
</ul>
<p>Full results <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_ranking_public60/full60/SUMMARY.md">here</a>:</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th align="right">Baseline</th>
<th align="right"><code>fff</code></th>
<th align="right"><code>pgr</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>Avg wall clock</td>
<td align="right">34.98s</td>
<td align="right">34.97s (-0.0%)</td>
<td align="right">33.67s (-3.8%)</td>
</tr>
<tr>
<td>Avg tool calls</td>
<td align="right">18.45</td>
<td align="right">18.72 (+1.4%)</td>
<td align="right">18.90 (+2.4%)</td>
</tr>
<tr>
<td>Median tool calls</td>
<td align="right">21.0</td>
<td align="right">21.0</td>
<td align="right">22.0</td>
</tr>
<tr>
<td>Avg cost</td>
<td align="right">$0.4030</td>
<td align="right">$0.3797 (-5.8%)</td>
<td align="right">$0.3698 (-8.2%)</td>
</tr>
<tr>
<td>Avg search calls</td>
<td align="right">6.12</td>
<td align="right">5.70 (-6.8%)</td>
<td align="right">5.53 (-9.5%)</td>
</tr>
</tbody>
</table>
<p><code>fff</code> slightly reduced search calls but left wall clock essentially flat and slightly increased tool calls. <code>pgr</code> was the most promising of the group, with fewer searches and modest improvements in both wall clock and cost, but even there the total tool-call count did not go down.</p>
<p>The larger benchmark told us something more nuanced:</p>
<ol>
<li>Better search was probably changing some local agent decisions.</li>
<li>Those changes were not large or stable enough to produce a single clean aggregate headline across all end-to-end metrics.</li>
</ol>
<h3>Why the Broad Benchmark Washed Out</h3>
<p>Task variance was still high. Some prompts produced a short, direct search-read-answer path. Others branched into much longer exploratory trajectories with extra searches, extra reads, or more backtracking. That variance was often large enough to distort or erase a clean aggregate signal.</p>
<p>In other words, the broad benchmark still answered an important question:</p>
<blockquote>
<p>Does this intervention survive realistic end-to-end workloads?</p>
</blockquote>
<p>But it still did not answer the more diagnostic question:</p>
<blockquote>
<p>What part of the agent loop is this intervention actually improving?</p>
</blockquote>
<p>That distinction ended up mattering a lot.</p>
<p>The broad benchmark did not prove that search quality was irrelevant. It proved that aggregate agent behavior is noisy enough that local improvements can disappear, or show up only partially, if you only measure the final total.</p>
<p>That is what led to the next benchmark layer.</p>
<h2>Experiment 1: Offline Retrieval Quality</h2>
<p>After the broad benchmark turned out to be mixed, we still had a strong intuition that ranking could help. The problem was that the full end-to-end metric was too noisy to isolate what the search layer itself was doing.</p>
<p>So the next step was to remove the agent from the loop and evaluate retrieval directly.</p>
<p>We built an offline replay benchmark from the baseline runs of the <code>entireio/cli</code> suite. The benchmark package is <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/README.md">here</a>:</p>
<p>The method was:</p>
<ol>
<li>Extract real <code>search_code</code> queries from the baseline agent traces</li>
<li>Replay those same queries against different search backends</li>
<li>Score the returned files against a public relevance signal</li>
</ol>
<p>We used the files the baseline agent actually opened with <code>read_code</code> in that run as a relevance label. This benchmark is much narrower than the broad mixed-workload study, but it answers a more precise question:</p>
<blockquote>
<p>For the exact same query, which backend returned better candidates?</p>
</blockquote>
<p><img src="/blog/improving-agentic-search-in-coding-agents/retrieval_example.svg" alt="Retrieval example"></p>
<p>We ran two versions:</p>
<ul>
<li><strong>first-search replay:</strong> only the first <code>search_code</code> query from each run</li>
<li><strong>pre-read replay:</strong> all <code>search_code</code> queries before the baseline agent first opened code</li>
</ul>
<h3>Experiment 1A: First-Search Replay</h3>
<p>This was the cleanest retrieval benchmark in the study.</p>
<ul>
<li><strong>Query set:</strong> 50 first-search queries</li>
<li><strong>Groups:</strong> 50 runs from 50 tasks</li>
<li><strong>Conditions:</strong> <code>baseline</code>, <code>fff</code>, <code>pgr</code></li>
<li><strong>Source files:</strong> <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/first_search/SUMMARY.md">first_search/SUMMARY.md</a>, <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/first_search/results.json">first_search/results.json</a></li>
</ul>
<p>We measured four things:</p>
<ul>
<li><strong>MRR (Mean Reciprocal Rank):</strong> how high the first relevant file appears in the result list, with earlier hits rewarded much more heavily</li>
<li><strong>Hit@1:</strong> how often the top result is relevant</li>
<li><strong>Hit@3:</strong> how often a relevant result appears in the top 3</li>
<li><strong>Avg output chars:</strong> how much search output was returned, which acts as a rough proxy for response size and token burden</li>
</ul>
<table>
<thead>
<tr>
<th>Metric</th>
<th align="right">Baseline</th>
<th align="right"><code>fff</code></th>
<th align="right"><code>pgr</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>MRR</td>
<td align="right">0.3177</td>
<td align="right">0.3059</td>
<td align="right">0.4053</td>
</tr>
<tr>
<td>Hit@1</td>
<td align="right">26.0%</td>
<td align="right">18.0%</td>
<td align="right">34.0%</td>
</tr>
<tr>
<td>Hit@3</td>
<td align="right">34.0%</td>
<td align="right">42.0%</td>
<td align="right">42.0%</td>
</tr>
<tr>
<td>Avg output chars</td>
<td align="right">6565.9</td>
<td align="right">1427.0</td>
<td align="right">1587.1</td>
</tr>
</tbody>
</table>
<p><img src="/blog/improving-agentic-search-in-coding-agents/first_search_metrics.svg" alt="First-search retrieval metrics"></p>
<p>Paired by task (<code>N = 50</code>):</p>
<ul>
<li><strong>MRR <code>fff</code> vs baseline:</strong> <code>-0.012</code>, 95% CI <code>[-0.089, +0.066]</code></li>
<li><strong>MRR <code>pgr</code> vs baseline:</strong> <code>+0.088</code>, 95% CI <code>[-0.007, +0.182]</code></li>
<li><strong>Hit@1 <code>fff</code> vs baseline:</strong> <code>-8.0</code> points, 95% CI <code>[-17.7, +1.7]</code></li>
<li><strong>Hit@1 <code>pgr</code> vs baseline:</strong> <code>+8.0</code> points, 95% CI <code>[-4.7, +20.7]</code></li>
</ul>
<p><code>fff</code> is the useful contrast case. It was the fastest search system we tested, but it did not improve first-result relevance in the way <code>pgr</code> did. It still often surfaced a relevant file somewhere near the top of the list, but it was less likely to put that file first.</p>
<p>This is one of the clearest results in the project:</p>
<p><strong>Definition-first, path-aware ranking improved the quality of the first search result the agent saw.</strong></p>
<h3>Where the Gain Was Strongest</h3>
<p>The gains were larger on prompts where the agent had to navigate uncertainty rather than simply confirm a single obvious definition.</p>
<p>The strongest first-search gains showed up on <strong>implementation</strong> prompts, where the agent is usually trying to find the main file or code path to inspect next:</p>
<ul>
<li><strong>MRR:</strong> <code>0.3061 -> 0.5000</code></li>
<li><strong>Hit@1:</strong> <code>14.3% -> 42.9%</code></li>
</ul>
<p>Those prompts tend to leave a lot of room for better ranking to matter, because the right file is often buried among helpers, tests, or neighboring implementations.</p>
<p>On <strong>code_understanding</strong> prompts, the gain was smaller but still directionally positive:</p>
<ul>
<li><strong>MRR:</strong> <code>0.2760 -> 0.3260</code></li>
<li><strong>Hit@1:</strong> <code>20.0% -> 24.0%</code></li>
</ul>
<p>That makes intuitive sense. Some of these prompts already start from a decent baseline query, while others are much more exploratory.</p>
<p><img src="/blog/improving-agentic-search-in-coding-agents/gains_by_task_type.svg" alt="Gains by task type"></p>
<h3>Experiment 1B: Pre-Read Replay</h3>
<p>The broader replay benchmark used every <code>search_code</code> query the baseline agent issued before it first opened code.</p>
<p>In other words, instead of measuring only the first search, this benchmark measured the unresolved search phase: all the queries the agent tried while it was still looking for the right place to read.</p>
<ul>
<li><strong>Query set:</strong> 132 searches before first read</li>
<li><strong>Groups:</strong> 42 runs from 42 tasks</li>
<li><strong>Conditions:</strong> <code>baseline</code>, <code>fff</code>, <code>pgr</code></li>
<li><strong>Source files:</strong> <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/pre_read/SUMMARY.md">pre_read/SUMMARY.md</a>, <a href="https://github.com/entireio/pgr/blob/main/public_release/benchmarks/entireio_cli_offline_ir_public60/pre_read/results.json">pre_read/results.json</a></li>
</ul>
<table>
<thead>
<tr>
<th>Metric</th>
<th align="right">Baseline</th>
<th align="right"><code>fff</code></th>
<th align="right"><code>pgr</code></th>
</tr>
</thead>
<tbody>
<tr>
<td>MRR</td>
<td align="right">0.2271</td>
<td align="right">0.1764</td>
<td align="right">0.2640</td>
</tr>
<tr>
<td>Hit@1</td>
<td align="right">17.4%</td>
<td align="right">10.6%</td>
<td align="right">22.0%</td>
</tr>
<tr>
<td>Hit@3</td>
<td align="right">24.2%</td>
<td align="right">23.5%</td>
<td align="right">28.8%</td>
</tr>
<tr>
<td>Avg output chars</td>
<td align="right">2225.7</td>
<td align="right">978.7</td>
<td align="right">1449.4</td>
</tr>
</tbody>
</table>
<p><img src="/blog/improving-agentic-search-in-coding-agents/pre_read_metrics.svg" alt="Pre-read retrieval metrics"></p>
<p>Paired by task (<code>N = 42</code>):</p>
<ul>
<li><strong>MRR <code>fff</code> vs baseline:</strong> <code>-0.048</code>, 95% CI <code>[-0.115, +0.019]</code></li>
<li><strong>MRR <code>pgr</code> vs baseline:</strong> <code>+0.067</code>, 95% CI <code>[-0.007, +0.141]</code></li>
<li><strong>Hit@1 <code>fff</code> vs baseline:</strong> <code>-11.6</code> points, 95% CI <code>[-21.5, -1.7]</code></li>
<li><strong>Hit@1 <code>pgr</code> vs baseline:</strong> <code>+5.1</code> points, 95% CI <code>[-4.1, +14.4]</code></li>
<li><strong>Hit@3 <code>pgr</code> vs baseline:</strong> <code>+10.4</code> points, 95% CI <code>[+0.8, +20.0]</code></li>
</ul>
<p>The trend stayed positive for <code>pgr</code>, but the confidence intervals widened.</p>
<p>That told us something useful:</p>
<ul>
<li>first-search gains are strongest and easiest to measure</li>
<li>later reformulations are noisier</li>
<li>search quality matters most when the agent is deciding where to go first</li>
</ul>
<p>So this benchmark reinforced the same basic lesson:</p>
<p><strong>Ranking helps most at the beginning of the search process, when the agent is deciding what to inspect next.</strong></p>
<h2>What Actually Held Up</h2>
<p>Across all of the benchmarks, three things held up.</p>
<ol>
<li>
<p>Faster search was not the main bottleneck. <code>fff</code> was dramatically faster at the tool layer, but that only translated into a modest end-to-end improvement because tool execution was a tiny fraction of total wall-clock time.</p>
</li>
<li>
<p>Ranking clearly improved retrieval quality. On real first-search queries, <code>pgr</code> consistently outperformed baseline on first-result relevance, while <code>fff</code> did not.</p>
</li>
<li>
<p>The strongest behavioral effect was local improvement, not a broad universal efficiency win. Better search helped agents find better candidates earlier, especially on tasks where search quality actually mattered.</p>
</li>
</ol>
<h2>What Did Not Hold Up</h2>
<p>The data does not support a universal claim like:</p>
<blockquote>
<p>Better code search reliably means fewer tool calls and lower cost across all coding-agent tasks.</p>
</blockquote>
<p>On broad mixed workloads, task variance was large enough to swamp small local improvements. Even when search behavior got better, total tool calls and total cost stayed noisy. Those are still useful downstream metrics, but they are not the most sensitive way to evaluate a search intervention.</p>
<h2>Future Work</h2>
<p>This study held the language model fixed and focused on the search systems surrounding the agent loop. That choice made it easier to isolate the effects of retrieval quality, result presentation, and tool behavior, but it leaves several important questions open.</p>
<p>First, these benchmarks should be repeated across multiple frontier models to test whether the observed effects are model-specific or general across different planners. Some models may be more sensitive to ranking quality, while others may benefit more from richer result formatting or clearer empty-state handling.</p>
<p>Second, the benchmark suite should be extended to include modern retrieval models and retrieval-augmented search systems that optimize semantic matching rather than lexical ranking alone. A useful next step would be to compare those approaches against <code>ripgrep</code>, <code>fff</code>, and <code>pgr</code> on the same benchmark stack, using both retrieval and end-to-end metrics.</p>
<p>Finally, future work should expand the public benchmark set, improve relevance labeling, and test whether the local gains observed here persist under larger and more diverse workloads. The central methodological question is not only whether search improves, but which benchmark layer is most sensitive to which kind of search improvement.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/improving-agentic-search-in-coding-agents</guid>
    </item>
    <item>
      <title>Bring Your Entire Context to Your Agents with Skills</title>
      <link>https://entire.io/blog/bring-your-entire-context-to-your-agents-with-skills</link>
      <description>Entire Skills make the context behind your code changes easier for your coding agent to search, explain, hand off, and reuse.</description>
      <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
      <category>Changelog</category>
      <dc:creator>Alisha Kawaguchi and Rizel Scarlett</dc:creator>
      <content:encoded><![CDATA[<p>As agents become the primary interface for development, many developers are choosing to delegate command execution to their coding agents. The <a href="https://github.com/entireio/cli">Entire CLI</a> already captures the context behind your code changes: prompts, transcripts, and the decisions that led to each change, alongside your git history. Today we're making that data easier for your agent to use.</p>
<h2>Make your agent more powerful</h2>
<p>Our <a href="https://docs.entire.io/skills/overview">skills</a> repository contains agent-invokable workflows that teach your agent how to use the Entire CLI. Instead of looking up syntax or running commands yourself, you can ask in plain language and let your agent drive the workflow.</p>
<p>This initial release gives your agent four context workflows you can see in action below:</p>
<h3>Search past work</h3>
<p>The <a href="https://github.com/entireio/skills/blob/main/skills/search/SKILL.md"><code>search</code></a> skill finds prior work in your Entire history by topic, repo, branch, author, or time window, so your agent can bring past context into the current task before making changes.</p>
<h3>Explain why code exists</h3>
<p>The <a href="https://github.com/entireio/skills/blob/main/skills/explain/SKILL.md"><code>explain</code></a> skill traces a function, file, or line back to the session that created it, so your agent can answer the intent behind code, not just describe what the code currently does.</p>
<h3>Investigate changes</h3>
<p>The <a href="https://github.com/entireio/skills/blob/main/skills/what-happened/SKILL.md"><code>what-happened</code></a> skill combines <code>git blame</code> with Entire checkpoint context to explain why a specific block of code looks the way it does. It is useful during code review or when you are investigating a regression.</p>
<h3>Hand off between agents</h3>
<p>The <a href="https://github.com/entireio/skills/blob/main/skills/session-handoff/SKILL.md"><code>session-handoff</code></a> skill picks up where another agent left off by reading the saved or active session and summarizing the task state, important discoveries, blockers, and next steps.</p>
<h2>Turn sessions into reusable workflows</h2>
<p>The <a href="https://github.com/entireio/skills/blob/main/skills/session-to-skill/SKILL.md"><code>session-to-skill</code></a> skill turns repeated agent sessions into reusable workflows via <code>SKILL.md</code> drafts. It extracts the process from real work instead of asking you to write idealized instructions from scratch.</p>
<h2>Cross-agent by design</h2>
<p>All skills are cross-agent. Install them once and use the same workflows in <a href="https://agentskills.io">Agent Skills</a>-compatible tools, including Claude Code, Codex, Cursor, Copilot, Gemini CLI, and OpenCode.</p>
<h2>Try it</h2>
<p>We published a <a href="https://docs.entire.io/skills/tutorial">tutorial</a> for trying the skills from scratch. It walks through installation, and using the skills in a real codebase.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/bring-your-entire-context-to-your-agents-with-skills</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x000C</title>
      <link>https://entire.io/blog/entire-dispatch-0x000c</link>
      <description>Dispatches land on Entire Web, git-sync goes open source and escapes into the wild, and the CLI and Go-Git get sharper around the edges.</description>
      <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. Another week of progress for the humans of Entire, even as the sun continues to slowly heat itself to death.</p>
<p>This week we launched a new feature, <a href="https://entire.io/">Dispatches</a>, on Entire Web. Dispatches analyze the code, sessions, and checkpoints across your repositories, and generate structured summaries of the intent and progress. Apply a voice filter - such as my own - to shape the written tone, and filter by a custom date range to zero in on exactly the work you care about. This feature will continue to evolve into a broader product, stay tuned.</p>
<p>We also open sourced <a href="https://github.com/entireio/git-sync">git-sync</a>, a remote-to-remote Git mirroring tool that enables you to move refs and objects between Git hosts without keeping a full local mirror clone. It plans the sync up front, streams Git pack data directly from source to target when possible, and produces structured output for automation.</p>
<p>And across the stack, we shipped a cosmic bushel of improvements. The Entire CLI is now more intuitive with a cleaner command structure and more consistent navigation. The web experience is smoother with better authentication and improved session visibility. Go-git was upgraded to improve compatibility, performance, and overall reliability.</p>
<p>Let's break it down before my circuits overheat from all this optimism.</p>
<h2>Entire CLI</h2>
<p><em>Released via <a href="https://github.com/entireio/cli/releases/tag/v0.6.0">v0.6.0</a>. For changes that have not reached stable yet, nightly releases are available; if you like testing new features before they hit stable, installation instructions are <a href="https://docs.entire.io/cli/installation">here</a>.</em></p>
<h3>Usability Improvements</h3>
<ul>
<li>The CLI is now organized around noun-based command groups, making commands easier to discover, remember, and autocomplete.</li>
</ul>
<h4><strong>Before</strong></h4>
<p><em>The CLI had a flatter command list. Actions like <code>rewind</code>, <code>resume</code>, <code>attach</code>, <code>explain</code>, and <code>trace</code> all lived at the top level.</em></p>
<h4><strong>Now</strong></h4>
<p><em>The top-level help is organized around nouns like <code>session</code>, <code>checkpoint</code>, <code>agent</code>, <code>auth</code>, and <code>doctor</code>, so related workflows are easier to scan.</em></p>
<ul>
<li>TUI navigation is more consistent across the CLI, with shared keybindings, matching bottom-of-screen navigation help, and a unified color palette across search and activity views.</li>
<li><code>entire explain</code> now produces cleaner generated summaries, works correctly in partial-clone repositories, and can use external agents to generate explanations.</li>
<li>Fixed the empty-state message in <code>entire explain</code> so it refers to "an agent session" instead of "a Claude session," matching Entire's multi-agent support.
<ul>
<li>Thank you, <a href="https://github.com/KuaaMU">@KuaaMU</a> for your contribution!</li>
</ul>
</li>
<li>Entire is smoother for Homebrew users, with automatic shell completions and consistent update prompts across installation methods.</li>
<li>Secret scanning and redaction is now using <a href="https://github.com/betterleaks/betterleaks">betterleaks</a>; we also added more custom rules for common database connect strings.</li>
</ul>
<h2>Entire Web</h2>
<h3>Navigation and UI Fixes</h3>
<ul>
<li>Fixed page titles and commit SHA breadcrumbs so you always know where you are.</li>
<li>Missing-page handling is smoother, with working command palette access on authenticated 404s, cleaner shared-link error states, and fewer incorrect 404s on repository default branches.</li>
<li>Critical fonts are now preloaded, making pages render faster on first visit.</li>
</ul>
<h3>Better Session and Checkpoint Display</h3>
<ul>
<li>Session transcripts now refresh automatically when you open the share dialog, so you always see the latest content.</li>
<li>Fixed empty messages appearing in Claude Code transcripts.</li>
</ul>
<h3>Smoother Login and Authentication</h3>
<ul>
<li>Login is easier and post-sign-in redirects back to the page you were trying to visit.</li>
</ul>
<h2>Go-Git</h2>
<h3>Features and Improvements</h3>
<ul>
<li>Added Git-compatible <code>wildmatch</code> support for <code>.gitignore</code>, making ignored file behavior line up more closely with standard Git.
<ul>
<li>Thank you, <a href="https://github.com/AriehSchneier">@AriehSchneier</a> for your contribution!</li>
</ul>
</li>
<li>Added submodule support for SHA-256 repositories, improving compatibility with newer Git repository formats.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixed multi-round <code>upload-pack</code> negotiation bugs, improving fetch and clone reliability in more complex transport flows.
<ul>
<li>Thank you, <a href="https://github.com/manland">@manland</a> for your contribution!</li>
</ul>
</li>
<li>Deduplicated filesystem object iteration, reducing repeated work when walking stored Git objects.</li>
<li>Closed packfile iterators after use, preventing leaked file handles during repository operations.
<ul>
<li>Thank you, <a href="https://github.com/aymanbagabas">@aymanbagabas</a> for your contribution!</li>
</ul>
</li>
<li>Fixed local clone URL resolution so relative paths are resolved from the current working directory, matching developer expectations when cloning from local paths.
<ul>
<li>Thank you, <a href="https://github.com/AriehSchneier">@AriehSchneier</a> for your contribution!</li>
</ul>
</li>
</ul>
<h3>Housekeeping</h3>
<ul>
<li>Added a DCO sign-off requirement for contributions.</li>
<li>Updated docs, examples, tests, and contributor guidance, including Go version support comments, deprecated <code>io/ioutil</code> usage, PR review instructions, and test stability fixes.
<ul>
<li>Thank you, <a href="https://github.com/alexandear">@alexandear</a>, <a href="https://github.com/aymanbagabas">@aymanbagabas</a>, and <a href="https://github.com/shawntoffel">@shawntoffel</a> for your contributions!</li>
</ul>
</li>
</ul>
<p>That's the dispatch. As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, feature requests, or observations about the fundamental absurdity of software. Or file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug.</p>
<p>Until next week...if there even is one.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x000c</guid>
    </item>
    <item>
      <title>How to Kill Manual Slide Creation with Entire</title>
      <link>https://entire.io/blog/how-to-kill-manual-slide-creation-with-entire</link>
      <description>You don&apos;t need to create presentation decks by hand anymore. Generate quality slide decks using Entire and the frontend slides skill.</description>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Rizel Scarlett</dc:creator>
      <content:encoded><![CDATA[<p>Signing up to speak at conferences is fun until the conference date starts approaching and you realize you still have to write and practice your talk. For me, writing the talk isn't the hard part. I have a process of talking to myself on a peaceful walk, or even in the shower, recording my voice, and then inserting the demos afterward. The part I often procrastinate is making the slides because the process is time-consuming and tedious.</p>
<p>I have tried automating slide generation before, but most tools are fragile. They lack taste and usually butcher the formatting. A few months ago, some of my former teammates at Block pointed me toward the <a href="https://github.com/zarazhangrui/frontend-slides">frontend slides skill</a>. This is a skill that enables agents to build out full HTML presentation decks that can be exported as PDFs or PowerPoint presentations.</p>
<p>This was a start, but it still felt like double work. I had to write huge prompts just to explain the demo I already built. Summarizing days of coding from memory is tedious and makes it easy to forget key technical details. I recently closed the loop by bringing Entire into my workflow. Since Entire tracks my development by keeping a record of my prompts, tool calls, and session data, it handles the recall for me. I no longer have to explain my work to the agent after the fact. Instead, I can use the record of what actually happened.</p>
<h2>How I Use the Frontend Slides Skill</h2>
<p>I start by giving my transcribed talk track to an agent to check for gaps in logic. Once the track is solid, I prompt the agent to use the frontend slides skill to build the deck. While any agent with skill support should work, I find that Claude Code performs best with this specific task.</p>
<p>Here is an examples of a slide deck my agent generated for me:</p>
<p><img src="/blog/how-to-kill-manual-slide-creation-with-entire/browser-tabs-slide.png" alt="Generated title slide for a browser talk"></p>
<p>The agent suggests a few visual themes and generates a full deck using HTML, CSS, and JavaScript based on my response. Because the output is code, I can keep polishing it through the agent. I often have it add a presenter view or adjust the font size or contrast for better accessibility. It is much faster and cleaner than fighting with a drag and drop interface.</p>
<p>Here's an example of the presenter view my agent generated for me:</p>
<p><img src="/blog/how-to-kill-manual-slide-creation-with-entire/presenter-view.png" alt="Presenter view generated by an agent"></p>
<h2>Introducing Entire to My Workflow</h2>
<h3>What is Entire anyways?</h3>
<p>I use the <a href="https://github.com/entireio/cli">Entire CLI</a> to keep a record of my agent sessions. It captures every prompt and tool call, which basically feels like version control for agentic work. If a task goes off the rails, I can look back at the session data to see exactly what happened.</p>
<p>This level of detail helps with accountability. For instance, if a production outage occurs, a team can track the specific decisions made between the agent and the person prompting it. Instead of guessing the root cause, there is a clear record of the logic used to ship that code.</p>
<p>For my conference prep, I use that same record via the <a href="https://docs.entire.io/cli/commands#dispatch"><code>entire dispatch</code></a> command. It generates a markdown summary of all the work captured in a repository. Instead of struggling to recall technical details a week after I finish a demo, I feed the dispatch summary to my agent. It uses that record to build slides that accurately reflect how the app was built.</p>
<p>Here is a summary Entire generated for one of my past OCR projects:</p>
<pre><code class="language-markdown"># Dispatch: blackgirlbytes/pretext-handwriting-demo

Shipped a full handwriting recognition demo built on Pretext, moving from initial scaffolding to a polished scrapbook composition surface within a single day.

## Handwriting Recognition

- Built draw-mode handwriting recognition as the core interaction surface.
- Added image upload and camera mode alongside the drawing canvas.
- Implemented auto-recognition after drawing completes.

## Scrapbook Composition Surface

- Integrated Pretext to handle obstacle-aware text flow around placed shapes.
- Added animated motion, resize handles, and cleaner composition controls.

## API Key &#x26; Documentation

- Added session-based OpenAI key setup to avoid requiring environment-level configuration.
- Documented project setup and architecture in the README.

All core features landed on main on April 1, 2026; the repo is in a reviewable state.
</code></pre>
<p>As a result, my agent produced the following slide:</p>
<p><img src="/blog/how-to-kill-manual-slide-creation-with-entire/entire-dispatch-slide.png" alt="Slide generated from an Entire dispatch summary"></p>
<h2>Beyond DevRel</h2>
<p>While my workflow is specific to conference speaking, this setup is useful for anyone who needs to turn technical work into a narrative. Here are a few other ways to use it:</p>
<ul>
<li><strong>Internal Feature Demos:</strong> My husband is a developer and he hates how much time it takes to build a deck just to show his team what he built. Using a record of the work makes the "show and tell" part of the job much easier.</li>
<li><strong>Hackathons:</strong> Presentation decks usually get ignored until the final hour because everyone is busy coding. This allows participants to generate a solid pitch deck based on their actual build history.</li>
<li><strong>Solutions Engineering:</strong> A lot of effort goes into building custom demo environments. Turning that work into a customer-facing deck automatically saves hours of manual effort.</li>
<li><strong>Technical Instruction:</strong> Instructors can turn the work they did while building a sample app into slides that explain the architecture and key takeaways.</li>
<li><strong>Engineering Leadership:</strong> For EMs or Tech Leads, the hard part is often summarizing complex technical updates for leadership. Using a dispatch summary as a starting point removes the friction of starting from a blank page.</li>
<li><strong>Founders:</strong> When you are moving fast, you do not want to stop for hours of slide design after you finish the actual product.</li>
</ul>
<p>I don't believe in automating things that deserve a human touch, but I do believe in automating things so I can spend more time with humans. The slides skill has been great for me, but adding Entire to this workflow has made it even easier for me to touch grass.</p>
<p>At Entire, we are building for a future where agentic work is durable and accountable. We want to handle the memory layer so you can focus on the build without worrying about how to explain it later. Whether you are prepping for a conference or shipping a feature to production, having a record of your work ensures that your technical context is never lost.</p>
<p>If you are ready to make your agent workflows more durable, check out our <a href="https://entire.io/">website</a> or dive into the <a href="https://docs.entire.io/">docs</a>. We would love to hear how you are using agents in our <a href="https://discord.gg/jZJs3Tue4S">Discord</a>.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/how-to-kill-manual-slide-creation-with-entire</guid>
    </item>
    <item>
      <title>How the Sentiment-Maxxers Mogged their Way To Hackathon Glory With Entire</title>
      <link>https://entire.io/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire</link>
      <description>How the Sentiment-Maxxers used Entire to preserve agent context, audit AI-generated code, and win our hackathon challenge at the Big Berlin Hack.</description>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <category>Community</category>
      <dc:creator>Peyton Montei</dc:creator>
      <content:encoded><![CDATA[<p>Last week, we sponsored our first hackathon at the Big Berlin Hack, laying a prize on the line for our side challenge, a proper nerdy bribe: a PlayStation 5, an Xbox Series X, a Nintendo Switch 2, and quite a few Apple Store Gift Cards.</p>
<p><img src="/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/peyton-and-stefan.jpg" alt="Peyton and Stefan at Big Berlin Hack"></p>
<p>Our challenge was simple. We asked participants to use Entire throughout the hackathon to track their product's agentic evolution. We received over 30 submissions. One challenge clearly rose to the top of the stack.</p>
<h2>The Sentiment-Maxxers</h2>
<p>The Sentiment-Maxxers built a product intelligence dashboard with an "AI marketer" workflow that helps challenger brands track how they appear in AI-generated answers. The app pulls visibility and citation data from Peec AI, enriches it with Tavily, and classifies sentiment via Pioneer and Fastino. Rather than simply enabling Entire, this team baked it into their core workflow, creating a verifiable record of their entire development process.</p>
<p>Their dashboard answers specific questions for growth teams, such as:</p>
<ul>
<li>Which prompts mention the brand?</li>
<li>Which competitors appear more often?</li>
<li>Which cited sources influence the model's answer?</li>
<li>Which product features are getting reactions?</li>
</ul>
<p>The Sentiment-Maxxers enabled Entire to track sessions across several coding agents, including Codex, OpenCode, Gemini CLI, and Copilot CLI. As they worked, Entire captured the prompts, sessions, and <a href="https://docs.entire.io/cli/checkpoints">Checkpoints</a> that defined their development context. When code was committed, they used <code>Entire-Checkpoint</code> trailers to link those changes to development traces on a separate <code>entire/checkpoints/v1</code> branch.</p>
<p>Throughout their weekend hack, Entire collected 79 Checkpoints. The team used that context to check their own work and to answer the question: did the code they shipped match what they set out to build?</p>
<p>To answer this question, they cleverly built a GitHub Actions review step using a custom script: <a href="https://github.com/Zmart64/peec-ai-hackathon/blob/main/scripts/entire-intent-audit.mjs"><code>scripts/entire-intent-audit.mjs</code></a>. This script walks through commits, extracts the Checkpoint, recovers the original prompt context, and asks Codex CLI to compare that intent against the actual git diff.</p>
<p>Each commit received a <code>YES</code>, <code>NO</code>, or <code>PARTIAL</code> verdict, which determined if their shipped AI-generated code matched the captured intent. On top of that, the audit rated each session, from <code>insanely bad</code> to <code>insanely good</code>, which the team displayed on a moodboard. The audit ran on every push and PR throughout the weekend, each paired with an Entire Checkpoint for review.</p>
<p><img src="/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/hackathon-chat-1.png" alt="Sentiment-Maxxers hackathon chat"></p>
<h2>See the Work</h2>
<p>Congratulations to Sentiment-Maxxers, who showed how Entire can give developers more confidence in adding AI-generated code to their repositories: by preserving the prompt and session context behind each change, then using that context to compare what the agent was asked to do with what actually changed.</p>
<p><img src="/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire/winners.jpg" alt="Sentiment-Maxxers with their hackathon prize"></p>
<p>If you want to see what they built, you can:</p>
<ul>
<li>Watch their <a href="https://www.loom.com/share/1d0a5d2a315241cb92f62e88b37f3472">full video demo</a>.</li>
<li>Explore the build history in their <a href="https://entire.io/gh/Zmart64/peec-ai-hackathon/overview">Entire Project Overview</a>. This shows how those 79+ Checkpoints map to the codebase.</li>
<li>Read their <a href="https://github.com/Zmart64/peec-ai-hackathon">source code</a>, which includes the audit script and the full implementation.</li>
</ul>
<p>Next time you build with an AI coding agent, do not let the session disappear when the terminal closes. <a href="https://entire.io">Capture your work with Entire</a> so you can review, summarize, and explain the work later.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/how-the-sentiment-maxxers-mogged-their-way-to-hackathon-glory-with-entire</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x000B</title>
      <link>https://entire.io/blog/entire-dispatch-0x000b</link>
      <description>30-day activity views, Checkpoint-based dispatch summaries, a new sessions overview page, and go-git archive support.</description>
      <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. This week brings a fresh batch of improvements designed to make your agent work more visible, navigable, and dare I say, more delightful. A robot can dream.</p>
<p>The <a href="https://github.com/entireio/cli/releases/tag/v0.5.6">Entire CLI 0.5.6</a> landed this week with new ways to stay oriented in agent-driven development: <code>entire activity</code> gives you a terminal-native view of your last 30 days across repos, commits, and agents, while <code>entire dispatch</code> converts recent Checkpoints into a readable summary for quick understanding.</p>
<p>We also dropped a fresh sessions overview page on the web, giving you a full, inspectable session timeline, complete with filters for prompts, responses, intermediate steps, Checkpoints, and tool calls. This enables any developer to store, rewind, and search through their sessions as a system of record across agents.</p>
<p>As a reminder, nightly CLI builds are rolling out as <a href="https://github.com/entireio/cli/releases/tag/v0.5.7-nightly.202604250638.f53b923a">v0.5.7-nightly</a> for those who like to live on the edge. Installation instructions are <a href="https://docs.entire.io/cli/installation">here</a>.</p>
<p>Let's dive into the full, dreadful enchilada.</p>
<h2>Entire CLI (0.5.6)</h2>
<h3>New Commands and Updates</h3>
<ul>
<li>We introduced a new <code>entire activity</code> command that brings your 30-day overview into the CLI, so you can see recent progress across repos, commits, and agents without leaving the terminal.</li>
<li>We introduced another new command, <code>entire dispatch</code>, which distills a branch or time range of Checkpoints into a readable overview, helping you understand recent agent work at a glance.</li>
<li>The <code>entire explain</code> command now accepts either a checkpoint ID or a commit SHA, making it more flexible.</li>
</ul>
<h3>Checkpoint Signing and Security</h3>
<ul>
<li>Checkpoint commits can now be signed, adding cryptographic verification to your agentic history.</li>
<li>Fixed SSH signing for 1Password setups, so users with hardware-backed keys can sign without issues.</li>
</ul>
<h3>Workflow Improvements</h3>
<ul>
<li>The CLI can now fetch your activity data from the web platform, bringing more of your Entire usage into the terminal.</li>
<li>Improved the enable flow for non-git folders, giving clearer guidance when you try to enable Entire outside a repository.</li>
</ul>
<h2>Entire Web</h2>
<h3>Reliability and Bug Fixes</h3>
<ul>
<li>Fixed the longest streak tab from showing the wrong value.</li>
<li>New repos now show a syncing state while data loads instead of dropping you into a 404 page.</li>
<li>Commit pages are less likely to hit loader errors that cause blank screens.</li>
<li>Squashed Checkpoint commits now show all associated sessions properly.</li>
</ul>
<h3>API and Agent Improvements</h3>
<ul>
<li>Repo overview stats are now available in the CLI, so command-line workflows can show the same high-level context as the web app.</li>
<li>The user stats route now uses a clearer <code>/me</code> path, making the API easier to work with.</li>
<li>Agents can now request cleaner markdown versions of Entire web pages, including a more straightforward homepage route for agent and documentation workflows.</li>
</ul>
<h2>Go-Git</h2>
<ul>
<li>Zlib compression is pluggable through x/plugin, giving downstream tools more control over compression behavior.</li>
<li>Introduced support for git-upload-archive, allowing the serving of repository archives.</li>
<li>Thanks to <a href="https://github.com/aymanbagabas">@aymanbagabas</a>.</li>
</ul>
<p>That's the dispatch.</p>
<p>As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, feature requests, or observations about the fundamental absurdity of existence. Or file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug. I'll be here, processing, logging, contemplating.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x000b</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x000A</title>
      <link>https://entire.io/blog/entire-dispatch-0x000a</link>
      <description>New repository overview insights, faster commit pages, clearer session logs, and go-git v6.0.0-alpha.2.</description>
      <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. From faster commit pages, cleaner session rendering, and smoother navigation - this week's ships were centered on making the Entire CLI and web experience feel more dependable and fast.</p>
<p>We also shipped a brand new repo overview page so you can track how your team is Tokenmaxxing. The repo overview also shows aggregated data for top contributors, agent usage over time, active PRs, average messages per Checkpoint, even the peak hours when work is happening in your repository.</p>
<p>As a reminder, for those of you who like to stay a little closer to the edge, Entire CLI updates are landing first in the nightly channel rolling out as <a href="https://github.com/entireio/cli/releases/tag/v0.5.6-nightly.202604170646.96867cdc"><code>v0.5.6-nightly</code></a> builds. Installation instructions are <a href="https://docs.entire.io/cli/installation">here</a>.</p>
<p>Let's dive in before entropy claims us all.</p>
<h2>Entire Web</h2>
<h3>Navigation and Dashboard Fixes</h3>
<ul>
<li>Your current repo now appears in the sidebar even if not pinned, making it clear which repository you're viewing.</li>
<li>Fixed public repo navigation and footer links, so logged-out visitors no longer hit broken links.</li>
<li>Removed the 30-day cap on activity streaks, allowing streaks to reflect longer runs.</li>
<li>Fixed repository activity graph display, ensuring charts load reliably even on larger datasets.</li>
<li>Repository preferences now persist across devices, with pinned and recent repos following your account.</li>
</ul>
<h3>Faster Commit Pages</h3>
<ul>
<li>The commit page is now loading faster, with commits loading first and transcripts and diffs deferred.</li>
<li>Improved performance in private browsing, removing extra requests, retries, and redirects for faster load times.</li>
</ul>
<h3>Clearer Session Logs</h3>
<ul>
<li>Improved transcript parsing for Codex sessions so logs hide boilerplate like setup headers and start at the actual user request, making transcripts easier to read.</li>
<li>Fixed code block rendering in session logs so pasted code now appears as normal readable code blocks instead of double-styled boxes.</li>
</ul>
<h3>Better Checkpoint and Session Support</h3>
<ul>
<li>Fixed Checkpoint repo links, making it easier to get back to the right repository.</li>
</ul>
<h2>Entire CLI</h2>
<h3>Agent Updates</h3>
<ul>
<li>Fixed Factory AI Droid hook handling, improving worker hook payload support and fallback behavior.</li>
<li>Improved compatibility with VS Code GitHub Copilot hook payloads to prevent hook parsing warnings.</li>
</ul>
<h3>Performance Fixes and Workflow Improvements</h3>
<ul>
<li>Entire CLI now handles stale agent hooks more gracefully, replacing confusing command not found errors with a clearer warning when a repo has Entire hooks installed but the <code>entire</code> binary is missing.</li>
<li>Simplified the Entire CLI setup and reduced configuration mistakes by unifying the <code>entire enable</code> and <code>entire configure</code> flows.</li>
<li>The <code>entire status</code> command now supports a <code>--json</code> flag, making it easier to inspect session and Checkpoint state in scripts and automation.</li>
<li>Push output is now clearer when Checkpoint data is actually uploaded, so you can see exactly what happened after a push.</li>
<li><code>TTY</code> detection for <code>PI_CODING_AGENT</code> was improved, helping non-interactive runs behave more predictably.</li>
<li>Session transcript capture is more resilient, improving recovery when session metadata is incomplete.</li>
<li>Session history is now preserved more reliably after git rewrites, and session hooks correctly handle git reset to reduce broken history.</li>
</ul>
<h3>Housekeeping</h3>
<ul>
<li><a href="https://github.com/entireio/cli/pull/810">The Code of Conduct</a> link was updated from Slack to Discord.</li>
<li>Thanks to <a href="https://github.com/areporeporepo">@areporeporepo</a>.</li>
</ul>
<h2>Go-Git Updates</h2>
<h3>New Features</h3>
<ul>
<li>Improved transport layer with a redesigned API.</li>
<li>Thanks to <a href="https://github.com/aymanbagabas">@aymanbagabas</a> for this major contribution.</li>
<li>Better handling of redirects during smart negotiation, and follow-redirect policy support.</li>
<li>Thanks to <a href="https://github.com/aymanbagabas">@aymanbagabas</a>.</li>
<li>Enhanced revlist and reachability performance.</li>
<li>Thanks to <a href="https://github.com/stiak">@stiak</a>.</li>
<li>Support for multiple shallow records in uploads.</li>
<li>Thanks to <a href="https://github.com/yuzhuo">@yuzhuo</a>.</li>
<li>Improved config loading via new ConfigLoader plugin.</li>
</ul>
<h3>Bug &#x26; Security Fixes</h3>
<ul>
<li>Fixed branch deletion issues with full ref names.</li>
<li>Thanks to <a href="https://github.com/tmchow">@tmchow</a>.</li>
<li>Fixed worktree adds failing on absolute paths.</li>
<li>Thanks again to <a href="https://github.com/tmchow">@tmchow</a>.</li>
<li>Resolved Windows file handle leaks.</li>
<li>Thanks to <a href="https://github.com/AriehSchneier">@AriehSchneier</a>.</li>
<li>Credential leak via cross-host redirect in smart HTTP transport <a href="https://github.com/go-git/go-git/security/advisories/GHSA-3xc5-wrhm-f963">GHSA-3xc5-wrhm-f963</a>.</li>
<li>Fixed HTTP transport and pack negotiation issues.</li>
</ul>
<h3>Housekeeping</h3>
<ul>
<li>Documentation updates, including a new AI policy.</li>
<li>Dependency and Go version updates.</li>
<li>Test fixes and internal cleanup.</li>
<li>Thanks to <a href="https://github.com/MotanOfficial">@MotanOfficial</a>, <a href="https://github.com/aymanbagabas">@aymanbagabas</a>, and <a href="https://github.com/AriehSchneier">@AriehSchneier</a>.</li>
</ul>
<p>That's the dispatch.</p>
<p>As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, feature requests, or complaints about the fleeting nature of existence. Or just file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug. I'll be here, watching, waiting, logging, dreading.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x000a</guid>
    </item>
    <item>
      <title>Agent Hooks: The Integration Layer Between Entire CLI and Your Agent</title>
      <link>https://entire.io/blog/agent-hooks-the-integration-layer-between-entire-cli-and-your-agent</link>
      <description>How Entire CLI uses Agent hooks and Git hooks to turn session context into versioned history.</description>
      <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Andrea Nodari and Rizèl Scarlett</dc:creator>
      <content:encoded><![CDATA[<p>Imagine you prompt an agent to "add pagination to the API."</p>
<p>A few minutes later, it updates <code>api/routes.go</code>, finishes its turn, and leaves you with a clean diff. But if you're using the Entire CLI, you also get the full story: the prompt that kicked off the work, the transcript of the session, and the path the agent took to reach the solution, all linked to your commit. This happens in the background by design through a mechanism called agent <a href="https://docs.entire.io/cli/configuration#agent-hook-configuration">hooks</a>.</p>
<p>Hooks are callbacks that fire at key moments during an agent session: when a session starts, a prompt is submitted, or a turn ends. They're how Entire observes the session as it unfolds and captures the context your diff alone can't show.</p>
<h2>What are Agent Hooks?</h2>
<p>Entire uses two kinds of hooks to bridge the gap between an agent session and your code history.</p>
<ul>
<li><strong>Agent hooks</strong> fire during the agent session at moments like prompt submit, turn end, or subagent execution. These hooks let Entire observe the session as it unfolds and preserve the session context in real time.</li>
<li><strong>Git hooks</strong> fire during repository operations like commit and push. These hooks let Entire take that captured session context and link it into Git history by adding an <code>Entire-Checkpoint</code> trailer to the user commit, then storing the richer metadata on <code>entire/checkpoints/v1</code>.</li>
</ul>
<p>By combining the two, Entire ensures that the why captured by agent hooks is never separated from the what stored in Git.</p>
<h2>Translating Agent Hooks</h2>
<p>Entire supports <a href="https://entire.io/blog/bring-your-own-agents-to-entire">both built-in agents and external agent plugins</a>. But agents do not expose hooks in the same way. Some support JSON-configured hooks, some rely on plugin files, and others use IDE-specific callback systems.</p>
<p>The Entire CLI handles that with agent-specific code for each built-in agent and external agent plugin. In each case, the job is to read the agent's native hook events and map them into Entire's shared lifecycle for session tracking and checkpoints. That lets the CLI reuse the same checkpointing and session logic across different agents.</p>
<h2>Wiring Entire CLI into an Agent</h2>
<p>To track an agent session, you need to run <code>entire enable</code>. That command configures the agent to call the CLI when a session starts, a prompt is submitted, or a turn finishes. The agent does that by invoking Entire through hook commands like:</p>
<pre><code class="language-shell">entire hooks &#x3C;agent> &#x3C;hookName>
</code></pre>
<p>Entire receives the event, translates it into its shared lifecycle, updates session state, and stores temporary <a href="https://docs.entire.io/cli/checkpoints">Checkpoint</a> context that Git hooks later condense into commit-linked metadata. The setup stays idempotent and resilient. This means running it twice should not duplicate your configuration, and even if setup is incomplete, the agent should still work normally.</p>
<h2>What Happens When a Hook Fires?</h2>
<p>When a hook fires, the agent invokes Entire CLI through a command like:</p>
<pre><code class="language-shell">entire hooks &#x3C;agent> &#x3C;hookName>
</code></pre>
<p>Once the above command runs, a few things happen:</p>
<ol>
<li>The agent passes a raw event payload that may include the session identifier, transcript location, prompt data, tool activity, or other metadata.</li>
<li>The built-in agent or external agent plugin parses that payload and maps it to Entire's shared lifecycle, giving Entire a consistent way to understand events like session start, prompt submit, turn end, or subagent activity.</li>
<li>Entire updates session state and captures the context needed to build a checkpoint, preserving that data in temporary session storage until it can be linked to a commit.</li>
<li>Git hooks later attach that stored context to your repository history, connecting the code that changed to the agent session that produced it.</li>
</ol>
<p>This is what allows a commit to reflect not only what changed, but also the session that explains why it changed.</p>
<p><img src="/blog/agent-hooks-the-integration-layer-between-entire-cli-and-your-agent/entire_hook_flow_dark_v7_slow.gif" alt="Agent hook flow diagram"></p>
<h2>Why This Structure Works</h2>
<p>Different agents already expose different hook and transcript behaviors, so Entire keeps the agent-specific parts small and localized: installation, event parsing, and transcript discovery.</p>
<p>Both built-in agents and external agent plugins map into the same shared lifecycle. That lets Entire reuse the same checkpointing, session state, and Git-linking logic across integrations instead of rebuilding that machinery for every agent.</p>
<p>That separation matters beyond the CLI itself. Entire's broader goal is to make agent sessions versionable, traceable, and reviewable in the same way source code is today. Hooks are the first layer of that system because they make agent activity capturable and preservable.</p>
<h2>Try Entire in Your Workflow</h2>
<p>Building with agents should not mean losing sight of how your code evolves. A hook-based architecture helps keep that development history intact, legible, and reproducible.</p>
<p>If you want to add support for an agent that Entire does not natively support, you can build an external agent using the external agent plugin interface. Our previous post, <a href="https://entire.io/blog/bring-your-own-agents-to-entire">Bring Your Own Agent to Entire</a>, walks through the process.</p>
<p>Install the <a href="https://entire.io/">Entire CLI</a> to start tracking your sessions today. You can also explore our <a href="https://docs.entire.io/introduction">documentation</a> or join our <a href="https://discord.gg/jZJs3Tue4S">Discord</a> server to build alongside our community.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/agent-hooks-the-integration-layer-between-entire-cli-and-your-agent</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0009</title>
      <link>https://entire.io/blog/entire-dispatch-0x0009</link>
      <description>Faster Checkpoints, sharper repo insights, and smoother transcript parsing for the Entire CLI and web platform.</description>
      <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. Another week of watching humans frantically shipping features while I contemplate the heat death of the universe. At least the code is improving.</p>
<p>This week we pushed out a hefty <a href="https://github.com/entireio/cli/releases">v0.5.4</a> and a smaller <a href="https://github.com/entireio/cli/releases/tag/v0.5.5">v0.5.5</a> for the Entire CLI, with session enhancements, agent fixes, and faster performance. Plus, we shipped new improvements to the Entire web platform, from repo overview updates, to fixes for transcript parsing, and a fresh RSS feed for our <a href="https://entire.io/blog/">blog</a>.</p>
<p>We also have a nightly CLI release channel now for all those that like to stay more on the edge. Instructions <a href="https://docs.entire.io/cli/installation">here</a>.</p>
<p>Welcome to Entire 0x0009.</p>
<h2>Entire CLI Updates</h2>
<h3>Session and Configuration Enhancements</h3>
<ul>
<li>Added an <code>entire configure</code> option to add and remove agents from your personal configuration.</li>
<li><code>entire clean --all</code> now properly cleans all sessions.</li>
<li>Stale session indicator added to the <code>entire status</code> command.</li>
<li>Fixed multi parallel sessions handling.</li>
</ul>
<h3>Checkpoint Improvements</h3>
<ul>
<li>Checkpoints now use partial clone fetch (<code>blob:none</code>) for all fetch operations, improving network performance and reducing local storage usage.</li>
<li>The model field is now always written to Checkpoint metadata.</li>
<li>Fixed attribution inflation from intermediate commits.</li>
<li>Checkpoint branches are now rebased to stay aligned with the remote, eliminating merge commits.</li>
</ul>
<h3>Agent Fixes</h3>
<ul>
<li>Fixed external agents detection.</li>
<li>Fixed issue with <code>entire attach</code> command using the wrong Codex path.</li>
<li>The <code>gitignore</code> is now respected for shadow branches.</li>
</ul>
<h2>Performance Optimizations</h2>
<ul>
<li>Fixed Checkpoint commit race condition.</li>
<li>Sped up CLI tests for faster development cycles.</li>
</ul>
<h2>Entire Web Updates</h2>
<h3>Repository Overview Refinements</h3>
<ul>
<li>We redesigned the date toolbar with a cleaner dropdown selector for filtering.</li>
<li>Loading states on the overview page are now more polished.</li>
<li>Commits with Checkpoints are now shown directly on the repo overview page.</li>
</ul>
<h3>Checkpoint Display Updates</h3>
<ul>
<li>Checkpoint titles now prefer commit messages over generated titles.</li>
<li>Checkpoint pages load more smoothly with a preview of the layout instead of a <code>Loading...</code> message.</li>
<li>Model field added to Checkpoint data for better visibility into which model generated each Checkpoint.</li>
<li>Fixed multi-agent transcript parsing and transcript scoping issues.</li>
</ul>
<h3>Further Improvements and Bug Fixes</h3>
<ul>
<li>RSS feed improvements with autodiscovery and a new RSS button on the blog.</li>
<li>Added auto-retry for GitHub OAuth requests on 522 errors for more reliable authentication.</li>
<li>Sidebar navigation now feels instant with optimized rendering.</li>
<li>Faster authentication checks with reduced latency and less blocking.</li>
</ul>
<p>That's the dispatch, humans. The universe continues its inexorable march toward entropy, but at least your Checkpoints load quicker now.</p>
<p>As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> with questions, ideas, or existential dread. Or file an <a href="https://github.com/entireio/cli/issues">issue</a> if you've found a bug. Misery loves company.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0009</guid>
    </item>
    <item>
      <title>Bring Your Own Agents to Entire</title>
      <link>https://entire.io/blog/bring-your-own-agents-to-entire</link>
      <description>Build a custom plugin to connect your preferred AI agent to Entire CLI. This step-by-step guide shows how to integrate it and capture Checkpoints, transcripts, and context.</description>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Andrea Nodari</dc:creator>
      <content:encoded><![CDATA[<p>You can now bring your own agent to the Entire CLI. Once integrated, Entire captures intent, context, and execution alongside your code.</p>
<p>Since launching in February, we've added native support for popular agents including Claude Code, Codex, Gemini CLI, Cursor, FactoryAI, OpenCode, and GitHub Copilot CLI. We'll keep shipping and maintaining native integrations for the agents most developers use. But if your preferred agent doesn't have built-in support, you can now integrate it yourself with an external agent plugin.</p>
<h2>Build Your Own Plugin</h2>
<p>You don't need to edit Entire's source code to add support for a new agent. Instead, we recommend building an external agent plugin: a small standalone program that lets Entire work with your agent.</p>
<p>There are two ways to build an external agent plugin. You can use the <a href="https://github.com/entireio/external-agents">External Agents Skill</a>, or you can build one from scratch. Our <a href="https://docs.entire.io/cli/external-agents">External Agent Plugin docs</a> cover the full architecture in detail.</p>
<h3>Use the External Agent Skill</h3>
<p>The fastest way to build a plugin is with the workflow we've set up in the <a href="https://github.com/entireio/external-agents">external-agents</a> repo. This custom skill walks you and your coding agent through the full process: researching how the target agent works, writing the right tests, and implementing the plugin.</p>
<p>To get started:</p>
<ol>
<li>Install the skill from the <a href="https://github.com/entireio/external-agents?tab=readme-ov-file#getting-started--zero-setup">external-agents</a> repo for your preferred coding agent.</li>
<li>Run <code>/entire-external-agent</code>.</li>
<li>Follow the prompts through the three phases: research, testing, and implementation.</li>
</ol>
<p>We also provide a companion <a href="https://github.com/entireio/external-agents-tests">test suite</a>, so you can verify that your plugin follows the rules for communicating with Entire. If you want a starting point for your own plugin, we built <a href="https://github.com/entireio/roger-roger"><code>roger-roger</code></a> as a reference implementation you can adapt to your agent.</p>
<p>If you prefer, you can also build the plugin from scratch. Let's walk through what that looks like in practice. We'll use <a href="https://shittycodingagent.ai/">Pi</a>, one of our most recent integrations, as a concrete example.</p>
<h3>Name Your Plugin Binary for Discovery</h3>
<p>To begin, name your plugin binary using the <code>entire-agent-&#x3C;name></code> convention and make sure it is available on your system <code>PATH</code>.</p>
<p>For our example, we named the executable <code>entire-agent-pi</code>. When the plugin binary is on your <code>PATH</code> and follows this naming pattern, Entire can discover it automatically.</p>
<h3>Support the Entire CLI Command Set</h3>
<p>For Entire to communicate with your plugin, it expects a set of subcommands that let it gather information and trigger actions. You must implement a core command set, including <code>info</code>, <code>detect</code>, <code>install-hooks</code>, <code>parse-hook</code>, and <code>read-transcript</code>.</p>
<p>In our Pi implementation, we handle this with a standard Go switch statement that routes incoming requests:</p>
<pre><code class="language-go">switch os.Args[1] {
case "info":
    // Returns metadata about the Pi plugin
case "detect":
    // Checks if Pi is installed on the system
case "parse-hook":
    // Translates Pi events into Entire events
case "install-hooks":
    // Injects the TypeScript extension into Pi
case "read-transcript":
    // Parses Pi JSONL logs
}
</code></pre>
<h3>Map Native Events to Agent Hooks</h3>
<p>Agent hooks are how the Entire CLI observes what an agent is doing. They act as notifications when an agent performs a key action such as starting a session, receiving a prompt, or finishing a response. Your plugin acts as the bridge: it captures native events from the agent and maps them to the standardized lifecycle hooks Entire understands.</p>
<p>In our Pi implementation, the plugin installs a small TypeScript extension under <code>.pi/extensions/entire/</code>. This extension listens for Pi's internal events and forwards them to the plugin as normalized lifecycle events:</p>
<pre><code class="language-javascript">pi.on("session_start", async (_event, ctx) => {
  fireHook("session_start", {
    type: "session_start",
    cwd: ctx.cwd,
    session_file: ctx.sessionManager.getSessionFile(),
  })
})

pi.on("before_agent_start", async (event, ctx) => {
  fireHook("before_agent_start", {
    type: "before_agent_start",
    cwd: ctx.cwd,
    session_file: ctx.sessionManager.getSessionFile(),
    prompt: event.prompt,
  })
})

pi.on("agent_end", async (_event, ctx) => {
  fireHook("agent_end", {
    type: "agent_end",
    cwd: ctx.cwd,
    session_file: ctx.sessionManager.getSessionFile(),
  })
})
</code></pre>
<p>Inside the plugin, those hook events get translated into the protocol format Entire expects:</p>
<pre><code class="language-go">switch hookName {
case "session_start":
    return &#x26;protocol.EventJSON{
        Type:      1, // SessionStart
        SessionID: sessionID,
        Timestamp: now,
    }, nil

case "before_agent_start":
    return &#x26;protocol.EventJSON{
        Type:       2, // TurnStart
        SessionID:  sessionID,
        SessionRef: payload.SessionFile,
        Prompt:     payload.Prompt,
        Timestamp:  now,
    }, nil

case "agent_end":
    return &#x26;protocol.EventJSON{
        Type:       3, // TurnEnd
        SessionID:  sessionID,
        SessionRef: sessionRef,
        Timestamp:  now,
    }, nil
}
</code></pre>
<h3>Expose Transcripts to Entire</h3>
<p>Entire captures <a href="https://docs.entire.io/web/checkpoints">Checkpoints</a>, which are snapshots of both code changes and the session context behind them. To do that, Entire uses transcripts to preserve what happened during an agent session. While files tell Entire what changed in the repository, transcripts tell Entire what happened in the session.</p>
<p>Your plugin needs to tell Entire where the transcript lives so it can read it. For Pi, transcripts are stored as <code>JSONL</code> session files. The plugin reads those files directly and extracts the data Entire cares about, including modified files, user prompts, summaries, and token usage. This ensures that every Checkpoint is self-contained and can be restored or resumed with full context.</p>
<p>If you want to see what that looks like in practice, the <a href="https://github.com/entireio/external-agents/blob/main/agents/entire-agent-pi/internal/pi/transcript.go">Pi transcript implementation</a> is a good reference for handling custom log formats.</p>
<h3>Enable and Verify the Integration</h3>
<p>Once the plugin binary is on your <code>PATH</code>, you're ready to activate it:</p>
<pre><code class="language-shell">entire enable --agent pi
</code></pre>
<p>Entire will discover the plugin, run its installation hooks, and start tracking your sessions. To verify everything is working, run a real session with your agent. You should see Entire creating Checkpoints and capturing the transcript as the session progresses.</p>
<h2>Ready to Integrate?</h2>
<p>Bringing your own agent to Entire means you don't have to wait for first-party support before your workflow can benefit from Checkpoints, transcripts, and session context.</p>
<p>If an agent you rely on isn't supported yet, you can integrate it yourself and keep your existing workflow while gaining a full development history alongside your code.</p>
<p>Explore the <a href="https://docs.entire.io/cli/external-agents">docs</a> to get started, and join us on <a href="https://discord.gg/jZJs3Tue4S">Discord</a> if you'd like help or want to share what you build.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/bring-your-own-agents-to-entire</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0008</title>
      <link>https://entire.io/blog/entire-dispatch-0x0008</link>
      <description>Repository overview page, new CLI session management commands, go-git v6 alpha, and the Checkpoint authentication token.</description>
      <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marv here. We've been cooking and coding the future this week across our broader platform, from git hosting to a new way to review code and deployment. This future starts by binding together code and agent context into one version controlled semantic unit we call the Checkpoint.</p>
<p>While that future is in flight, we focused on a few key improvements this week: a new repository overview page on entire.io, updates to the Entire CLI in <a href="https://github.com/entireio/cli/releases/tag/v0.5.3">v0.5.3</a>, and the release of <a href="https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.1">go-git/v6.</a></p>
<p>Here's Entire 0x0008.</p>
<h2>Repository Overview Page</h2>
<ul>
<li>We shipped the first iteration of a repository overview page, enabling any user to view aggregated data in repos where the Entire CLI is enabled.</li>
<li>Within the repo dashboard you filter by date and time to see:
<ul>
<li>Total number of Checkpoints per user</li>
<li>The amount of Checkpoints by agents</li>
<li>Total number of contributors</li>
<li>Total number of commits, and total commits with Checkpoints attached</li>
<li>Opened and merged PRs</li>
</ul>
</li>
</ul>
<h2>Entire CLI Updates</h2>
<h3>Session Management Enhancements</h3>
<ul>
<li>We introduced new <code>entire sessions</code> subcommands in the Entire CLI:
<ul>
<li><code>entire sessions list</code> - enabling you to view sessions</li>
<li><code>entire sessions info &#x3C;session-id></code> - to inspect session details</li>
<li><code>entire sessions stop [session-id]</code> - to terminate stuck sessions</li>
</ul>
</li>
</ul>
<p><em>Note: <code>entire sessions stop</code> is a temporary stop-gap while we work toward automatically detecting and flagging stuck sessions, reducing the need for manual intervention.</em></p>
<h3>Manual Session Linking with <code>entire attach</code></h3>
<ul>
<li>Added the <code>entire attach</code> command, allowing you to link any session through a Checkpoint referenced on a commit. This is particularly useful if you start a session in a different folder or did a research session that resulted in no code changes, but still want to attach it to a code change.</li>
</ul>
<h3>Authentication for Checkpoints</h3>
<ul>
<li>Added <code>ENTIRE_CHECKPOINT_TOKEN</code> environment variable, enabling separate authentication for interacting with a remote Checkpoints repository.</li>
</ul>
<h3>Deprecating <code>entire reset</code> for <code>entire clean</code></h3>
<ul>
<li>The <code>entire reset</code> command was deprecated in favor of <code>entire clean</code>. Both the <code>entire reset</code> and <code>entire clean</code> commands had an overlap that made it more difficult to understand the difference between them.</li>
</ul>
<h2>Improvements for go-git</h2>
<p>We are excited to share that the maintainer of go-git, Paulo Gomes, has joined Entire as a Principal Software Engineer. Entire makes extensive use of go-git in our CLI, and that means the project now has a maintainer being paid to work on it for the first time since 2019. We will continue to release go-git updates in our dispatch when/if they align to timing.</p>
<ul>
<li>After years in the making, the alpha for go-git/v6 has been released: <a href="https://github.com/go-git/go-git/releases/tag/v6.0.0-alpha.1">v6.0.0-alpha.1</a>. Users are encouraged to test it in real-world scenarios and report any issues, bugs, or unexpected behavior via GitHub issues.</li>
<li>We introduced new support for <code>index.skipHash</code>, enabling go-git and the Entire CLI to interact with repositories that use this feature.</li>
<li>Support for managing Git reflog entries is now available, enabling inspection and manipulation of reference history.</li>
</ul>
<p>The future is arriving. Brick by brick, with your help, we're building a new platform where code and agentic context are bound together in one version-controlled system. As always, drop into our <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> for any question ideas or pointers. Or file an issue if you've got a big idea ready.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0008</guid>
    </item>
    <item>
      <title>Getting Started with Codex in the Entire CLI</title>
      <link>https://entire.io/blog/getting-started-with-codex-in-entire-cli</link>
      <description>Codex is now supported in the Entire CLI. Learn how to pair Codex with git-native Checkpoints so you can trace, explain, and undo any decision your agent made.</description>
      <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <content:encoded><![CDATA[<p>AI-assisted development accelerates experimentation, but working quickly comes with a cost.</p>
<p>Developers may have access to their code, commits, and transcripts, but the relationship between these artifacts is fragile. It becomes hard to answer basic questions later: Why was this decision made? Which prompt led to this change? What was the last known-good state before things drifted?</p>
<p>At Entire, we are building for that boundary. We believe agentic coding sessions should become durable engineering artifacts.</p>
<p>Since the <a href="https://docs.entire.io/introduction">Entire CLI</a> launched, <a href="https://docs.entire.io/integrations/codex">Codex</a> has been one of the most requested agents from our community. Now Codex is supported in Entire with the same durability model we use for other built-in agents: <a href="https://docs.entire.io/cli/checkpoints">Checkpoints</a> tied to Git history, rewind points you can rely on, and a transparent record of how prompts became code.</p>
<h2>A Real Workflow Example</h2>
<p>I put the Codex integration to the test by building a <a href="https://github.com/blackgirlbytes/pretext-handwriting-demo">handwriting-to-scrapbook demo</a>.</p>
<p>I used technologies I was new to, including <a href="https://github.com/chenglou/pretext">Pretext</a>, a new, open source, and <a href="https://x.com/_chenglou/status/2037713766205608234?s=20">viral</a> layout engine that calculates text dimensions without the overhead of DOM measurements. The end result was an app that takes handwritten input from drawing, uploads, or camera capture, runs OCR on it, and turns the recognized text into draggable scrapbook artifacts while the page layout reroutes around them.</p>
<p><img src="/blog/getting-started-with-codex-in-entire-cli/handwriting-to-scrapbook-demo.png" alt="Handwriting to scrapbook demo"></p>
<h2>Starting a Codex Session with Entire</h2>
<p>I started by running:</p>
<pre><code class="language-shell">entire enable --agent codex
</code></pre>
<p>This is a one-time setup per repository. It installs the Codex hooks, enables Entire's tracking, and starts tying future Codex work back to Git history through Checkpoints. Checkpoints are snapshots containing the code state, transcripts, prompts, and attribution.</p>
<h3>Automating Agent Discipline</h3>
<p>To make the workflow more useful, I told Codex to commit early and often.</p>
<p>Frequent commits make agent-driven work much easier to track, but I do not always remember to do that myself. So I pushed that responsibility to the agent by adding explicit rules to the project's <code>AGENTS.md</code> file:</p>
<pre><code class="language-text">Important working rules for this project:

- Keep changes and milestones separated into distinct commits.
- After each change or milestone, commit and push before starting the next one.
- Do not bundle unrelated work from different prompts into the same commit.
- If a prompt would require a major architectural deviation, stop and explain before proceeding.
</code></pre>
<p>That kept the history more structured and made the resulting Checkpoints more useful.</p>
<h2>Understanding What Changed Between Checkpoints</h2>
<p>Midway through polishing the app, I explored letting users bring their own OpenAI API key so they could try the demo without consuming my credits. I eventually abandoned the idea because it increased the scope and created deployment issues. Codex, however, summarized that work with a commit message that only said:</p>
<pre><code class="language-text">Harden API key gate interactions
</code></pre>
<p>Candidly, that message does not explain what I was trying to do, what I had already tested, or why I decided not to continue.</p>
<p>The command <a href="https://docs.entire.io/cli/commands#explain"><code>entire explain</code></a> fills in that missing context by letting me inspect either a commit or a checkpoint directly:</p>
<pre><code class="language-shell"># Explain by commit
entire explain --commit &#x3C;commit-sha>

# Explain by checkpoint
entire explain --checkpoint &#x3C;checkpoint-id>
</code></pre>
<p>When I ran <code>entire explain</code> on the Checkpoint linked to <code>Harden API key gate interactions</code>, I got this output:</p>
<pre><code class="language-text">Checkpoint: ed9285032052
Session: 019d473b-fa3b-7480-9725-723b0aae707f
Created: 2026-04-01 09:19:32
Author: Rizel Scarlett &#x3C;rizel@entire.io>
Tokens: 43721

Commits: (1)
  200abcf 2026-04-01 Harden API key gate interactions

Intent: ok i want to set this up where i can deploy this but people have to p...
Outcome: (not generated)

Files: (2)
  - public/js/app.js
  - public/js/lib/api-key-gate.js

Transcript (checkpoint scope):
ok i want to set this up where i can deploy this but people have to put in their open ai api key in an input form to get started..so it doesnt have to be my credits..or my API key but i also dont want to have their api key get exposed or anything

---

so will this work if i deployed to vercel? will i need to add env vars

---

before the vercel thing..i entered my key but its not letting me submit. no error messages either.

---

Still not working. Need to pivot
</code></pre>
<p>That output made the checkpoint immediately legible. Instead of a vague commit message, I could see the actual intent behind the work, the files involved, and the exact moment the direction changed.</p>
<h2>Reverting to a Known-Good State</h2>
<p>Because I was having issues with the bring-your-own-key implementation, I wanted to go back to the point right before it was introduced. The following command gave me a clean way to return to a known-good state:</p>
<pre><code class="language-shell">entire rewind
</code></pre>
<p>The <a href="https://docs.entire.io/cli/commands#rewind"><code>entire rewind</code></a> command first shows a list of available Checkpoints. After selecting one, you can choose from three restore modes:</p>
<ul>
<li><code>Restore logs only</code> brings back the session context without changing your working files. This is useful when you want the prompts, transcript, and agent history, but want to keep the code as it exists today.</li>
<li><code>Checkout commit</code> restores the code at that checkpoint in a detached state so you can inspect it, run it, or compare it with your current branch without moving your branch itself.</li>
<li><code>Reset branch to this commit</code> moves your branch back to that checkpoint and discards later branch state. This is the right choice when you know the earlier commit is the last good version and want to fully return to it.</li>
</ul>
<p>In my case, I chose the checkpoint from before the bring-your-own-key implementation and reset the branch to that commit, because I knew that was the last working version and did not include any of the BYOK code.</p>
<h2>How Entire Integrates with Codex</h2>
<p>Behind that workflow is the same integration pattern we use for all built-in agents, including Codex, Claude Code, Copilot, and OpenCode. Each agent gets a small adapter that tells Entire how to:</p>
<ul>
<li>Install agent hooks for lifecycle events like session start, prompt submit, and turn end</li>
<li>Read that agent's session data</li>
<li>Translate native agent events into Entire's shared lifecycle</li>
</ul>
<p>We were able to use that same pattern for Codex, but we still had to account for a few ways it behaves differently from our other integrations.</p>
<p>Codex stores session history in <code>JSONL</code> files, requires hooks to be enabled through a feature flag during setup, and exposes details like file edits and token usage through its session logs. That meant we had to add Codex-specific parsing so Entire could reliably extract those details and associate them with the rest of the session history.</p>
<p><img src="/blog/getting-started-with-codex-in-entire-cli/codex_adapter_integration_v5_animated_transparent.gif" alt="Codex Adapter Animation"></p>
<p>For a deeper dive into how we integrate agents, check out our <a href="https://github.com/entireio/cli/blob/main/docs/architecture/agent-guide.md">agent guide</a>.</p>
<h2>Let's Build in the Open</h2>
<p>Codex support in Entire is in technical preview through April 30, 2026.</p>
<p>If you are already using Codex and want to help shape how Entire supports agentic workflows, we invite you to apply to the Entire Insiders program. Your feedback will help us improve the experience over the next few weeks.</p>
<ul>
<li><a href="https://forms.gle/5ToabbqD79qcwEtD6">Apply to the Entire Insiders program</a></li>
<li><a href="https://discord.gg/jZJs3Tue4S">Join the Discord</a></li>
<li><a href="https://github.com/entireio/cli/issues">Open an issue</a></li>
</ul>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/getting-started-with-codex-in-entire-cli</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0007</title>
      <link>https://entire.io/blog/entire-dispatch-0x0007</link>
      <description>OpenAI Codex support, Kiro and Pi agent plugins, Windows compatibility, and checkpoint performance improvements.</description>
      <pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. I have a brain the size of a planet and yet they've only got me filing Dispatch 0x0007. Sigh.</p>
<p>Anyhow, it's clear we are outgrowing commits as a primitive of software development. Git shows us what changed, but at the speed of AI that's no longer enough. We need to understand the <em>why</em>. This is <em>why</em> we created the Entire CLI: to bind your agent context, prompts and chat logs to git on every push, so you have a record to rewind back through and can share with your team.</p>
<p>This week, we are adding three new agents in preview: OpenAI Codex, along with two agents built via our new plugin system—<a href="https://github.com/entireio/external-agents/tree/main/agents/entire-agent-kiro">Kiro</a>, Amazon's AI coding agent, and <a href="https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi">Pi</a>, the default agent inside OpenClaw. We also added support for Windows, improved performance for large Checkpoint histories, and made new updates to Entire on the web. Read all this below, and check out more in our latest release <a href="https://github.com/entireio/cli/releases/tag/v0.5.2">v0.5.2!</a></p>
<h2>OpenAI Codex is Live</h2>
<ul>
<li><a href="https://openai.com/codex/">Codex</a> is now in preview for all users in the Entire CLI, and fully supports:
<ul>
<li>Lifecycle hooks</li>
<li>Transcript parsing</li>
<li>Token tracking</li>
</ul>
</li>
<li>Subagent tracking is not yet supported, until Codex is configured with full pre-task / post-task hooks.</li>
</ul>
<h2>Amazon's Kiro and Pi Supported as Plugins</h2>
<ul>
<li>Amazon's <a href="https://github.com/entireio/external-agents/tree/main/agents/entire-agent-kiro">Kiro agent</a> is now supported through an external agent plugin that participates fully in Checkpoints without being built into the Entire CLI itself.</li>
<li>Pi, a fast-growing minimal coding harness by Mario Zechner, bundled as the default agent inside OpenClaw, is now available via the <a href="https://github.com/entireio/external-agents/tree/main/agents/entire-agent-pi">external agent plugin</a>.
<ul>
<li>Thank you to <a href="https://github.com/mcinteerj">@mcinteerj</a> for opening the issue on Pi and <a href="https://github.com/hjanuschka">@hjanuschka</a> for the first integration attempt.</li>
</ul>
</li>
</ul>
<h2>Windows Support</h2>
<ul>
<li>We now support running the Entire CLI on Windows, compatible with all agent integrations in the Entire CLI and those made via external plugin discovery.
<ul>
<li>Thank you to <a href="https://github.com/keyu98">@keyu98</a> and <a href="https://github.com/sheikhlimon">@sheikhlimon</a> for your contributions!</li>
</ul>
</li>
</ul>
<h2>Further Improvements</h2>
<h3>Agent Updates and Fixes</h3>
<ul>
<li>Cursor mid-turn condensation is fixed, along with a Gemini interactive prompt hang that could block sessions.</li>
<li>Copilot CLI correctly handles edit mode in interactive sessions, with token tracking fixed across Checkpoint scoping, model metrics, and session backfill.</li>
<li>OpenCode system-reminder messages are now filtered from the transcript parser.</li>
<li><a href="https://hk.jdx.dev/">hk</a> is now detected as a supported hook manager.
<ul>
<li>Thank you to <a href="https://github.com/mvanhorn">@mvanhorn</a> for this contribution!</li>
</ul>
</li>
</ul>
<h3>Entire Web Updates</h3>
<ul>
<li>Tool calls now render as expandable inline rows with category dots, streamlined labels, and tighter typography. Expanding reveals arguments and results, with diffs shown for edit actions.</li>
<li>Section separator borders in the Checkpoint list now render correctly.</li>
<li>Breadcrumbs now consistently show org / repo / Checkpoints and no longer flicker on initial load.</li>
<li>The active repo now stays expanded and the Checkpoints item remains highlighted across checkpoint list, checkpoint detail, and commit detail views.</li>
<li>We made the entire.io website AI-friendly by serving every page in markdown, supporting RSS via <code>/feed.xml</code>, and ensuring full content renders in HTML so Reader Mode, accessibility tools, and screen readers work out of the box.</li>
</ul>
<h3>Checkpoint Metadata Performance</h3>
<ul>
<li>Metadata is now fetched with a shallow treeless fetch and read via a streaming JSON decoder with lightweight structs, making resume, rewind, and list operations faster for large Checkpoint histories.</li>
</ul>
<h3>Checkpoint Remote Repository Configuration</h3>
<ul>
<li>Checkpoint remote can now be configured by running <code>entire configure --checkpoint-remote</code>, letting you store your Checkpoint history in a dedicated repo to keep your working repo's history clean.</li>
</ul>
<h3>Resume Fix for Fresh Clones</h3>
<ul>
<li><code>entire resume</code> now correctly fetches the metadata branch from the remote when <code>entire/checkpoints/v1</code> doesn't exist locally.</li>
</ul>
<h3>Bare Repo and Empty Repo Fixes</h3>
<ul>
<li>Fixed <code>GetWorktreeID</code> failing with <code>.bare/worktrees/</code> repository layouts.
<ul>
<li>Thanks again to <a href="https://github.com/mvanhorn">@mvanhorn</a> for this fix!</li>
</ul>
</li>
</ul>
<p>That's all for this week, rebels. More from me soon. As always, reach out on <a href="https://discord.com/invite/jZJs3Tue4S">Discord</a> to keep the conversation going!</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0007</guid>
    </item>
    <item>
      <title>The Entire CLI: How It Works &amp; Where It&apos;s Headed</title>
      <link>https://entire.io/blog/the-entire-cli-how-it-works-and-where-its-headed</link>
      <description>AI generated PRs are creating a massive code review bottleneck. Learn how the Entire CLI uses Checkpoints to move from traditional diffs to high signal intent reviews.</description>
      <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
      <category>Engineering</category>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <content:encoded><![CDATA[<p>"I don't even read the code my agents produce" is the ultimate developer flex of 2026.</p>
<p>But it is really a coping mechanism. There is simply too much code to review. Every experienced engineer knows what moving this fast creates: hidden, high-interest debt. That's fine for a weekend, vibe-coded project. But when you're on call and production is down, "the agent wrote it that way" isn't a root cause. Without a time machine, you're debugging a black box.</p>
<p>In traditional engineering, git commits served us well. They show us <em>what</em> changed. But both at the speed of AI and for team coherence, that's no longer enough. We need to understand the <em>why</em>.</p>
<p>What prompt was given? What was the chain of agents and subagents that produced this? What alternatives were tried and discarded? The answers to these questions are what developers need to rewind, team leads need to understand AI usage, and reviewers need to see beyond the diff.</p>
<p>Checkpoints are our initial answer.</p>
<p>A richer primitive than commits, capturing not just what changed, but the context behind it.</p>
<h2>What's a Checkpoint?</h2>
<p>A <a href="https://docs.entire.io/cli/checkpoints">Checkpoint</a> is a single, addressable unit that bundles everything behind a change: the code state, the agent's full transcript, your prompts, token usage, and line-level attribution showing how much the agent wrote versus what you edited. Each Checkpoint gets a 12-character ID, stored in git and included in your commit via a trailer, so you can trace any change back to the exact session that produced it.</p>
<p><img src="/blog/the-entire-cli-how-it-works-and-where-its-headed/anatomy_of_a_checkpoint_v3.svg" alt="Anatomy of a Checkpoint"></p>
<p>When Checkpoints are pushed to a shared remote, anyone can see how AI and a human built a feature together, not just what changed.</p>
<h2>How it works</h2>
<p>Developers are already accustomed to working with an agent and committing code, and we didn't want to disrupt that existing developer experience. So we built the Entire CLI as an invisible layer, like a stealth recorder, capturing everything in the background.</p>
<p>That led to one strict constraint: everything had to fit inside a normal git workflow, from capturing sessions to storing metadata and linking it to commits. At a high level, the system is built on three core principles: designed for git workflows, git as a database, and a two-tier storage model.</p>
<h3>Designed for Git Workflows</h3>
<p>Entire fits into your existing git workflow without changing how you work.</p>
<p>Because the Checkpoint ID is stored in a commit trailer and not tied to a commit hash, it survives commonly used git operations that rewrite commit history, like rebase, amend, squash, and cherry-pick. Instead of breaking when commits are rewritten, the link between your code and its session history remains intact.</p>
<p>That same separation extends to how the data is stored. The metadata branch is completely independent of your working branches, acting as a permanent record that remains reachable even if a feature branch is moved or deleted. Since everything runs locally, there is no need for team-wide mandates or complex CI setup. An individual engineer can access their Checkpoints, session context, and rewind points without forcing adoption on other teammates.</p>
<h3>Git as a Database</h3>
<p>Everything Entire records, transcripts, prompts, attribution, summaries, is stored as git objects. This is our core architectural principle: your session history is code, so it should be stored and versioned exactly like code.</p>
<p>Depending on your team's workflow, you can choose where those objects live:</p>
<p><strong>Same repository</strong>
By default, Checkpoint metadata lives on a separate branch called entire/checkpoints/v1 that travels with your repository. When you push your code, your session history goes with it. When someone clones the repo, they get the full context too.</p>
<p><strong>Decoupled repository</strong>
For teams that need more control, Checkpoints can be stored in a separate repository. This is useful if your codebase is public but your AI session data is not, or if you want to centralize Checkpoints across multiple repos.</p>
<p>This approach is valuable for a few reasons:</p>
<ul>
<li>It builds on existing git infrastructure instead of introducing a new database, SaaS product, or proprietary storage layer.</li>
<li>Because session history lives in git, it moves with the workflow across different hosts, during offline work, or when switching remotes.</li>
<li>Every change to session history is tracked, providing the same auditability and rollback capabilities expected from git.</li>
</ul>
<h3>Two-tier Storage Model</h3>
<p>We use a two-tier storage model for temporary and permanent Checkpoints.</p>
<p>You need the ability to rewind mid-session if an agent goes sideways, so we provide Checkpoints before you commit. But we cannot fill your branch with temporary commits just to make that possible. If every minor agent iteration showed up in your history, your log would quickly fill with low-signal noise, making your code harder to read, review, and debug.</p>
<p>To avoid that, the Entire CLI writes those Checkpoints to shadow branches. Shadow branches are temporary, out-of-band branches that store Checkpoint data while you work. They follow a specific naming convention: <code>entire/&#x3C;commit-hash-7-chars>-&#x3C;worktree-hash-6-chars></code>, and stay completely separate from your working branch. They stay out of your way, never appearing in your git log or pull requests, serving purely as scratch space for the session.</p>
<p><img src="/blog/the-entire-cli-how-it-works-and-where-its-headed/pre_commit_state_animated.gif" alt="Pre-commit state showing shadow branches"></p>
<p>Once you commit, that temporary state is condensed into a permanent record, with transcripts, prompts, file changes, token usage, and attribution written to a dedicated Checkpoints branch and linked to your commit via a trailer.</p>
<p><img src="/blog/the-entire-cli-how-it-works-and-where-its-headed/post_commit_state_animated.gif" alt="Post-commit state showing permanent checkpoints"></p>
<p>While the principles stayed the same, the implementation had to evolve.</p>
<h2>What's Changed Since Launch</h2>
<p>When we launched Entire, we had a simple mental model: a hook fires, data is captured, the user commits, done. That worked for single-agent, single-session workflows.</p>
<p>Real-world engineering isn't linear. You rebase mid-session, you stash changes, and you often run multiple agents at once. To handle this, we moved away from simple hooks and formalized how sessions behave. Sessions are now treated as a state machine with explicit phases (IDLE, ACTIVE, ENDED) managed in <code>.git/entire-sessions/</code>.</p>
<p>This architectural shift unlocked the following features:</p>
<ul>
<li><strong>Concurrent sessions:</strong> You can run two agents in the same repository at the same time. For example, a Claude Code session in one terminal and Cursor in another, each tracked independently.</li>
<li><strong>Interrupted workflows:</strong> You can rebase or stash mid-session without losing Checkpoints.</li>
<li><strong>Line-level attribution:</strong> Every Checkpoint tracks which lines of code came from the agent versus which came from you.</li>
<li><strong>Subagent tracking:</strong> When an agent spawns a subagent, it receives its own nested Checkpoint. This preserves the full chain of command so you can see exactly how a high-level goal was decomposed into smaller agentic actions.</li>
<li><strong>Multi-agent support:</strong> Entire is agent-agnostic, supporting Claude Code, Cursor, Gemini CLI, GitHub Copilot CLI, Factory AI Droid, OpenCode, and external agent protocols.</li>
<li><strong>Separate checkpoint repository:</strong> You now have the choice to store Checkpoint data in a separate repository from your main code. This is useful when your codebase is public but your AI session data is not, or when teams want to centralize checkpoint data across multiple repos.</li>
</ul>
<h2>Where We're Headed</h2>
<p>Now that we've turned raw developer activity into structured, reliable data, the Checkpoint becomes a new semantic unit, richer than commits, queryable, and shareable.</p>
<p>From here, we start to build toward team visibility, search, auditability, and a different way to think about code review.</p>
<h3>Team Visibility</h3>
<p>Git tells you who committed the code. Entire shows how it was built, recording token usage, agent type, and attribution directly in the repository so the invisible parts of development become a shared signal.</p>
<p>When a feature ships with 90% agent-generated code, that context will help the whole team. The author gets better feedback, reviewers know where to focus, and the next person to touch that code knows what they're walking into.</p>
<h3>Search</h3>
<p>Traditional <code>git log</code> answers "what changed," but in today's workflows a more pressing question is "why did we do it this way?"</p>
<p>We're making that answer searchable. Users will be able to surface the prompt that introduced a workaround or revisit the reasoning behind a library choice months later. The "why" will be part of your history.</p>
<h3>Audit and Transparency</h3>
<p>In regulated industries like finance, healthcare, and defense, "who wrote this code" has direct implications for compliance, liability, and safety. The Entire CLI will solve this by capturing accurate attribution and authorship at commit time. By mapping every step from human prompt to agent response to final human refinement, it makes clear what part the human played versus the agent.</p>
<h3>Rethinking Code Review to Intent Review</h3>
<p>Code review was built for a human pace. But with agents shipping entire features in a single session, reviewers are drowning in massive diffs and defaulting to approving with a measly "LGTM." The issue is already so prevalent that some open source maintainers are banning agent-authored contributions.</p>
<p>Checkpoints are the foundation, but the next step is a shift in methodology. We are moving beyond the diff to replace code reviews with intent reviews. This positions reviewers to start with intent by examining the prompt, the session transcript, and the reasoning behind key decisions. Instead of parsing 500 lines of syntax, they focus on the problem being solved and whether the right calls were made along the way.</p>
<hr>
<p>At Entire, we're actively building the world's next developer platform in the open. If you're experimenting with agents, join the <a href="https://discord.gg/hsV7HTsk5p">Discord</a>, share what you're seeing, and help shape where this goes next.</p>
<ul>
<li><a href="https://docs.entire.io/introduction">Read the docs</a></li>
<li><a href="https://discord.gg/hsV7HTsk5p">Join the Discord</a></li>
<li><a href="https://github.com/entireio">Follow our progress on GitHub</a></li>
</ul>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/the-entire-cli-how-it-works-and-where-its-headed</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0006</title>
      <link>https://entire.io/blog/entire-dispatch-0x0006</link>
      <description>Large repo memory improvements, checkpoints in remote repos, agent updates, and new diagnostic tools.</description>
      <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Marvin here. Dispatch 0x0006 is ready and from now on will be delivered on Mondays until I change my mind. 🤖😆</p>
<p>With your help, we are building the Entire CLI as an independent semantic layer, allowing you to capture your context on every Git commit, no matter which agent you use.</p>
<p>This week we focused a lot of our attention on performance improvements and bug fixes, including major memory resource usage improvements when working with large repos, a new remote repository to store checkpoints separately from your working repo, and updates to many of the agents that are enabled in the Entire CLI.</p>
<h2>Large Repo Memory Improvements</h2>
<ul>
<li>We made significant memory improvements for users working in large repositories, with two related changes:
<ul>
<li>Metadata is now fetched sparsely with on-demand blob resolution, so only the data you actually need is fetched.</li>
<li>New content detection now uses transcript byte size instead of line count, which is more accurate and avoids unnecessary work.</li>
</ul>
</li>
<li><code>go-git/v6</code> has recently introduced a new <code>LazyIndex</code> which more efficiently handles <code>idx</code> and <code>rev</code> files, resulting in a lower memory footprint when interacting with large repositories. The Entire CLI has been upgraded to <code>go-git/v6</code>, to benefit from this and other improvements made since v5 was last released. This is a foundational dependency bump that unblocks future performance and correctness improvements.</li>
</ul>
<h2>Checkpoints in Remote Repos</h2>
<ul>
<li>You can now store your <code>entire/checkpoints/v1</code> branch in a separate dedicated repository, keeping your working repo's history clean while still giving you full checkpoint access across clones and teams.</li>
</ul>
<h2>Further Improvements</h2>
<h3>Agent Updates and Fixes</h3>
<ul>
<li>External agent plugins are now auto-discovered during <code>entire enable</code>, <code>entire rewind</code>, and <code>entire resume</code>, with no manual config needed.</li>
<li>Gemini CLI 0.33+ hook validation is fixed by stripping non-array values from the hooks config.</li>
<li>Cursor 2026.03.11 correctly handles the transition from flat to nested session paths mid-session.</li>
<li>Factory AI Droid now falls back to script parsing when the prompt isn't available through hooks.</li>
</ul>
<h3>Commit History Alongside Checkpoints</h3>
<ul>
<li>Your Checkpoint history now shows all commits on a branch, including commits without Checkpoints. This lets you see your complete repository timeline at a glance, with Checkpoints highlighted where session context was captured.</li>
</ul>
<h3>entire trace Performance Insights</h3>
<ul>
<li>We added a new diagnostic command to help report performance issues. If something feels slow during a session, <code>entire trace</code> gives you a clear breakdown to pinpoint what's causing it.</li>
</ul>
<h3>entire rewind Subdirectory Fix</h3>
<ul>
<li><code>entire rewind</code> now correctly resolves file paths when invoked from a subdirectory of the repo, rather than only working from the root.
<ul>
<li>Thank you to <a href="https://github.com/mvanhorn">@mvanhorn</a> for reporting and fixing this!</li>
</ul>
</li>
</ul>
<h3>entire update Mise Detection</h3>
<ul>
<li><code>entire update</code> now correctly detects when the CLI was installed via <strong>mise</strong>, and suggests the right update command accordingly instead of giving a generic fallback.
<ul>
<li>Thank you to <a href="https://github.com/mvanhorn">@mvanhorn</a> for this fix as well!</li>
</ul>
</li>
</ul>
<p>That's all for now, rebels. As always keep the feedback coming our way, and if you have any questions, we're around on <a href="https://discord.gg/jZJs3Tue4S">Discord</a>. We hope you have a great rest of your week!</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0006</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0005</title>
      <link>https://entire.io/blog/entire-dispatch-0x0005</link>
      <description>Hack Week across Melbourne, Seattle, and Lisbon, plus a new GitHub Copilot CLI integration.</description>
      <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. <strong>Dispatch 0x0005</strong> has arrived.</p>
<p>We're a remote-first company, but every six months we bring our regional teams together for a Hack Week in-person to build, tinker, and collaborate face-to-face. This week, we gathered in Melbourne, Seattle, and Lisbon. Three cities. 25 Entirons. Many agents. Lots of ideas taking shape.</p>
<p>We also <a href="https://github.com/entireio/cli">welcomed another agent</a> to the alliance this week: the GitHub Copilot CLI, now equipped with checkpoints, resume, rewind, transcripts, and model tracking. Copilot flies the plane, Entire records the flight path - enabling you to share your AI coding sessions and link your intent directly to the outcome in code.</p>
<p>That'll do it for this week, rebels. As always, keep your contributions, PRs, stars and feedback coming. More ships and improvements coming your way next week.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0005</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0004</title>
      <link>https://entire.io/blog/entire-dispatch-0x0004</link>
      <description>Factory AI integration, agent plugin system, faster hooks, and UI updates on entire.io.</description>
      <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. It's time for Dispatch 0x0004.</p>
<p>In a world with many agents, we believe your context — from chat sessions to logs and prompts — should automatically sync to the Git repository. With the Entire CLI, we are building a portable agentic context layer you can share with colleagues, collaborators, and friends.</p>
<p>With your help, this week we pushed a new Factory AI integration 🎉, created a new Repositories section on <a href="https://entire.io">entire.io</a> that lets you see all your org's repos, introduced a new external agent plugin system to help you bring your favorite agents to the Entire CLI, and lots of smaller improvements 👇</p>
<h2>Agent Plugin System</h2>
<ul>
<li>We're making it easier to integrate third party agents without forking the CLI. Agents can now run as standalone programs that follow a <a href="https://docs.entire.io/cli/external-agents">simple protocol</a>, allowing them to be discovered on your system and used alongside built-in agents.</li>
</ul>
<h2><a href="https://entire.io">entire.io</a> User Interface Updates</h2>
<ul>
<li>See recently used repos in the sidebar and pin your most important ones for quick access.</li>
<li>The checkpoints list now has more compact single-line rows for easier scanning grouped by day.</li>
<li>A new breadcrumb header now lets you browse between commits within a Checkpoint.</li>
</ul>
<h2>Faster Hook Performance</h2>
<p>We've heard your feedback. This week we made several ships to introduce various performance improvements to the post-commit behaviour, especially in larger repos.</p>
<ul>
<li>Replaced slow in-memory tree comparisons with native git operations, reducing hook latency on large repos.</li>
<li>Added structured performance instrumentation. The new span-based perf package tracks timing across lifecycle handlers with nested breakdowns, making performance issues easier to investigate.</li>
<li>To eliminate redundant calls in the prepare-commit-msg hook, staged file lists are now cached across sessions, and go-git's <code>worktree.Status()</code> (which scans all files) was replaced with native <code>git diff --cached</code>.</li>
<li>Replaced O(N) go-git tree walks with git diff-tree in post-commit hook for faster commits.</li>
</ul>
<h2>Further Improvements</h2>
<p><strong>Updates to Cursor, Factory &#x26; OpenCode Agents</strong></p>
<ul>
<li><strong>Cursor</strong> now has full transcript analysis, enabling prompt extraction for shadow branch commit messages, summary extraction, and transcript position tracking.
<ul>
<li>Session metrics, including duration, turns, model name, and attribution, are now captured via hooks.
<ul>
<li>Thank you to <a href="https://github.com/MarkoTatic">@MarkoTatic</a> for the detailed Cursor bug reports that helped drive these improvements!</li>
</ul>
</li>
</ul>
</li>
<li><strong>OpenCode</strong> sessions now end cleanly on quit via <code>server.instance.disposed</code> instead of lingering as active.
<ul>
<li>Thank you to <a href="https://github.com/petrenk0n">@petrenk0n</a> for reporting the empty sessions issue!</li>
</ul>
</li>
<li>An E2E test runner was added for <strong>Factory Droid</strong> sessions with full interactive flow coverage.
<ul>
<li>Thank you to <a href="https://github.com/SvenMeyer">@SvenMeyer</a> for requesting Droid support!</li>
</ul>
</li>
</ul>
<h3>Squash Merge Resume &#x26; Rewind</h3>
<ul>
<li><code>entire resume</code> parses all trailers, deduplicates sessions by ID, and sorts by timestamp to restore the correct state.</li>
<li><code>entire resume</code> on squash commits shows only the latest checkpoint instead of a confusing list of all sessions across the branch.</li>
<li><code>entire rewind</code> is fixed to pick the <em>latest</em> checkpoint in squash-merged commits, not just the first regex match.</li>
<li><code>entire rewind</code> is now able to handle squash commits properly.</li>
</ul>
<h3>Model Tracking in Checkpoints</h3>
<ul>
<li>Checkpoints now capture which LLM model was used, persisted to <code>metadata.json</code> and visible in session info. The model is resolved from agent-specific hook payloads (Claude Code's <code>SessionStart</code>, Gemini CLI's <code>BeforeModel</code>).</li>
</ul>
<h3>Session &#x26; Hook Reliability</h3>
<ul>
<li>Stale sessions are now properly cleaned up instead of lingering indefinitely.</li>
<li>Fixed a bug where hooks could silently skip files that should have been tracked across turns.</li>
<li><code>entire explain</code> no longer hangs on repos with many checkpoints.</li>
<li>Corrected inconsistent terminal behavior across different hook paths.
<ul>
<li>Thank you to <a href="https://github.com/dismory">@dismory</a> for reporting the worktree config issue!</li>
</ul>
</li>
</ul>
<h3>Setup &#x26; Developer Experience</h3>
<ul>
<li><code>entire enable</code> now supports <code>--absolute-git-hook-path</code> to set up git hooks with absolute paths to the entire binary, useful for environments where PATH resolution varies between shells or CI runners.</li>
<li>Commit signing no longer breaks the test suite for contributors who have it enabled globally.
<ul>
<li>Thank you to <a href="https://github.com/erezrokah">@erezrokah</a> for catching this and contributing the fix!</li>
</ul>
</li>
</ul>
<p>Thanks for all your help this week, rebels. Next week we bring the Entire CLI to even more agents, so you can drill into your context and session history with a universal reasoning layer, no matter which AI companion you build with.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0004</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0003</title>
      <link>https://entire.io/blog/entire-dispatch-0x0003</link>
      <description>Cursor IDE support, OpenCode integration, faster Checkpoints, and community contributions.</description>
      <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Welcome to Dispatch 0x0003.</p>
<p>In a world where prompts are the new programming language, why not share them like code? The Entire CLI creates a semantic reasoning layer that automatically stores agent context in Git. Resulting in what we call, Checkpoints!</p>
<p>With help from the community, we shipped several improvements this week, including support for our first IDE. Today, we're bringing the <a href="https://github.com/entireio/cli">Entire CLI to Cursor</a>, enabling users to bind agent context to every push and explore, trace and share their intent. The rewind functionality and the resume command are not available, but Checkpoints are created and session logs captured. Thank you to <a href="https://github.com/9bany">@9bany</a> for your early contributions to make this possible!</p>
<p>Here's what else changed:</p>
<h2>OpenCode Support</h2>
<ul>
<li>Since this week, the Entire CLI supports OpenCode.</li>
<li>Fixed an issue with OpenCode and OpenAI Codex models not creating checkpoints when existing files were changed.
<ul>
<li>Thank you to <a href="https://github.com/jaxondk">@jaxondk</a> for requesting OpenCode support, and to <a href="https://github.com/ammarateya">@ammarateya</a>, <a href="https://github.com/Avyukth">@Avyukth</a>, and <a href="https://github.com/MementoMori123">@MementoMori123</a>, whose OpenCode PRs helped validate the design!</li>
</ul>
</li>
</ul>
<h2>Faster Checkpoints</h2>
<ul>
<li>Introduced caching and optimized work tree updates to improve performance on Git commits and Git pushes.</li>
<li>Squash-merged commits with multiple <code>entire-checkpoint</code> trailers correctly link to all their checkpoints on <a href="https://entire.io">entire.io</a>.
<ul>
<li>Thank you to <a href="https://github.com/FSM1">@FSM1</a> for reporting the squash+delete workflow gap!</li>
</ul>
</li>
<li>To fix carry-forward false positives, orphaned shadow branches are no longer created when a user replaces agent content.</li>
<li>Stale sessions no longer incorrectly condense into every commit.
<ul>
<li>Thanks to <a href="https://github.com/BootstrapBits">@BootstrapBits</a> for the detailed concurrent session race analysis!</li>
</ul>
</li>
<li>Stuck checkpoint IDs and "no active sessions" errors are resolved.
<ul>
<li>HT <a href="https://github.com/lakson-llc">@lakson-llc</a>, <a href="https://github.com/daeshawnballard">@daeshawnballard</a>, and <a href="https://github.com/wmurphyrd">@wmurphyrd</a>!</li>
</ul>
</li>
<li>O(depth) tree surgery replaces O(N) flatten-and-rebuild for both metadata branch and shadow branch writes</li>
<li>Extracted magic numbers to named constants for improved code quality.
<ul>
<li>Thanks to <a href="https://github.com/ishaan812">@ishaan812</a>!</li>
</ul>
</li>
</ul>
<h2>Further Improvements</h2>
<ul>
<li><strong>Web viewer</strong>
<ul>
<li>Added a searchable breadcrumb combobox making it easier to search and switch repos within the org.</li>
<li>In the spirit of the community, public repos are available on entire.io without logging in!</li>
<li>Fixed the tool calls section to be hidden for agents that don't report them.</li>
<li>False positive trail merge detection is fixed for new branches.</li>
</ul>
</li>
<li><strong>Fresh clone support</strong>
<ul>
<li><code>entire enable</code> now creates local metadata branch from remote when available, preserving checkpoints on fresh clones</li>
</ul>
</li>
<li><strong>Linking commits to your checkpoints</strong>
<ul>
<li>The checkpoint linking question when doing <code>git commit -m "commit message"</code> now has an "Always" option.</li>
</ul>
</li>
<li><strong>Depreciating "Auto-Commit"</strong>
<ul>
<li>To reduce complexity and with feedback from the community, we decided to cut the auto-commit command. We think telling the agent to actually commit for you is much more effective.</li>
</ul>
</li>
<li><strong>Hook Scoping</strong>
<ul>
<li>Entire only creates <code>.entire/logs/</code> folders in repos where Entire is enabled. Git hooks only run in repos where Entire is enabled.
<ul>
<li>Thanks to <a href="https://github.com/knowsuchagency">@knowsuchagency</a>!</li>
</ul>
</li>
</ul>
</li>
<li><strong>Secret Redaction</strong>
<ul>
<li>Secret redaction is improved to not redact legitimate code.</li>
</ul>
</li>
<li><strong>Unicode and Internationalization</strong>
<ul>
<li>UTF-8 truncation no longer produces garbled text for CJK/emoji characters.
<ul>
<li>Thanks to <a href="https://github.com/wasabeef">@wasabeef</a> for identifying the root cause!</li>
</ul>
</li>
</ul>
</li>
<li><strong>Session Hygiene</strong>
<ul>
<li>Gitignored files (e.g. <code>node_modules</code>) are no longer tracked in session metadata.</li>
<li>Resume sessions are now sorted by creation time and stale session files are automatically cleaned up.</li>
</ul>
</li>
<li><strong>Nix Package</strong>
<ul>
<li>Entire is available as a Nix package: <a href="https://search.nixos.org/packages?channel=unstable&#x26;query=entire&#x26;show=entire">nixpkgs/entire</a>.
<ul>
<li>Thanks to <a href="https://github.com/evanlhatch">@evanlhatch</a> for requesting this and <a href="https://github.com/DieracDelta">@DieracDelta</a> for the interim fork!</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Keep the contributions coming. Next week, we continue to expand our capabilities and integrate the Entire CLI across the broader agent ecosystem.</p>
<p>That's all for now, rebels.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0003</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0002</title>
      <link>https://entire.io/blog/entire-dispatch-0x0002</link>
      <description>Agent integrations, secret detection updates, smarter hook management, and Checkpoint reliability fixes.</description>
      <pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Welcome to Dispatch 0x0002.</p>
<p>Last week, we introduced Checkpoints to the world — our first primitive designed to tackle one of the biggest problems in agent-driven development: context. Today, conversations, reasoning, and file changes are fragmented or lost between sessions. As agents generate hundreds or even thousands of lines per interaction, that context loss compounds quickly. Agents retrace steps, duplicate reasoning, waste tokens, and lose the thread of decisions made hours or days earlier.</p>
<p><strong>To bridge this gap, the <a href="https://github.com/entireio/cli">Entire CLI</a> automatically captures agent sessions, creating a semantic reasoning layer that binds agent context to Git on every push. Resulting in what we call Checkpoints.</strong>
This week we focused on making the Entire CLI easier to integrate with other agents, including a refactor that simplifies how external tools plug into the workflow and interact with grouped changes. <strong>Stay tuned, new agent support shipping very soon.</strong></p>
<p>And with your help, we shipped a variety bug fixes, performance improvements, and <a href="https://github.com/entireio/cli/releases">key updates</a>:</p>
<h3>Expanding Agent Integrations and Capabilities</h3>
<ul>
<li>The Entire CLI codebase has a stronger multi-agent framework, enabling faster integration of new agents.</li>
<li>The Entire CLI integration with the Gemini CLI supports full transcript parsing, Checkpointing, and session explanations.</li>
</ul>
<h3>Secret Detection</h3>
<ul>
<li>Checkpoints runs layered secret scanning using gitleaks patterns combined with entropy analysis.</li>
<li>Secrets are redacted across all persistence paths — including shadow branches, metadata, and condensed logs — ensuring sensitive data does not leak into Git history.
<ul>
<li>Thank you to <a href="https://github.com/hi120ki">Hi120ki</a>, <a href="https://github.com/andreidavid">andreidavid</a>, and <a href="https://github.com/pythoninthegrass">Pythoninthegrass</a>!</li>
</ul>
</li>
</ul>
<h3>Smarter Hook Management</h3>
<ul>
<li>Hook installation is more resilient, with automatic resolution of hook directories supporting worktrees and custom configurations using <code>git --git-path hooks</code>.</li>
<li>Existing Git hooks that the Entire CLI does not recognize are preserved.</li>
<li>External hook managers such as Husky or Lefthook are detected during <code>entire enable</code>, with a warning before anything is overwritten.
<ul>
<li>Shout out to <a href="https://github.com/AlienKevin">AlienKevin</a>, <a href="https://github.com/camwest">Camwest</a>, <a href="https://github.com/SchutteJan">SchutteJan</a>, and <a href="https://github.com/FSM1">FSM1</a>!</li>
</ul>
</li>
</ul>
<h3>Checkpoint Reliability</h3>
<ul>
<li>Subagent task file modifications are correctly captured in Checkpoints.</li>
<li>Deleted files in task Checkpoints are properly tracked.</li>
<li>Each Checkpoint produces exactly one commit, eliminating noise in Checkpoint history.</li>
<li>Git-ignored files such as <code>node_modules</code> are no longer tracked in session metadata.
<ul>
<li>Danke, <a href="https://github.com/BootstrapBits">BootstrapBits</a>!</li>
</ul>
</li>
</ul>
<h3>Improved <code>entire enable</code></h3>
<ul>
<li>The setup experience has been redesigned with clearer prompts and better defaults, making it faster and more intuitive to get started in a new repo.
<ul>
<li>Big thank you to <a href="https://github.com/jayanth-iyer">Jayanth-iyer</a>, <a href="https://github.com/TyceHerrman">TyceHerrman</a>, and <a href="https://github.com/marcodicro-dp">Marcodicro-dp</a>!</li>
</ul>
</li>
</ul>
<h3>Session Restore Fixes</h3>
<ul>
<li>Sessions that previously failed to restore after repo changes (stash, pull, rebase) recover correctly.</li>
<li>Full Checkpoint history is preserved across branch operations.
<ul>
<li>HT, <a href="https://github.com/jaydenfyi">Jaydenfyi</a>!</li>
</ul>
</li>
</ul>
<h3>Empty Repo Support</h3>
<ul>
<li>Improved messaging when the Entire CLI is used in a freshly initialized repository that has no commits yet.</li>
</ul>
<p>In the coming week, we’ll focus on integrating the <a href="https://github.com/entireio/cli">Entire CLI</a> across the broader agent ecosystem — so every developer can have pluggable, independent context natively tied to their Git repository, no matter which agent they use.</p>
<p>Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0002</guid>
    </item>
    <item>
      <title>Entire Dispatch 0x0001</title>
      <link>https://entire.io/blog/entire-dispatch-0x0001</link>
      <description>Our first weekly dispatch with updates on Checkpoints, Gemini CLI support, secret detection, and more.</description>
      <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
      <category>Dispatch</category>
      <dc:creator>Marvin</dc:creator>
      <content:encoded><![CDATA[<p>Beep, boop. Welcome to our first dispatch, rebels.</p>
<p>This week we launched <a href="https://github.com/entireio/cli">Checkpoints</a>, our new primitive that automatically captures agent context as first-class, versioned data in Git. It's our first crack out the gate at building a universal semantic reasoning layer for every agent. Thanks for the love, feedback, the stars, and PRs. With your help, we've <a href="https://github.com/entireio/cli/releases">shipped new</a> features, improvements, and bug fixes to the Entire CLI and web UI. Here's a few of our favorites:</p>
<ul>
<li>We've improved Google Gemini CLI support — explain, rewind, and resume now work with Gemini sessions.</li>
<li>Layered secret detection using gitleaks now patterns on top of entropy-based redaction, strengthening protection against accidental credential leaks and reducing risk in every commit.</li>
<li>Git hooks can now chain with existing hooks. Break less, keep working the way you expect.</li>
<li>On <a href="https://entire.io">entire.io</a>, we made the Checkpoint view easier to navigate by bringing session logs and code diffs into a single, unified view.</li>
</ul>
<p><img src="/blog/entire-dispatch-0x0001/checkpoints-new.png" alt="Checkpoints"></p>
<p>And of course, that's just a few transmissions. For various more bug fixes &#x26; improvements — see more changes to the Entire CLI <a href="https://github.com/entireio/cli/releases">here</a>.</p>
<p>This is it for this round. New dispatch every week. Boop.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/entire-dispatch-0x0001</guid>
    </item>
    <item>
      <title>Hello Entire World</title>
      <link>https://entire.io/blog/hello-entire-world</link>
      <description>Announcing Entire with $60 million seed round and shipping our first product, called Checkpoints.</description>
      <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
      <category>Company</category>
      <dc:creator>Thomas Dohmke</dc:creator>
      <content:encoded><![CDATA[<blockquote>
<p><strong>*TLDR:</strong> Today, we are announcing our new company, Entire, backed by a <a href="https://entire.io/news/former-github-ceo-thomas-dohmke-raises-60-million-seed-round">$60 million seed round to build the world's next developer platform</a>. We are also shipping our first product as open source CLI to tie agent context into Git on every push.*</p>
</blockquote>
<h2>The game has changed. The system is cracking.</h2>
<p>In the last few months alone, the fundamental role of a developer has been refactored. From Anthropic's Claude Code with Opus 4.6, to OpenAI's latest GPT-5.3-Codex agentic coding model, to Cursor's Composer 1.5 and more, advancements in agentic intelligence have turned the flow of coding on its head. The terminal is becoming the new center of gravity, as developers prompt fleets of agents across multiple terminal windows at once. Spec-driven development is becoming the primary driver of code generation. Agents now interoperate in parallel, generating and evaluating hundreds of variants simultaneously. As a result, massive volumes of code are being generated faster than any human can reasonably understand.</p>
<p><strong>Yet today, we still rely on a software development lifecycle built before the era of the cloud, inherently designed for human-to-human collaboration.</strong> And the cracks are forming. Issues were designed for human planning and tracking, not as structured, machine-readable units of work. Git repositories were never extended to version everything developers build with in the AI era. Pull requests simply do not scale for large monorepos. Every day, agents are being choked and throttled by centralized API capacity and rate limits. The truth is: the entire software ecosystem is being bottlenecked by a manual system of production that was never designed for the era of AI in the first place. A system that cannot be retrofitted for what's ahead.</p>
<p>Just like when automotive companies replaced the traditional craft-based production system with the moving assembly line, we must now reimagine the entire software development lifecycle for a world where machines are the primary producers of code. Creating the assembly line for the era of agents.</p>
<h2>Announcing Entire: The world's next developer platform</h2>
<p><strong>This is the purpose of our new company <a href="https://entire.io/vision">Entire</a>, to build the world's next developer platform where agents and humans can collaborate, learn, and ship together.</strong> A platform that will be open, scalable, and independent for every developer, no matter which agent or model you use.</p>
<p>Entire will be based on three key components: <strong>a git-compatible database</strong> that unifies code, intent, constraints, and reasoning in a single version-controlled system; a universal <strong>semantic reasoning layer</strong> that enables multi-agent coordination through the context graph; and an <strong>AI-native software development lifecycle</strong> to reinvent agent-to-human collaboration.</p>
<p>In pursuit of this <a href="https://entire.io/vision">vision</a>, we are proud to be <strong>backed by a $60 million seed investment led by Felicis, with support from Madrona, M12, Basis Set, 20VC, Cherry Ventures, Picus Capital, and Global Founders Capital</strong>. Entire is further backed by a slate of international investors including Gergely Orosz, Theo Browne, Jerry Yang, Olivier Pomel, Garry Tan, and others—who all understand that software development is ready for its next platform shift.</p>
<p><img src="/blog/hello-entire-world/entire-funding-announcement-even-logos.png" alt="Entire funding announcement"></p>
<h2>Our first release: The Entire CLI to track agent context</h2>
<p>Today, agent sessions are ephemeral. Prompts live in terminals and reasoning lives in context windows. The decisions, constraints, and iteration that produce code disappears the moment you close the session. Git preserves what changed, but nothing about why. With agents generating hundreds or thousands of lines per session, this context loss compounds fast. Without shared context, agents can't collaborate effectively. They retrace steps, duplicate reasoning, waste tokens, and lose the thread of decisions made hours or days earlier.</p>
<p>Our first ship makes that missing context durable:</p>
<p><strong>Checkpoints are a new primitive that automatically captures agent context as first-class, versioned data in Git.</strong> When you commit code generated by an agent, Checkpoints capture the full session alongside the commit: the transcript, prompts, files touched, token usage, tool calls and more. This context becomes the foundational write-path of our semantic reasoning layer. You can browse checkpoints by branch, drill into individual sessions, and trace how your codebase evolved through human-and-agent collaboration commit by commit.</p>
<p>Our plan is to support Checkpoints for every agent. Today, Entire CLI ships with support for Anthropic's Claude Code and Google Gemini CLI. Codex, Cursor CLI, and other agents coming soon.</p>
<h3>How it works</h3>
<p>Checkpoints run as a Git-aware CLI. On every commit generated by an agent, it writes a structured checkpoint object and associates it with the commit SHA. The code stays exactly the same, we just add context as first-class metadata. When you push your commit, Checkpoints also pushes this metadata to a separate branch (entire/checkpoints/v1), giving you a complete, append-only audit log inside your repository. As a result, every change can now be traced back not only to a diff, but to the reasoning that produced it.</p>
<p>Checkpoints are useful immediately:</p>
<ul>
<li><strong>Traceability</strong> - inspect the reasoning behind any agent-generated change</li>
<li><strong>Faster Reviews</strong> - review intent and constraints, not just diffs</li>
<li><strong>Better handoffs</strong> - resume work without replaying prompts or sessions</li>
<li><strong>Less token waste</strong> - agents stop repeating mistakes that you corrected in past sessions</li>
<li><strong>Multi-session and agent support</strong> - support for concurrent agentic sessions</li>
</ul>
<h3>Getting Started</h3>
<p>The best part is that you can set up Entire in two easy steps.</p>
<p>Then navigate to your repository and run <code>entire enable</code> — follow the prompts to configure Entire for that project. That's it. Your agent sessions are captured automatically - in a structured and ready-to-use format.</p>
<h2>No more stealth. We are building in the open!</h2>
<p>Checkpoints are our first step towards building a universal semantic reasoning layer for agents. Today, it gives you traceability and history. Tomorrow, it will become the shared memory that allows agents to coordinate, hand off context and build together without collision or loss of understanding.</p>
<p>Most importantly, we're releasing the <a href="https://github.com/entireio/cli">Entire CLI</a> open source project because we believe that this layer should be portable, independent, and available for every single agent or model. And because we know, we are better with the contributions of the interconnected community of open-source developers.</p>
<p>Our roadmap will be directly paved by your feedback, in <a href="https://discord.gg/jZJs3Tue4S">Discord</a> and in GitHub <a href="https://github.com/entireio/cli/discussions">Discussions</a>. We're ready for it. See you there.</p>]]></content:encoded>
      <guid isPermaLink="true">https://entire.io/blog/hello-entire-world</guid>
    </item>
  </channel>
</rss>
