Model or dataset
entireio/cli avatar
entireio/cli

Entire CLI: a Git-native session recorder for AI coding agents

📜 Entire CLI hooks into your Git workflow to capture AI agent sessions as you work. Sessions are indexed alongside commits, creating a searchable record of how code was written in your repo.

5,144 stars482 forksGoMIT

At a glance

What is it?
Entire hooks into Git to capture agent sessions as searchable checkpoints tied to commits. It is a small Go binary with a two-step setup, a nightly channel, and a transcript store that lives outside your branch history.
Who is it for?
Adopt Entire CLI if your team writes code with Claude Code, Codex, Gemini, Pi or another supported agent and you want the prompt, the files touched and the token usage kept next to the commit instead of in a chat window you will close.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Entire CLI addresses

AI agents now write a meaningful share of commits, and the reasoning behind those commits usually evaporates. The diff survives in Git; the prompt that produced it, the files the agent read, the tool calls it made and the token cost do not. Six weeks later, when someone asks why a function was rewritten, the answer is buried in a chat session that has scrolled away or been deleted.

Entire CLI targets that gap. The README frames it as capturing "AI agent sessions as you work" and indexing them alongside commits so the repository holds a searchable record of how code was written. The stated audience is developers and teams already using agents such as Claude Code, Codex, Gemini and Pi, plus anyone who needs traceability for audit or compliance. The onboarding pitch is the path from prompt to change to commit, which is a different artifact from a commit message.

Sessions, checkpoints and where the data lives

The README names two core concepts. A session is a record of one agent interaction: prompts, responses, files touched, token usage and tool calls. A checkpoint is a point in that session you can return to. Checkpoints are stored in a checkpoint store rather than in your branch history, which is what lets the README claim Git history stays clean while context is preserved.

The mechanism is Git hooks. Running entire enable on a repository creates Entire settings, installs those hooks and asks which agent hooks to install. From then on the hooks fire during normal work and capture session data. Because the tool is Git-native, the workflow does not require a separate editor plugin or a proxy in front of the agent.

A concrete constraint sits in go.mod: the project pins go-git v6 at an alpha commit rather than a tagged release, with a comment explaining that the floor is needed for two upstream fixes, one about per-directory ignore scope and one about partial clones writing no promisor bookkeeping. The comment says to move to a plain tag once alpha.6 ships. That is an honest note, and it also means the dependency graph is not on a stable release line.

Installing Entire CLI and enabling it in a repository

On macOS and Linux the documented path is Homebrew. The tap has to be trusted before the cask installs, and a separate cask name selects the nightly channel.

bash
brew tap entireio/tap
brew trust entireio/tap
brew install --cask entire            # stable
# brew install --cask entire@nightly  # or nightly

If you prefer not to use Homebrew, the install script takes a channel flag. The stable run is the default.

bash
curl -fsSL https://entire.io/install.sh | bash
# curl -fsSL https://entire.io/install.sh | bash -s -- --channel nightly

On Windows the README documents PowerShell 5.1 or later. For stable releases the script uses Scoop when it is available and otherwise verifies the release checksum and installs entire.exe and git-remote-entire.exe into %USERPROFILE%\.local\bin, adding that directory to your user PATH if needed. For nightly, it always falls back to that checksum-verified path.

powershell
irm https://entire.io/install.ps1 | iex  # stable
# nightly:
# iex "& {$(irm https://entire.io/install.ps1)} -Channel nightly"

Go users can build from source. The README notes that the git-remote-entire helper is needed only for entire repo clone and git clone entire:// URLs, and that Git finds it by name on PATH.

bash
go install github.com/entireio/cli/cmd/entire@latest
go install github.com/entireio/cli/cmd/git-remote-entire@latest
export PATH="$HOME/go/bin:$PATH"

With the binary in place, the first real use is two commands inside a project. The first runs the initial enable flow and prompts for agent hooks; the second confirms the state.

bash
cd your-project && entire enable
entire status

The README states that after setup you use entire agent to add or remove agents, entire configure for non-agent settings such as telemetry, hooks, checkpoint remote and summary provider, and entire enable or entire disable to toggle Entire on or off. To skip the prompt, entire enable --agent <name> enables a specific agent non-interactively, for example entire enable --agent cursor.

Where Entire CLI is the wrong tool

Two limitations are visible from the repository itself. First, the release channel situation. The three most recent releases listed are nightly builds with date-stamped version strings, and the README describes nightly as prerelease builds that "may include newer, less-proven changes than stable." Stable exists, but anyone reading the release list to judge cadence will see nightlies. If your policy is stable-only artifacts, you are relying on a channel the README documents but the release feed does not foreground.

Second, the Windows story has a migration trap. The Scoop package was renamed from cli to entire, and the README gives a single command to move between them. It also warns that you must run it where entire is not running, because a live entire.exe locks its own shim and Scoop cannot relink or uninstall it mid-run. That is a real failure mode: run the migration from inside an active Entire session and it will not complete cleanly.

There is also a scope limit worth naming. Entire captures sessions from agents it has hooks for. If your team uses an agent outside the supported set, the hooks do not exist and there is nothing to capture. The README lists Claude Code, Codex, Gemini and Pi and points to an agent hook configuration section for the current set; it does not claim universal coverage. A team that wants one recorder for every tool it might adopt later should check that list first.

How this differs from keeping transcripts in your Git history

The obvious alternative is to commit the transcript yourself: paste the agent session into a file, or let a wrapper script append it to the commit message or a notes ref. That approach has one advantage, which is that everything stays in one place and any Git host can display it. It has two costs. Transcripts are large and noisy, so they bloat history and make diffs unreadable. And once committed, they are permanent in a way that is awkward if a prompt contained something it should not have.

Entire's approach is the opposite trade. Context lives in a checkpoint store outside the branch, indexed against commits, so git log stays as it was and the session record is retrieved separately. The README's "Keep Git history clean" bullet is exactly this claim. The cost is that the record is not portable by default: clone the repository without the checkpoint store and you have the commits but not the reasoning behind them. Anyone who needs the transcript to travel with the repository, in a plain clone, should weigh that before adopting.

A second alternative is to do nothing and rely on the agent's own session history. That works until the session is deleted, the machine is replaced, or a colleague needs to resume work you started. Entire's resume-from-checkpoint feature is aimed at that case, and the README frames it as picking up "exactly where you or a coworker left off."

Maintenance, release channels and licence

The repository is not archived, and the last push was on 2026-09-10. That is recent enough that the project is being worked on, and the nightly releases land on a daily cadence around the same period, with v0.10.7-nightly.202609100626.0138471ae published on 2026-09-10. The version line is 0.x, so the API surface of commands and configuration should be treated as pre-1.0.

Upgrade cost depends on channel. Homebrew users move between stable and nightly by swapping the cask name, which is a one-line change. Script users pass --channel. Scoop currently supports stable only, per the README, so a Windows Scoop install has no nightly path. Go installs track @latest, and the README notes one behavioural difference: a go install build leaves experimental commands visible in entire help, the same as a nightly or a local build. If you build from source, expect to see commands that packaged stable users do not.

The licence is MIT, which is permissive and imposes no copyleft obligation on your own code. The repository also carries a .allowed-licenses file and a .license-overrides file, which suggests dependency licence checking runs in the project itself. That is about their build, not yours. If your organisation audits transitive licences, the pinned go-git alpha commit in go.mod is the entry most worth looking at, since alpha dependencies can change licence headers between revisions. This is not legal advice; check with whoever handles licensing at your organisation.

Editorial conclusion

Adopt Entire CLI if your team writes code with Claude Code, Codex, Gemini, Pi or another supported agent and you want the prompt, the files touched and the token usage kept next to the commit instead of in a chat window you will close. Do not adopt it if you need a mature, stable-only release process, if you work on Windows without Scoop and want the simplest path, or if you cannot accept that session data is written to a checkpoint store whose remote configuration is only partly documented in the README. Before rolling it out across a team, run entire status on a scratch clone, confirm which checkpoint remote entire configure selects, and read the Security & Privacy section to see what redaction covers.

Frequently asked questions

What is a CLI used for?

In this case the CLI is the interface to Entire itself: entire enable sets up a repository, entire status reports the current state, entire agent manages which agent hooks are installed, and entire configure changes non-agent settings such as telemetry, hooks, checkpoint remote and summary provider.

Why are people leaving GitHub?

Entire CLI is a Git hook tool and the README does not discuss hosting providers or migrations away from GitHub, so it gives no answer here. What the README does say is that Entire's context lives outside your branch history and that Git history stays clean.

Is GitHub CLI safe?

The README covers Entire CLI, not GitHub CLI, so it cannot answer that. On the security side of Entire, the README has a Security & Privacy section and the repository ships a SECURITY.md, which are the two places to check before enabling it on a repository with sensitive content.

What does CLI anything do?

The README does not describe a tool by that name. For Entire CLI specifically, the answer is that it hooks into Git to capture AI agent sessions and index them alongside commits, so the prompt, files touched and token usage are recorded next to the change.

Official sources

  1. entireio/cli on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/entireio-cli.svg)](https://hysenlabs.com/projects/entireio-cli)