cli README

The project's README from github.com/entireio/cli. As one markdown file: README.md.

Entire CLI

Entire 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.

With Entire, you can:

Why Entire

Table of Contents

Requirements

Quick Start

macOS and Linux

Install with Homebrew:

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

Or with the install script:

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

Windows

Install with Windows PowerShell 5.1 or later:

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

For stable releases, the PowerShell installer uses Scoop when it is available, adding the Entire bucket if needed. Without Scoop — and for nightly releases — it verifies the release checksum and installs both entire.exe and git-remote-entire.exe to %USERPROFILE%\.local\bin, adding that directory to your user PATH if needed.

Or install the stable release with Scoop:

scoop bucket add entire https://github.com/entireio/scoop-bucket.git
scoop install entire/entire

Migrating an old cli Scoop install (package rename)

The Scoop package was renamed from cli to entire. If your install is still registered as the old cli package, run the migration below. It installs the new package before removing the old one, so the old install is only removed once the new one is in place (scoop reset re-links the shared entire.exe and git-remote-entire.exe shims). Run it where entire is not running — a live entire.exe locks its own shim, so Scoop can't relink or uninstall it mid-run:

cmd.exe /D /C "scoop install entire/entire && scoop uninstall entire/cli && scoop reset entire"

If the first step fails with "couldn't find manifest", your bucket clone predates the renamed package — run scoop update to refresh it, then retry the command above. Nothing is removed until the install succeeds, so a failed attempt leaves your existing install working.

Go (development/manual setup)

go install github.com/entireio/cli/cmd/entire@latest

# The git remote helper that resolves entire:// URLs, needed for `entire repo clone`
# and `git clone entire://…`. The packaged installs above bundle it.
go install github.com/entireio/cli/cmd/git-remote-entire@latest

# Add Go binaries to PATH (add to ~/.zshrc or ~/.bashrc if not already configured)
export PATH="$HOME/go/bin:$PATH"

Install both, or just entire if you never clone over entire://. Git finds the helper by name on $PATH, which is what go install produces, so nothing else needs configuring.

One difference from a stable release: a go install build leaves experimental commands visible in entire help, the same as a nightly or a local build.

Enable in your project

cd your-project && entire enable

# Check status
entire status

After the initial setup, use entire agent to add or remove agents, entire configure to update non-agent settings, and entire enable / entire disable to toggle Entire on or off.

Release Channels

Entire currently ships two release channels:

How to use each channel:

Typical Workflow

1. Enable Entire in Your Repository

entire enable

On a repo that has not been enabled yet, entire enable runs the initial enable flow: it creates Entire settings, installs git hooks, and prompts you to choose which agent hooks to install. To enable a specific agent non-interactively, use entire enable --agent <name> (for example, entire enable --agent cursor).

After setup:

The hooks capture session data as you work. Checkpoints are created when you or the agent make a git commit. Your code commits stay clean, Entire never creates commits on your active branch. Session metadata is stored outside your branch's history, in the checkpoint storage described under Checkpoint Storage.

2. Work with Your AI Agent

Just use one of your AI agents as before. Entire runs in the background, tracking your session:

entire status  # Check current session status anytime

3. Resume a Previous Session

To restore the latest checkpointed session metadata for a branch:

entire session resume <branch>

Entire checks out the branch, restores the latest checkpointed session metadata (one or more sessions), and prints command(s) to continue.

4. Disable Entire (Optional)

entire disable

Removes the git hooks. Your code and commit history remain untouched.

Key Concepts

Sessions

A session represents a complete interaction with your AI agent, from start to finish. Each session captures all prompts, responses, files modified, and timestamps.

The session ID is the unique identifier the agent itself provides — Entire never mints its own — so an ID you see in entire session list is the same one the agent uses. The format is the agent's to choose: most supply a UUID (e.g. 019efea2-b46a-7cbc-be01-4c13460f5019), while OpenCode uses ses_-prefixed IDs.

Sessions are stored separately from your code commits, in the repo's checkpoint storage.

Checkpoints

A checkpoint is a snapshot within a session—a "save point" in your work.

Checkpoints are created when you or the agent make a git commit, and the commit carries an Entire-Checkpoint: <id> trailer linking the two.

Checkpoint IDs are 26-character ULIDs (e.g. 01K9TQ8ZP7X3F5M2WVJ4CNRB6D), which sort by creation time. Checkpoints written by older versions of Entire carry a legacy 12-character hex ID (e.g. a3b2c4d5e6f7); both formats stay readable in the same repo, and you can pass either to any command that takes a checkpoint ID.

Checkpoint Storage

Checkpoints live in your repository's own git object store, never in your branch's history. Each checkpoint is its own git ref:

refs/entire/checkpoints/<shard>/<id>

The ref points at a commit whose tree is that checkpoint — metadata.json, the per-session transcript files, and any subagent task records. <shard> is the last two characters of the ID, which keeps the refs evenly distributed.

Because checkpoints are independent refs, they are written, pushed, and fetched independently. There is no shared branch tip for concurrent sessions to contend on, and a reader can fetch exactly the one checkpoint it needs instead of a whole history. A checkpoint written on another machine is fetched on demand the first time you read it.

entire enable sets this up; there is nothing to configure. It is recorded in .entire/settings.json as:

{
  "checkpoints": {
    "primary": { "type": "git-refs" }
  }
}

Inspect what a repo has locally with plain git, or through Entire:

git for-each-ref refs/entire/checkpoints    # the raw refs
entire checkpoint list                      # checkpoints on this branch
entire checkpoint explain <id>              # one checkpoint in full

How It Works

Your Branch                      Checkpoint storage
     │                                  │
     ▼                                  │
[Base Commit]                           │
     │                                  │
     │  ┌─── Agent works ───┐           │
     │  │  Turn 1           │           │
     │  │  Turn 2           │           │
     │  │  Turn 3           │           │
     │  └───────────────────┘           │
     │                                  │
     ▼                                  ▼
[Your Commit] ─────────────────► [Checkpoint]
  Entire-Checkpoint: <id>          (transcript, prompts,
     │                              files touched, tokens)
     ▼

Work in progress is held on a short-lived shadow branch as you go. When you commit, that work is condensed into a permanent checkpoint and linked to your commit by an Entire-Checkpoint trailer.

Strategy

Entire uses a manual-commit strategy that keeps your git history clean:

Git Worktrees

Entire works seamlessly with git worktrees. Each worktree has independent session tracking, so you can run multiple AI sessions in different worktrees without conflicts.

Concurrent Sessions

Multiple AI sessions can run on the same commit. If you start a second session while another has uncommitted work, Entire warns you and tracks them separately. Both sessions' checkpoints are preserved, and a commit condenses every session with pending work in that worktree.

Headless & CI Authentication

By default entire login opens a browser to sign in and stores tokens in the OS keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager). Machines without a usable browser or keyring — headless servers, containers, minimal VMs, CI runners — have two supported paths:

Interactive login on a headless machine

Sign-in itself already handles this: with no interactive terminal, or over SSH, entire login switches to the device-code flow on its own and prints an approval URL you can open on any machine. entire login --device forces that flow explicitly. Only token storage needs an override — use the file-backed store:

ENTIRE_TOKEN_STORE=file entire login

Tokens are written with 0600 permissions to tokens.json in your Entire config directory (~/.config/entire by default). Override the location with ENTIRE_TOKEN_STORE_PATH. Set ENTIRE_TOKEN_STORE=file persistently (e.g. in your shell profile) so later commands read from the same store.

Non-interactive automation (CI, workload identity)

Skip login and storage entirely by injecting a token per invocation:

ENTIRE_TOKEN=<login-or-sa-session-JWT> entire ...

ENTIRE_TOKEN bypasses stored credentials; the CLI derives the control-plane endpoint from the token itself. Nothing is written to disk. This is the right path for CI pipelines and service accounts.

Seeing save login / failed to unlock correct collection errors from entire login? That's the OS keyring being unavailable — use one of the two paths above.

Commands Reference

Descriptions below are the commands' own summaries. entire help always reflects the installed binary; entire agent-help is the machine-readable version agents read.

Setup

Command Description
entire enable Enable Entire in current repository
entire disable Disable Entire in current repository
entire status Show Entire status (--json for structured output)
entire agent Manage agent integrations (add, remove, list)
entire configure Update non-agent Entire settings in the current repository
entire doctor Diagnose and fix session issues (trace, logs, bundle, migrate-checkpoints)
entire clean Clean up Entire session data (--all for repo-wide cleanup)
entire plugin Manage Entire plugins (see Plugins)

Sessions & Checkpoints

Command Description
entire session Manage agent sessions (list, info, current, stop, attach, adopt, resume, tokens)
entire session resume Resume a stopped session — interactive picker, or by branch
entire checkpoint Inspect and search checkpoints (list, explain, tokens, search)
entire checkpoint explain Explain a checkpoint, commit, or session
entire search Search checkpoints, commits, and sessions using semantic and keyword matching
entire activity Show your activity overview
entire recap Summarize recent checkpoint activity
entire dispatch Generate a dispatch summarizing recent agent work

Account

Command Description
entire login Log in to Entire (browser by default; --device for the device-code flow)
entire logout Log out of Entire
entire auth Manage authentication (status, contexts, use, token, login, logout)

Control Plane

Command Description
entire org Manage Entire organizations (create, list, get, delete)
entire project Manage Entire projects (create, list, get, delete)
entire repo Manage Entire repositories (create, list, get, delete, clone, mirror, visibility)
entire grant Manage Entire access grants and org membership (org, project, repo)
entire api Make an authenticated request to an Entire API and print the response

Other

Command Description
entire agent-help Machine-readable usage for coding agents (always matches the installed CLI)
entire labs Explore experimental Entire workflows
entire version Show build information

Experimental Commands

These are visible in developer and nightly builds and hidden in stable releases, but always runnable in every build. Run entire labs to discover them.

Command Description
entire review Run a multi-agent review against a branch
entire investigate Run a multi-agent investigation against the current branch
entire tokens Analyze token usage across sessions and checkpoints
entire blame Show which lines came from Entire checkpoints
entire why Show why a line exists
entire experts Rank agent provenance for code scopes
entire import Import pre-existing agent history into Entire
entire runner Set up and tune trail runners for this repository

entire blame <file> shows which current file lines came from an Entire checkpoint (--long for the full agent, model, author, and session table), and entire why <file>:<line> jumps from a specific line back to the prompt, session, and checkpoint that created it.

entire enable Flags

Flag Description
`--agent <name

cli (entireio/cli)

Searching Database…

5.2K ·GitHub
Что это такое?Entire — это CLI-утилита, которая подключается к вашему Git-процессу, записывает сессии ИИ-агентов для написания кода (промпты, ответы, затронутые файлы) и индексирует их вместе с вашими коммитами, создавая доступную для поиска историю того, как был написан код.
Это GUI-приложение или оно тихо работает в фоне?Это утилита командной строки, которая устанавливает Git-хуки в ваш репозиторий. Она работает в фоне, пока вы пользуетесь ИИ-агентом, а напрямую вы с ней взаимодействуете только через команды вроде entire session или entire search.
Как установить и начать пользоваться им в проекте?В macOS и Linux установите через Homebrew (brew install --cask entire) или скриптом установки; в Windows используйте установщик PowerShell (он использует Scoop, если тот доступен). Затем выполните entire enable в репозитории, чтобы установить Git-хуки и выбрать, какие интеграции с агентами добавить.
Что нужно иметь до начала работы и какие агенты поддерживаются?Нужны Git и поддерживаемый ИИ-агент, установленный и авторизованный. Упоминаются Claude Code, Codex, Gemini, Cursor, Pi и OpenCode. Сборка из исходников через go install дополнительно требует Go 1.26+.
Entire как-нибудь трогает историю коммитов, и что с CI или машинами без интерфейса?Нет — Entire никогда не создаёт коммиты в вашей текущей ветке; контрольные точки хранятся как независимые Git-ссылки вне истории веток. На машинах без графического интерфейса (CI, контейнеры, минимальные ВМ), где нет доступного браузера или связки ключей ОС, нужен вход по коду устройства (device code) или вход на основе файла/токена вместо стандартной связки ключей.
Где на самом деле хранятся данные сессий и токен входа?Записи сессий и контрольные точки хранятся в объектном хранилище Git вашего репозитория как отдельные ссылки, но никогда не в истории веток. Токены входа по умолчанию хранятся в связке ключей ОС (Keychain на macOS, Secret Service в Linux, Credential Manager в Windows), а для машин без интерфейса — в локальном файле tokens.json.
В чём разница между сессией и контрольной точкой?Сессия — это весь ход взаимодействия с ИИ-агентом от начала до конца, включая все промпты, ответы и затронутые файлы. Контрольная точка — это снимок, который делается каждый раз, когда вы или агент делаете Git-коммит, и привязывается к этому коммиту через трейлер Entire-Checkpoint.
Как продолжить предыдущую сессию ИИ?Выполните entire session resume (в интерактивном режиме или по ветке). Entire переключится на нужную ветку, восстановит метаданные последней сохранённой сессии и выведет команду, чтобы продолжить ровно с того места, где вы остановились.
Работает ли это с git worktree и несколькими одновременными сессиями агентов?Да — каждое рабочее дерево получает независимое отслеживание сессий. Если на одном коммите работает несколько сессий ИИ, Entire отслеживает их отдельно, сохраняя все их контрольные точки.
Какие каналы выпусков доступны?Entire выпускается в канале «stable», который используется по умолчанию для Homebrew, Scoop и install.sh, а также в более часто обновляемом канале «nightly» для тех, кто хочет получать последние изменения раньше.
Creator
entireio
Size
727.8 MB
Stars
5.2K
Age
9mo
Commits · 90 Days