entireio/cliPublic

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

AI summary: A CLI tool that indexes AI agent sessions alongside Git commits for complete traceability.

Stars
4.9K
+9 today
Forks
381
Watchers
13
Open issues
64
Open PRs
96
Contributors
~58
Commits
7.2K
Branches
331

GoMITCreated Jan 2, 2026Last push todayLatest release v0.9.0+50 stars this week+59 this month

Star history

since Feb 8, 2026
02K4KFeb 2026Apr 2026Jun 2026Aug 2026
4.9K stars as of Aug 7, 2026, tracked back to Feb 8, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 1 commit2026-01-04: 0 commits2026-01-05: 10 commits2026-01-06: 16 commits2026-01-07: 13 commits2026-01-08: 6 commits2026-01-09: 9 commits2026-01-10: 2 commits2026-01-11: 0 commits2026-01-12: 12 commits2026-01-13: 6 commits2026-01-14: 7 commits2026-01-15: 17 commits2026-01-16: 10 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 11 commits2026-01-20: 26 commits2026-01-21: 33 commits2026-01-22: 34 commits2026-01-23: 49 commits2026-01-24: 5 commits2026-01-25: 3 commits2026-01-26: 8 commits2026-01-27: 32 commits2026-01-28: 32 commits2026-01-29: 27 commits2026-01-30: 3 commits2026-01-31: 2 commits2026-02-01: 7 commits2026-02-02: 20 commits2026-02-03: 19 commits2026-02-04: 33 commits2026-02-05: 29 commits2026-02-06: 39 commits2026-02-07: 27 commits2026-02-08: 17 commits2026-02-09: 49 commits2026-02-10: 67 commits2026-02-11: 33 commits2026-02-12: 11 commits2026-02-13: 19 commits2026-02-14: 11 commits2026-02-15: 26 commits2026-02-16: 23 commits2026-02-17: 25 commits2026-02-18: 14 commits2026-02-19: 43 commits2026-02-20: 59 commits2026-02-21: 10 commits2026-02-22: 2 commits2026-02-23: 34 commits2026-02-24: 73 commits2026-02-25: 61 commits2026-02-26: 86 commits2026-02-27: 80 commits2026-02-28: 1 commit2026-03-01: 4 commits2026-03-02: 28 commits2026-03-03: 33 commits2026-03-04: 63 commits2026-03-05: 40 commits2026-03-06: 61 commits2026-03-07: 2 commits2026-03-08: 6 commits2026-03-09: 11 commits2026-03-10: 14 commits2026-03-11: 16 commits2026-03-12: 8 commits2026-03-13: 5 commits2026-03-14: 15 commits2026-03-15: 0 commits2026-03-16: 32 commits2026-03-17: 20 commits2026-03-18: 48 commits2026-03-19: 15 commits2026-03-20: 48 commits2026-03-21: 2 commits2026-03-22: 1 commit2026-03-23: 23 commits2026-03-24: 7 commits2026-03-25: 56 commits2026-03-26: 45 commits2026-03-27: 32 commits2026-03-28: 7 commits2026-03-29: 8 commits2026-03-30: 37 commits2026-03-31: 57 commits2026-04-01: 36 commits2026-04-02: 23 commits2026-04-03: 40 commits2026-04-04: 0 commits2026-04-05: 2 commits2026-04-06: 17 commits2026-04-07: 31 commits2026-04-08: 43 commits2026-04-09: 61 commits2026-04-10: 53 commits2026-04-11: 7 commits2026-04-12: 12 commits2026-04-13: 38 commits2026-04-14: 42 commits2026-04-15: 72 commits2026-04-16: 48 commits2026-04-17: 25 commits2026-04-18: 11 commits2026-04-19: 3 commits2026-04-20: 56 commits2026-04-21: 52 commits2026-04-22: 37 commits2026-04-23: 66 commits2026-04-24: 43 commits2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 34 commits2026-04-28: 30 commits2026-04-29: 14 commits2026-04-30: 36 commits2026-05-01: 19 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 39 commits2026-05-05: 26 commits2026-05-06: 24 commits2026-05-07: 34 commits2026-05-08: 44 commits2026-05-09: 7 commits2026-05-10: 5 commits2026-05-11: 22 commits2026-05-12: 42 commits2026-05-13: 12 commits2026-05-14: 21 commits2026-05-15: 32 commits2026-05-16: 0 commits2026-05-17: 1 commit2026-05-18: 17 commits2026-05-19: 41 commits2026-05-20: 22 commits2026-05-21: 9 commits2026-05-22: 23 commits2026-05-23: 0 commits2026-05-24: 1 commit2026-05-25: 9 commits2026-05-26: 20 commits2026-05-27: 44 commits2026-05-28: 25 commits2026-05-29: 34 commits2026-05-30: 12 commits2026-05-31: 7 commits2026-06-01: 55 commits2026-06-02: 71 commits2026-06-03: 64 commits2026-06-04: 69 commits2026-06-05: 21 commits2026-06-06: 8 commits2026-06-07: 4 commits2026-06-08: 9 commits2026-06-09: 13 commits2026-06-10: 34 commits2026-06-11: 41 commits2026-06-12: 4 commits2026-06-13: 8 commits2026-06-14: 3 commits2026-06-15: 16 commits2026-06-16: 21 commits2026-06-17: 70 commits2026-06-18: 66 commits2026-06-19: 30 commits2026-06-20: 1 commit2026-06-21: 6 commits2026-06-22: 61 commits2026-06-23: 50 commits2026-06-24: 45 commits2026-06-25: 63 commits2026-06-26: 55 commits2026-06-27: 13 commits2026-06-28: 8 commits2026-06-29: 69 commits2026-06-30: 59 commits2026-07-01: 57 commits2026-07-02: 47 commits2026-07-03: 34 commits2026-07-04: 15 commits2026-07-05: 7 commits2026-07-06: 34 commits2026-07-07: 43 commits2026-07-08: 35 commits2026-07-09: 37 commits2026-07-10: 36 commits2026-07-11: 24 commits2026-07-12: 0 commits2026-07-13: 38 commits2026-07-14: 43 commits2026-07-15: 36 commits2026-07-16: 35 commits2026-07-17: 28 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 25 commits2026-07-21: 22 commits2026-07-22: 9 commits2026-07-23: 23 commits2026-07-24: 18 commits2026-07-25: 0 commits2026-07-26: 1 commit2026-07-27: 3 commits2026-07-28: 9 commits2026-07-29: 2 commits2026-07-30: 9 commits2026-07-31: 13 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 1 commit2026-08-04: 4 commits2026-08-05: 9 commits2026-08-06: 1 commit2026-08-07: 0 commits2026-08-08: 0 commits
5,296 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    5,296 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What cli does

Entire CLI hooks directly into the Git workflow to capture the complete context of AI coding sessions, ensuring that prompt/response transcripts, token usage, tool calls, and file modifications are permanently indexed alongside the resulting commits. It provides a searchable, versioned record that answers not just what code changed, but why the AI made that decision. Furthermore, it allows developers to instantly rewind to known-good checkpoints when an agent hallucinates, all while keeping the main Git history clean by isolating agent context on separate branches.

Software teams heavily relying on AI coding agents who need strict auditing, traceability, and the ability to safely rollback agent errors.

  • Complete session indexing: captures transcripts, prompts, and tool calls, tying them directly to the resulting git commits.
  • Instant checkpoint recovery: allows developers to instantly rewind a rogue agent session back to a previously known-good state.
  • Zero context switching: operates as a Git-native tool without requiring developers to leave their terminal workflow.
  • Multi-model support: perfectly compatible with a wide array of agents including Claude Code, Codex, and Gemini.
  • Audit trail generation: maintains a highly searchable, versioned record to support enterprise compliance and auditing requirements.

Where teams use it

Auditing AI contributions

Engineering managers use the indexed sessions to review the exact prompts and tool calls an agent used to generate a critical pull request.

Agent hallucination recovery

Developers immediately roll back their workspace to a specific prompt checkpoint after their agent accidentally deletes crucial configuration files.

Seamless team onboarding

New team members read the attached session transcripts to understand the exact reasoning and context behind complex AI-generated logic.

Clean repository history

Maintainers leverage the tool to keep massive AI context files isolated on separate branches while still maintaining complete traceability.

Getting started: No specific command provided in the excerpt.

README

main branch

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:

  • Understand why code changed — see the full prompt/response transcript and files touched
  • Recover instantly — rewind to a known-good checkpoint when an agent goes sideways and resume seamlessly
  • Keep Git history clean — preserve agent context on a separate branch
  • Onboard faster — show the path from prompt → change → commit
  • Maintain traceability — support audit and compliance requirements when needed

Why Entire

  • Understand why code changed, not just what — Transcripts, prompts, files touched, token usage, tool calls, and more are captured alongside every commit.
  • Rewind and resume from any checkpoint — Go back to any previous agent session and pick up exactly where you or a coworker left off.
  • Full context preserved and searchable — A versioned record of every AI interaction tied to your git history, with nothing lost.
  • Zero context switching — Git-native, two-step setup, works with Claude Code, Codex, Gemini, Pi, and more.

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 Scoop:

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

Go (development/manual setup)

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

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

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:

  • stable: recommended for most users. Stable releases change less often and are the default for Homebrew, Scoop, and install.sh.
  • nightly: prerelease builds for users who want the latest changes earlier. Nightlies are published more frequently and may include newer, less-proven changes than stable.

How to use each channel:

  • Homebrew (one-time setup): brew tap entireio/tap && brew trust entireio/tap
  • Homebrew stable: brew install --cask entire
  • Homebrew nightly: brew install --cask entire@nightly
  • install.sh stable: curl -fsSL https://entire.io/install.sh | bash
  • install.sh nightly: curl -fsSL https://entire.io/install.sh | bash -s -- --channel nightly
  • Scoop: currently supports stable only via scoop install entire/cli

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:

  • Use entire enable to turn Entire back on if the repo is currently disabled.
  • Use entire agent to add or remove agents.
  • Use entire configure to update non-agent settings (telemetry, hooks, checkpoint remote, summary provider).

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. All session metadata is stored on a separate entire/checkpoints/v1 branch.

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. Rewind to a Previous Checkpoint (deprecated)

Deprecated: entire checkpoint rewind will be removed in a future release.

If you want to undo some changes and go back to an earlier checkpoint:

entire checkpoint rewind

This shows all available checkpoints in the current session. Select one to restore your code to that exact state.

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

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

Session ID format: YYYY-MM-DD-<UUID> (e.g., 2026-01-08-abc123de-f456-7890-abcd-ef1234567890)

Sessions are stored separately from your code commits on the entire/checkpoints/v1 branch.

Checkpoints

A checkpoint is a snapshot within a session that you can rewind to—a "save point" in your work.

Checkpoints are created when you or the agent make a git commit. Checkpoint IDs are 12-character hex strings (e.g., a3b2c4d5e6f7).

How It Works

Your Branch                    entire/checkpoints/v1
     │                                  │
     ▼                                  │
[Base Commit]                           │
     │                                  │
     │  ┌─── Agent works ───┐           │
     │  │  Step 1           │           │
     │  │  Step 2           │           │
     │  │  Step 3           │           │
     │  └───────────────────┘           │
     │                                  │
     ▼                                  ▼
[Your Commit] ─────────────────► [Session Metadata]
     │                           (transcript, prompts,
     │                            files touched)
     ▼

Checkpoints are saved as you work. When you commit, session metadata is permanently stored on the entire/checkpoints/v1 branch and linked to your commit.

Strategy

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

  • No commits on your branch — Entire never creates commits on the active branch
  • Safe on any branch — works on main, master, and feature branches alike
  • Non-destructive rewind — restore files from any checkpoint without altering commit history
  • Metadata stored separately — all session data lives on the entire/checkpoints/v1 branch

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 can be rewound independently.

Headless & CI Authentication

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

Interactive login on a headless machine

Use the file-backed token store. The device-auth flow already works without a local browser (the CLI prints an approval URL you can open on any machine); only token storage needs the override:

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.

Local Device Auth Testing

If you're working on the CLI device auth flow against a local entire.io checkout:

# In your app repo
cd ../entire.io-1
mise run dev

# In this repo, point the CLI at the local API. The login flow targets
# the local server via --server (the default is the production
# us.auth.entire.io).
cd ../cli
export ENTIRE_API_BASE_URL=http://localhost:8787
entire login --server https://localhost:8180

# Run the smoke test
./scripts/local-device-auth-smoke.sh

Useful commands while developing:

# Run the login flow against a local server (prompts to press Enter before opening the browser)
go run ./cmd/entire login --server https://localhost:8180

# Run the focused integration coverage for login
go test -tags=integration ./cmd/entire/cli/integration_test -run TestLogin

Commands Reference

Command Description
entire clean Clean up session data and orphaned Entire data (use --all for repo-wide cleanup)
entire agent Add, remove, or list agent integrations for the current repository
entire configure Update non-agent settings (telemetry, git hook, strategy options, summary provider)
entire disable Remove Entire hooks from repository
entire doctor Fix or clean up stuck sessions
entire enable Enable Entire in your repository
entire checkpoint List, explain, and search checkpoints
entire checkpoint explain Explain a session, commit, or checkpoint
entire checkpoint rewind Rewind to a previous checkpoint (deprecated, will be removed in a future release)
entire login Authenticate the CLI with Entire device auth
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 access grants and org membership (org, project, repo)
entire session View and manage agent sessions tracked by Entire
entire session resume Switch to a branch, restore latest checkpointed session metadata, and show command(s)
entire session attach Attach to a previously detached session
entire status Show current session info
entire doctor trace Show hook performance traces
entire version Show Entire CLI version

entire blame and entire why are experimental Labs commands. Run entire labs to discover them. entire blame <file> shows which current file lines came from an Entire checkpoint, and entire why <file>:<line> jumps from a specific line back to the prompt, session, and checkpoint that created it. Use entire blame <file> --long for the full agent, model, author, and session table.

entire enable Flags

Flag Description
--agent <name> AI agent to install hooks for: claude-code, codex, gemini, opencode, cursor, factoryai-droid, or copilot-cli
--force, -f Force reinstall hooks (removes existing Entire hooks first)
--local Write settings to settings.local.json instead of settings.json
--project Write settings to settings.json even if it already exists
--skip-push-sessions Disable automatic pushing of session logs on git push
--checkpoint-remote <provider:owner/repo> Push checkpoint branches to a separate repo (e.g., github:org/checkpoints-repo)
--telemetry=false Disable anonymous usage analytics

Examples:

# First-time setup with a specific agent
entire enable --agent claude-code

# Re-enable a disabled repo
entire enable

# Re-enable and refresh hooks
entire enable --force

# Save settings locally (not committed to git)
entire enable --local

entire enable is primarily for turning Entire on. On an unconfigured repo it will also bootstrap setup. Use entire agent for adding or removing agents, and entire configure for non-agent settings.

entire configure

Use entire configure to update non-agent settings on a repo that's already set up. Agent installation lives under entire agent.

Typical uses:

  • Toggle telemetry
  • Reinstall the Entire git hook (--force, --absolute-git-hook-path)
  • Update strategy options such as --checkpoint-remote or --skip-push-sessions
  • Pick a summary provider for entire explain --generate

Examples:

# Show help and the hint pointing to 'entire agent'
entire configure

# Opt out of telemetry
entire configure --telemetry=false

# Reinstall the Entire git hook with an absolute binary path
entire configure --absolute-git-hook-path

# Update strategy options on an existing repo
entire configure --checkpoint-remote github:myorg/checkpoints-private

# Add or remove an agent
entire agent add claude-code
entire agent remove claude-code

Configuration

Entire uses two configuration files in the .entire/ directory:

settings.json (Project Settings)

Shared across the team, typically committed to git:

{
  "enabled": true
}

settings.local.json (Local Settings)

Personal overrides, gitignored by default:

{
  "enabled": false,
  "log_level": "debug"
}

Configuration Options

Option Values Description
enabled true, false Enable/disable Entire
log_level debug, info, warn, error Logging verbosity
strategy_options.push_sessions true, false Auto-push entire/checkpoints/v1 branch on git push
strategy_options.checkpoint_remote {"provider": "github", "repo": "org/repo"} Push checkpoint branches to a separate repo (see below)
strategy_options.summarize.enabled true, false Auto-generate AI summaries at commit time
telemetry true, false Send anonymous usage statistics to Posthog

Agent Hook Configuration

Each agent stores its hook configuration in its own directory. When you run entire enable, hooks are installed in the appropriate location for each selected agent:

Agent Hook Location Format
Claude Code .claude/settings.json JSON hooks config
Codex .codex/hooks.json JSON hooks config
Copilot CLI .github/hooks/entire.json JSON hooks config
Cursor .cursor/hooks.json JSON hooks config
Factory AI Droid .factory/settings.json JSON hooks config
Gemini CLI .gemini/settings.json JSON hooks config
OpenCode .opencode/plugins/entire.ts TypeScript plugin
Pi .pi/extensions/entire/index.ts TypeScript extension

You can enable multiple agents at the same time — each agent's hooks are independent. Entire detects which agents are active by checking for installed hooks, not by a setting in settings.json.

Checkpoint Remote

By default, Entire pushes entire/checkpoints/v1 to the same remote as your code. If you want to push checkpoint data to a separate repo (e.g., a private repo for public projects), configure checkpoint_remote with a structured provider and repo:

{
  "strategy_options": {
    "checkpoint_remote": {
      "provider": "github",
      "repo": "myorg/checkpoints-private"
    }
  }
}

Or via the CLI:

entire enable --checkpoint-remote github:myorg/checkpoints-private

Entire derives the git URL automatically using the same protocol (SSH or HTTPS) as your push remote. It will:

  • Fetch the checkpoint branch locally if it exists on the remote but not locally (one-time)
  • Push entire/checkpoints/v1 to the checkpoint repo instead of your default push remote
  • Skip pushing if a fork is detected (push remote owner differs from checkpoint repo owner)
  • If the remote is unreachable, warn and continue without blocking your main push

ENTIRE_CHECKPOINT_TOKEN

ENTIRE_CHECKPOINT_TOKEN allows you to provide a dedicated token for checkpoint repository operations, without modifying the credentials used for your primary repository.

When this environment variable is set, Entire behaves as follows:

  • Injects the token into HTTPS Git operations used for checkpoint fetch and push
  • If checkpoint_remote is configured:
    • Prefers an HTTPS URL for the checkpoint remote when a token is present, even if the repository’s origin uses SSH
  • If checkpoint_remote is not configured:
    • Falls back to using the default origin remote
  • If checkpoint_remote configuration cannot be loaded:
    • Falls back to origin
    • If origin is a valid SSH or HTTPS Git remote, Entire converts it to an HTTPS URL to enable token-based authentication

Auto-Summarization

When enabled, Entire automatically generates AI summaries for checkpoints at commit time. Summaries capture intent, outcome, learnings, friction points, and open items from the session.

{
  "strategy_options": {
    "summarize": {
      "enabled": true
    }
  }
}

Requirements:

  • Claude CLI must be installed and authenticated (claude command available in PATH)
  • Summary generation is non-blocking: failures are logged but don't prevent commits

Note: Currently uses Claude CLI for summary generation. Other AI backends may be supported in future versions.

Settings Priority

Local settings override project settings field-by-field. When you run entire status, it shows both project and local (effective) settings.

Agent-Specific Steps & Limitations

  • Codex hooks are enabled by default (codex-cli 0.124.0+), so enabling Entire for Codex only installs .codex/hooks.json — no config.toml is needed and Entire never creates one. If an older Entire version left a .codex/config.toml behind and your repo lives inside ~/.codex/agents, delete that file to stop Codex's "malformed agent role definition" startup warning.
  • Entire supports Cursor IDE and Cursor Agent CLI tool, but entire rewind is not available at this time. Other commands (doctor, status etc.) work the same as all other agents.
  • Entire supports Copilot CLI, but not Copilot in VS Code, in other IDEs, or on github.com.
  • Entire supports Pi coding agent (Preview). Pi uses a TypeScript extension instead of a JSON hook config. Subagent capture is not currently available.

Security & Privacy

Your session transcripts are stored in your git repository on the entire/checkpoints/v1 branch. If your repository is public, this data is visible to anyone.

Entire automatically redacts detected secrets (API keys, tokens, credentials) when writing to entire/checkpoints/v1, but redaction is best-effort. Temporary shadow branches used during a session may contain unredacted data and should not be pushed. See docs/security-and-privacy.md for details.

Troubleshooting

Common Issues

Issue Solution
"Not a git repository" Navigate to a Git repository first
"Entire is disabled" Run entire enable
"No rewind points found" Work with your configured agent and commit your changes
"shadow branch conflict" Run entire clean --force

SSH Authentication Errors

If you see an error like this when running entire resume:

Failed to fetch metadata: failed to fetch entire/checkpoints/v1 from origin: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

This is a known issue with go-git's SSH handling. Fix it by adding GitHub's host keys to your known_hosts file:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
ssh-keyscan -t ecdsa github.com >> ~/.ssh/known_hosts

Debug Mode

# Via environment variable
ENTIRE_LOG_LEVEL=debug entire status

# Or via settings.local.json
{
  "log_level": "debug"
}

Cleaning Up State

# Clean session data for current commit
entire clean --force

# Clean all orphaned data across the repository
entire clean --all --force

# Disable and re-enable
entire disable && entire enable --force

Accessibility

For screen reader users, enable accessible mode:

export ACCESSIBLE=1
entire enable

This uses simpler text prompts instead of interactive TUI elements.

Development

This project uses mise for task automation and dependency management.

Prerequisites

  • mise - Install with curl https://mise.run | sh

Getting Started

# Clone the repository
git clone <repo-url>
cd cli

# Install dependencies (including Go)
mise install

# Trust the mise configuration (required on first setup)
mise trust

# Build the CLI
mise run build

Dev Container

The repo includes a .devcontainer/ configuration that installs the system packages used by local development and CI (git, tmux, gnome-keyring, etc) and then bootstraps the repo's mise toolchain.

Open the folder in a Dev Container, or start it from the devcontainer CLI as follows:

devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . bash -lc '.devcontainer/run-with-keyring.sh'

The container's postCreateCommand runs mise trust --yes && mise install, so Go, golangci-lint, gotestsum, shellcheck, and the canary E2E helper binaries are ready after creation. Use .devcontainer/run-with-keyring.sh <command> for commands that touch the Linux keyring, including mise run test:ci.

If ENTIRE_DEVCONTAINER_KEYRING_PASSWORD is set in the environment, .devcontainer/run-with-keyring.sh uses that value to unlock the keyring non-interactively. If it is unset, the script generates a random password for the session automatically.

Common Tasks

# Run tests
mise run test

# Run integration tests
mise run test:integration

# Run all tests (unit + integration, CI mode)
mise run test:ci

# Lint the code
mise run lint

# Format the code
mise run fmt

Getting Help

entire --help              # General help
entire <command> --help    # Command-specific help

License

MIT License - see LICENSE for details.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

145 total
  1. v0.9.1-nightly.202608070629.dd2e87a02v0.9.1-nightly.202608070629.dd2e87a02Aug 7, 2026pre-release9 downloads

    ## Nightly Build (v0.9.1-nightly.202608070629.dd2e87a02) Changes since v0.9.1-nightly.202608060700.f4c81a9cf: fd3cc5601 fix(e2e): select the restored Codex rollout by recency, not by path inequality c5d953caa refactor(external): keep `ctx` bound to the caller, name the derived timeout 023187738 fix(external): consult the caller's context when discovering a named agent bed532ba9 test: pin down checkpoint push behavior for multi-push-URL remotes d87ba987a fix(import): sanitize Codex rollouts before redacting them on import 914a15ab9 fix(checkpoint): sanitize before redacting in the TranscriptPath fallback 4f25878fc fix(codex): keep compaction lines so stored transcripts stay line-aligned 9ad1a5fad fix(checkpoint): sanitize transcripts before externalizing and redacting ca31edfe0 fix(checkpoint): sanitize agent transcripts before redacting them

  2. v0.9.1-nightly.202608060700.f4c81a9cfv0.9.1-nightly.202608060700.f4c81a9cfAug 6, 2026pre-release12 downloads

    ## Nightly Build (v0.9.1-nightly.202608060700.f4c81a9cf) Changes since v0.9.1-nightly.202608050700.76dff6a81: 773db0d34 build: bump Go to 1.26.5 to fix -race fork-child crashes on darwin 408435dab Make git-refs the sole enable default; drop backend picker

  3. v0.9.1-nightly.202608050700.76dff6a81v0.9.1-nightly.202608050700.76dff6a81Aug 5, 2026pre-release15 downloads

    ## Nightly Build (v0.9.1-nightly.202608050700.76dff6a81) Changes since v0.9.1-nightly.202608040658.9fe3e6f22: 6556fb75a Clarify environment token usage ed18b16fb Force refresh rejected login JWTs 3df7ea461 Use login JWTs directly for cell auth 457d77620 build(deps): bump the codeql-action group with 2 updates 69c50e579 fix(repo): stop leaking credentials in git argv errors; drop silent no-message exits e7ba3209f fix(repo): warn when `mirror use` cannot preserve the replaced URL 4e229c054 feat(repo): add `entire repo mirror use` to repoint a clone at a mirror

  4. v0.9.1-nightly.202608040658.9fe3e6f22v0.9.1-nightly.202608040658.9fe3e6f22Aug 4, 2026pre-release10 downloads

    ## Nightly Build (v0.9.1-nightly.202608040658.9fe3e6f22) Changes since v0.9.1-nightly.202608010655.907078158: 22eaed637 fix(checkpoint): keep the 'no fetch URL found' message when no remote is configured 26457a118 fix(checkpoint): only classify probe failure as absence when no remote is configured e9fb3e5aa remote: classify absence only on a confirmed zero-remotes listing 4d1a0cb9f fix(checkpoint): fall back to v1-branch store when no checkpoint remote is configured cdd98e4ab remote: a malformed checkpoint_remote entry blocks the absence shortcut f103e27d8 remote: require a readable config before the no-remotes absence shortcut d9faf1df1 fix(hooks): require a quiet window before trusting transcript stability 0c9026fd3 fix(hooks): stop UserPromptSubmit blocking on the session lock 66c06c5b5 remote: classify a remoteless repo as checkpoint-ref absence, not outage

  5. v0.9.1-nightly.202608010655.907078158v0.9.1-nightly.202608010655.907078158Aug 1, 2026pre-release24 downloads

    ## Nightly Build (v0.9.1-nightly.202608010655.907078158) Changes since v0.9.1-nightly.202607310705.279b98859: 2e2ea1001 fix(checkpoint): keep the 'no fetch URL found' message when no remote is configured b70c55f1a fix(checkpoint): only classify probe failure as absence when no remote is configured 8233515b9 fix(checkpoint): fall back to v1-branch store when no checkpoint remote is configured 4a1958a93 test: cover Windows JSON hook exit propagation f6cc141f8 fix: scope Windows hook shell handling f9f5c3ba3 fix: avoid nested cmd for Windows hooks 6354f013e fix: preserve Windows hook escaping across nested cmd 5c216c485 test: suppress Windows batch command echo a1bfe9a0c ci: run Windows unit tests on every PR 4fdb8aac6 fix(checkpoint): harden the write-probe fetcher per re-review 96013abcb fix(checkpoint): short-circuit cancelled contexts in backfillTranscript b33b3c2de feat(checkpoint): wire the backfill ref fetcher into write paths 2b4b7362c fix(checkpoint): harden refs backfill probe per review; rescope to store layer f30a34c70 fix(checkpoint): fetch a locally-missing ref before declaring a backfill target absent d48448696 test(explain): end-to-end regression test for the motivat

Commits per week

last 52 weeks
3370Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 1 commitsWeek of 2026-01-04: 56 commitsWeek of 2026-01-11: 52 commitsWeek of 2026-01-18: 158 commitsWeek of 2026-01-25: 107 commitsWeek of 2026-02-01: 174 commitsWeek of 2026-02-08: 207 commitsWeek of 2026-02-15: 200 commitsWeek of 2026-02-22: 337 commitsWeek of 2026-03-01: 231 commitsWeek of 2026-03-08: 75 commitsWeek of 2026-03-15: 165 commitsWeek of 2026-03-22: 171 commitsWeek of 2026-03-29: 201 commitsWeek of 2026-04-05: 214 commitsWeek of 2026-04-12: 248 commitsWeek of 2026-04-19: 258 commitsWeek of 2026-04-26: 133 commitsWeek of 2026-05-03: 174 commitsWeek of 2026-05-10: 134 commitsWeek of 2026-05-17: 113 commitsWeek of 2026-05-24: 145 commitsWeek of 2026-05-31: 295 commitsWeek of 2026-06-07: 113 commitsWeek of 2026-06-14: 207 commitsWeek of 2026-06-21: 293 commitsWeek of 2026-06-28: 289 commitsWeek of 2026-07-05: 216 commitsWeek of 2026-07-12: 180 commitsWeek of 2026-07-19: 97 commitsWeek of 2026-07-26: 37 commitsWeek of 2026-08-02: 15 commitsAug 9, 2025Aug 2, 2026
5.3K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 1 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 1 commitsSun 8:00 — 8 commitsSun 9:00 — 4 commitsSun 10:00 — 8 commitsSun 11:00 — 6 commitsSun 12:00 — 5 commitsSun 13:00 — 6 commitsSun 14:00 — 10 commitsSun 15:00 — 9 commitsSun 16:00 — 9 commitsSun 17:00 — 12 commitsSun 18:00 — 16 commitsSun 19:00 — 8 commitsSun 20:00 — 5 commitsSun 21:00 — 13 commitsSun 22:00 — 10 commitsSun 23:00 — 3 commitsMon 0:00 — 0 commitsMon 1:00 — 1 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 4 commitsMon 7:00 — 3 commitsMon 8:00 — 21 commitsMon 9:00 — 11 commitsMon 10:00 — 36 commitsMon 11:00 — 63 commitsMon 12:00 — 79 commitsMon 13:00 — 58 commitsMon 14:00 — 77 commitsMon 15:00 — 83 commitsMon 16:00 — 107 commitsMon 17:00 — 109 commitsMon 18:00 — 54 commitsMon 19:00 — 38 commitsMon 20:00 — 34 commitsMon 21:00 — 34 commitsMon 22:00 — 22 commitsMon 23:00 — 8 commitsTue 0:00 — 5 commitsTue 1:00 — 3 commitsTue 2:00 — 3 commitsTue 3:00 — 2 commitsTue 4:00 — 1 commitsTue 5:00 — 1 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 6 commitsTue 9:00 — 35 commitsTue 10:00 — 51 commitsTue 11:00 — 68 commitsTue 12:00 — 93 commitsTue 13:00 — 122 commitsTue 14:00 — 126 commitsTue 15:00 — 122 commitsTue 16:00 — 102 commitsTue 17:00 — 93 commitsTue 18:00 — 40 commitsTue 19:00 — 46 commitsTue 20:00 — 37 commitsTue 21:00 — 39 commitsTue 22:00 — 15 commitsTue 23:00 — 6 commitsWed 0:00 — 2 commitsWed 1:00 — 1 commitsWed 2:00 — 1 commitsWed 3:00 — 3 commitsWed 4:00 — 3 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 1 commitsWed 8:00 — 7 commitsWed 9:00 — 36 commitsWed 10:00 — 81 commitsWed 11:00 — 86 commitsWed 12:00 — 81 commitsWed 13:00 — 91 commitsWed 14:00 — 104 commitsWed 15:00 — 134 commitsWed 16:00 — 125 commitsWed 17:00 — 96 commitsWed 18:00 — 89 commitsWed 19:00 — 31 commitsWed 20:00 — 29 commitsWed 21:00 — 35 commitsWed 22:00 — 32 commitsWed 23:00 — 10 commitsThu 0:00 — 10 commitsThu 1:00 — 0 commitsThu 2:00 — 1 commitsThu 3:00 — 1 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 1 commitsThu 7:00 — 0 commitsThu 8:00 — 3 commitsThu 9:00 — 40 commitsThu 10:00 — 47 commitsThu 11:00 — 87 commitsThu 12:00 — 96 commitsThu 13:00 — 111 commitsThu 14:00 — 151 commitsThu 15:00 — 116 commitsThu 16:00 — 118 commitsThu 17:00 — 97 commitsThu 18:00 — 92 commitsThu 19:00 — 24 commitsThu 20:00 — 28 commitsThu 21:00 — 24 commitsThu 22:00 — 17 commitsThu 23:00 — 10 commitsFri 0:00 — 2 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 3 commitsFri 6:00 — 1 commitsFri 7:00 — 2 commitsFri 8:00 — 11 commitsFri 9:00 — 30 commitsFri 10:00 — 58 commitsFri 11:00 — 125 commitsFri 12:00 — 89 commitsFri 13:00 — 88 commitsFri 14:00 — 103 commitsFri 15:00 — 122 commitsFri 16:00 — 112 commitsFri 17:00 — 76 commitsFri 18:00 — 41 commitsFri 19:00 — 26 commitsFri 20:00 — 12 commitsFri 21:00 — 22 commitsFri 22:00 — 22 commitsFri 23:00 — 21 commitsSat 0:00 — 1 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 4 commitsSat 6:00 — 2 commitsSat 7:00 — 2 commitsSat 8:00 — 2 commitsSat 9:00 — 11 commitsSat 10:00 — 12 commitsSat 11:00 — 14 commitsSat 12:00 — 10 commitsSat 13:00 — 10 commitsSat 14:00 — 19 commitsSat 15:00 — 5 commitsSat 16:00 — 14 commitsSat 17:00 — 9 commitsSat 18:00 — 9 commitsSat 19:00 — 11 commitsSat 20:00 — 10 commitsSat 21:00 — 12 commitsSat 22:00 — 22 commitsSat 23:00 — 12 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Feb 11, 2026daily#7+285
  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    268.6K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript