{"id":44254314,"url":"https://github.com/entireio/cli","last_synced_at":"2026-06-07T09:04:37.696Z","repository":{"id":337639340,"uuid":"1126841840","full_name":"entireio/cli","owner":"entireio","description":"📜 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.","archived":false,"fork":false,"pushed_at":"2026-05-01T18:25:40.000Z","size":170956,"stargazers_count":4138,"open_issues_count":121,"forks_count":318,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-05-01T19:24:15.354Z","etag":null,"topics":["agents","ai","claude","developer","developer-platform","gemini"],"latest_commit_sha":null,"homepage":"https://entire.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/entireio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-02T17:13:58.000Z","updated_at":"2026-05-01T17:50:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"b39940b2-e366-4786-8cc5-4790922b228d","html_url":"https://github.com/entireio/cli","commit_stats":null,"previous_names":["entireio/cli"],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/entireio/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entireio%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entireio%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entireio%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entireio%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/entireio","download_url":"https://codeload.github.com/entireio/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/entireio%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32686247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","claude","developer","developer-platform","gemini"],"created_at":"2026-02-10T16:17:53.159Z","updated_at":"2026-05-06T09:01:59.724Z","avatar_url":"https://github.com/entireio.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Entire CLI\n\nEntire 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.\n\nWith Entire, you can:\n\n- **Understand why code changed** — see the full prompt/response transcript and files touched\n- **Recover instantly** — rewind to a known-good checkpoint when an agent goes sideways and resume seamlessly\n- **Keep Git history clean** — preserve agent context on a separate branch\n- **Onboard faster** — show the path from prompt → change → commit\n- **Maintain traceability** — support audit and compliance requirements when needed\n\n## Why Entire\n\n- **Understand why code changed, not just what** — Transcripts, prompts, files touched, token usage, tool calls, and more are captured alongside every commit.\n- **Rewind and resume from any checkpoint** — Go back to any previous agent session and pick up exactly where you or a coworker left off.\n- **Full context preserved and searchable** — A versioned record of every AI interaction tied to your git history, with nothing lost.\n- **Zero context switching** — Git-native, two-step setup, works with Claude Code, Codex, Gemini, and more.\n\n## Table of Contents\n\n- [Why Entire](#why-entire)\n- [Quick Start](#quick-start)\n- [Typical Workflow](#typical-workflow)\n- [Key Concepts](#key-concepts)\n  - [How It Works](#how-it-works)\n  - [Strategy](#strategy)\n- [Local Device Auth Testing](#local-device-auth-testing)\n- [Commands Reference](#commands-reference)\n- [Configuration](#configuration)\n- [Security \u0026 Privacy](#security--privacy)\n- [Troubleshooting](#troubleshooting)\n- [Development](#development)\n- [Getting Help](#getting-help)\n- [License](#license)\n\n## Requirements\n\n- Git\n- macOS, Linux or Windows\n- [Supported agent](#agent-hook-configuration) installed and authenticated\n\n## Quick Start\n\n```bash\n# Install stable via Homebrew\nbrew tap entireio/tap\nbrew install --cask entire\n\n# Or install nightly via Homebrew\nbrew tap entireio/tap\nbrew install --cask entire@nightly\n\n# Or install stable via install.sh\ncurl -fsSL https://entire.io/install.sh | bash\n\n# Or install nightly via install.sh\ncurl -fsSL https://entire.io/install.sh | bash -s -- --channel nightly\n\n# Or install stable via Scoop (Windows)\nscoop bucket add entire https://github.com/entireio/scoop-bucket.git\nscoop install entire/cli\n\n# Or install via Go (development/manual setup)\ngo install github.com/entireio/cli/cmd/entire@latest\n\n# Linux: Add Go binaries to PATH (add to ~/.zshrc or ~/.bashrc if not already configured)\nexport PATH=\"$HOME/go/bin:$PATH\"\n\n# Enable in your project\ncd your-project \u0026\u0026 entire enable\n\n# Check status\nentire status\n```\n\nAfter 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.\n\n## Release Channels\n\nEntire currently ships two release channels:\n\n- `stable`: recommended for most users. Stable releases change less often and are the default for Homebrew, Scoop, and `install.sh`.\n- `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.\n\nHow to use each channel:\n\n- Homebrew stable: `brew install --cask entire`\n- Homebrew nightly: `brew install --cask entire@nightly`\n- `install.sh` stable: `curl -fsSL https://entire.io/install.sh | bash`\n- `install.sh` nightly: `curl -fsSL https://entire.io/install.sh | bash -s -- --channel nightly`\n- Scoop: currently supports `stable` only via `scoop install entire/cli`\n\n## Typical Workflow\n\n### 1. Enable Entire in Your Repository\n\n```\nentire enable\n```\n\nOn 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 \u003cname\u003e` (for example, `entire enable --agent cursor`).\n\nAfter setup:\n\n- Use `entire enable` to turn Entire back on if the repo is currently disabled.\n- Use `entire agent` to add or remove agents.\n- Use `entire configure` to update non-agent settings (telemetry, hooks, checkpoint remote, summary provider).\n\nThe 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.\n\n### 2. Work with Your AI Agent\n\nJust use one of your AI agents as before. Entire runs in the background, tracking your session:\n\n```\nentire status  # Check current session status anytime\n```\n\n### 3. Rewind to a Previous Checkpoint\n\nIf you want to undo some changes and go back to an earlier checkpoint:\n\n```\nentire checkpoint rewind\n```\n\nThis shows all available checkpoints in the current session. Select one to restore your code to that exact state.\n\n### 4. Resume a Previous Session\n\nTo restore the latest checkpointed session metadata for a branch:\n\n```\nentire session resume \u003cbranch\u003e\n```\n\nEntire checks out the branch, restores the latest checkpointed session metadata (one or more sessions), and prints command(s) to continue.\n\n### 5. Disable Entire (Optional)\n\n```\nentire disable\n```\n\nRemoves the git hooks. Your code and commit history remain untouched.\n\n## Key Concepts\n\n### Sessions\n\nA **session** represents a complete interaction with your AI agent, from start to finish. Each session captures all prompts, responses, files modified, and timestamps.\n\n**Session ID format:** `YYYY-MM-DD-\u003cUUID\u003e` (e.g., `2026-01-08-abc123de-f456-7890-abcd-ef1234567890`)\n\nSessions are stored separately from your code commits on the `entire/checkpoints/v1` branch.\n\n### Checkpoints\n\nA **checkpoint** is a snapshot within a session that you can rewind to—a \"save point\" in your work.\n\nCheckpoints are created when you or the agent make a git commit. **Checkpoint IDs** are 12-character hex strings (e.g., `a3b2c4d5e6f7`).\n\n### How It Works\n\n```\nYour Branch                    entire/checkpoints/v1\n     │                                  │\n     ▼                                  │\n[Base Commit]                           │\n     │                                  │\n     │  ┌─── Agent works ───┐           │\n     │  │  Step 1           │           │\n     │  │  Step 2           │           │\n     │  │  Step 3           │           │\n     │  └───────────────────┘           │\n     │                                  │\n     ▼                                  ▼\n[Your Commit] ─────────────────► [Session Metadata]\n     │                           (transcript, prompts,\n     │                            files touched)\n     ▼\n```\n\nCheckpoints are saved as you work. When you commit, session metadata is permanently stored on the `entire/checkpoints/v1` branch and linked to your commit.\n\n### Strategy\n\nEntire uses a manual-commit strategy that keeps your git history clean:\n\n- **No commits on your branch** — Entire never creates commits on the active branch\n- **Safe on any branch** — works on main, master, and feature branches alike\n- **Non-destructive rewind** — restore files from any checkpoint without altering commit history\n- **Metadata stored separately** — all session data lives on the `entire/checkpoints/v1` branch\n\n### Git Worktrees\n\nEntire works seamlessly with [git worktrees](https://git-scm.com/docs/git-worktree). Each worktree has independent session tracking, so you can run multiple AI sessions in different worktrees without conflicts.\n\n### Concurrent Sessions\n\nMultiple 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.\n\n## Local Device Auth Testing\n\nIf you're working on the CLI device auth flow against a local `entire.io` checkout:\n\n```bash\n# In your app repo\ncd ../entire.io-1\nmise run dev\n\n# In this repo, point the CLI at the local API\ncd ../cli\nexport ENTIRE_API_BASE_URL=http://localhost:8787\n\n# Run the smoke test\n./scripts/local-device-auth-smoke.sh\n```\n\nUseful commands while developing:\n\n```bash\n# Run the login flow against a local server (prompts to press Enter before opening the browser)\ngo run ./cmd/entire login --insecure-http-auth\n\n# Run the focused integration coverage for login\ngo test -tags=integration ./cmd/entire/cli/integration_test -run TestLogin\n```\n\n## Commands Reference\n\n| Command          | Description                                                                                       |\n| ---------------- | ------------------------------------------------------------------------------------------------- |\n| `entire clean`   | Clean up session data and orphaned Entire data (use `--all` for repo-wide cleanup)                |\n| `entire agent`   | Add, remove, or list agent integrations for the current repository                                |\n| `entire configure` | Update non-agent settings (telemetry, git hook, strategy options, summary provider)            |\n| `entire disable` | Remove Entire hooks from repository                                                               |\n| `entire doctor`  | Fix or clean up stuck sessions                                                                    |\n| `entire enable`  | Enable Entire in your repository                                                                  |\n| `entire checkpoint`        | List, explain, rewind, and search checkpoints                                           |\n| `entire checkpoint explain` | Explain a session, commit, or checkpoint                                               |\n| `entire checkpoint rewind` | Rewind to a previous checkpoint                                                         |\n| `entire login`   | Authenticate the CLI with Entire device auth                                                      |\n| `entire session` | View and manage agent sessions tracked by Entire                                                  |\n| `entire session resume`    | Switch to a branch, restore latest checkpointed session metadata, and show command(s) |\n| `entire session attach`    | Attach to a previously detached session                                                |\n| `entire status`  | Show current session info                                                                         |\n| `entire doctor trace` | Show hook performance traces                                                                 |\n| `entire version` | Show Entire CLI version                                                                           |\n\n### `entire enable` Flags\n\n| Flag                                        | Description                                                                                                       |\n| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |\n| `--agent \u003cname\u003e`                            | AI agent to install hooks for: `claude-code`, `codex`, `gemini`, `opencode`, `cursor`, `factoryai-droid`, or `copilot-cli` |\n| `--force`, `-f`                             | Force reinstall hooks (removes existing Entire hooks first)                                                       |\n| `--local`                                   | Write settings to `settings.local.json` instead of `settings.json`                                                |\n| `--project`                                 | Write settings to `settings.json` even if it already exists                                                       |\n| `--skip-push-sessions`                      | Disable automatic pushing of session logs on git push                                                             |\n| `--checkpoint-remote \u003cprovider:owner/repo\u003e` | Push checkpoint branches to a separate repo (e.g., `github:org/checkpoints-repo`)                                 |\n| `--telemetry=false`                         | Disable anonymous usage analytics                                                                                 |\n\n**Examples:**\n\n```\n# First-time setup with a specific agent\nentire enable --agent claude-code\n\n# Re-enable a disabled repo\nentire enable\n\n# Re-enable and refresh hooks\nentire enable --force\n\n# Save settings locally (not committed to git)\nentire enable --local\n```\n\n`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.\n\n### `entire configure`\n\nUse `entire configure` to update non-agent settings on a repo that's already set up. Agent installation lives under `entire agent`.\n\nTypical uses:\n\n- Toggle telemetry\n- Reinstall the Entire git hook (`--force`, `--absolute-git-hook-path`)\n- Update strategy options such as `--checkpoint-remote` or `--skip-push-sessions`\n- Pick a summary provider for `entire explain --generate`\n\n**Examples:**\n\n```bash\n# Show help and the hint pointing to 'entire agent'\nentire configure\n\n# Opt out of telemetry\nentire configure --telemetry=false\n\n# Reinstall the Entire git hook with an absolute binary path\nentire configure --absolute-git-hook-path\n\n# Update strategy options on an existing repo\nentire configure --checkpoint-remote github:myorg/checkpoints-private\n\n# Add or remove an agent\nentire agent add claude-code\nentire agent remove claude-code\n```\n\n## Configuration\n\nEntire uses two configuration files in the `.entire/` directory:\n\n### settings.json (Project Settings)\n\nShared across the team, typically committed to git:\n\n```json\n{\n  \"enabled\": true\n}\n```\n\n### settings.local.json (Local Settings)\n\nPersonal overrides, gitignored by default:\n\n```json\n{\n  \"enabled\": false,\n  \"log_level\": \"debug\"\n}\n```\n\n### Configuration Options\n\n| Option                               | Values                                       | Description                                             |\n| ------------------------------------ | -------------------------------------------- | ------------------------------------------------------- |\n| `enabled`                            | `true`, `false`                              | Enable/disable Entire                                   |\n| `log_level`                          | `debug`, `info`, `warn`, `error`             | Logging verbosity                                       |\n| `strategy_options.push_sessions`     | `true`, `false`                              | Auto-push `entire/checkpoints/v1` branch on git push    |\n| `strategy_options.checkpoint_remote` | `{\"provider\": \"github\", \"repo\": \"org/repo\"}` | Push checkpoint branches to a separate repo (see below) |\n| `strategy_options.summarize.enabled` | `true`, `false`                              | Auto-generate AI summaries at commit time               |\n| `telemetry`                          | `true`, `false`                              | Send anonymous usage statistics to Posthog              |\n\n### Agent Hook Configuration\n\nEach 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:\n\n| Agent            | Hook Location                 | Format            |\n| ---------------- | ----------------------------- | ----------------- |\n| Claude Code      | `.claude/settings.json`       | JSON hooks config |\n| Codex            | `.codex/hooks.json`           | JSON hooks config |\n| Copilot CLI      | `.github/hooks/entire.json`   | JSON hooks config |\n| Cursor           | `.cursor/hooks.json`          | JSON hooks config |\n| Factory AI Droid | `.factory/settings.json`      | JSON hooks config |\n| Gemini CLI       | `.gemini/settings.json`       | JSON hooks config |\n| OpenCode         | `.opencode/plugins/entire.ts` | TypeScript plugin |\n\nYou 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`.\n\n### Checkpoint Remote\n\nBy 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:\n\n```json\n{\n  \"strategy_options\": {\n    \"checkpoint_remote\": {\n      \"provider\": \"github\",\n      \"repo\": \"myorg/checkpoints-private\"\n    }\n  }\n}\n```\n\nOr via the CLI:\n\n```bash\nentire enable --checkpoint-remote github:myorg/checkpoints-private\n```\n\nEntire derives the git URL automatically using the same protocol (SSH or HTTPS) as your push remote. It will:\n\n- Fetch the checkpoint branch locally if it exists on the remote but not locally (one-time)\n- Push `entire/checkpoints/v1` to the checkpoint repo instead of your default push remote\n- Skip pushing if a fork is detected (push remote owner differs from checkpoint repo owner)\n- If the remote is unreachable, warn and continue without blocking your main push\n\n#### `ENTIRE_CHECKPOINT_TOKEN`\n\n`ENTIRE_CHECKPOINT_TOKEN` allows you to provide a dedicated token for checkpoint repository operations, without modifying the credentials used for your primary repository.\n\nWhen this environment variable is set, Entire behaves as follows:\n\n- Injects the token into HTTPS Git operations used for checkpoint fetch and push\n- If `checkpoint_remote` is configured:\n  - Prefers an HTTPS URL for the checkpoint remote when a token is present, even if the repository’s `origin` uses SSH\n- If `checkpoint_remote` is not configured:\n  - Falls back to using the default `origin` remote\n- If `checkpoint_remote` configuration cannot be loaded:\n  - Falls back to `origin`\n  - If `origin` is a valid SSH or HTTPS Git remote, Entire converts it to an HTTPS URL to enable token-based authentication\n\n### Auto-Summarization\n\nWhen enabled, Entire automatically generates AI summaries for checkpoints at commit time. Summaries capture intent, outcome, learnings, friction points, and open items from the session.\n\n```json\n{\n  \"strategy_options\": {\n    \"summarize\": {\n      \"enabled\": true\n    }\n  }\n}\n```\n\n**Requirements:**\n\n- Claude CLI must be installed and authenticated (`claude` command available in PATH)\n- Summary generation is non-blocking: failures are logged but don't prevent commits\n\n**Note:** Currently uses Claude CLI for summary generation. Other AI backends may be supported in future versions.\n\n### Settings Priority\n\nLocal settings override project settings field-by-field. When you run `entire status`, it shows both project and local (effective) settings.\n\n### Agent-Specific Steps \u0026 Limitations\n\n- When enabling Entire for Codex, the command will also create or update `.codex/config.toml` with `codex_hooks = true` to enable Codex hooks. If you configure Codex manually, make sure this flag is set in your `.codex/config.toml`. Or select Codex from the interactive agent picker when running `entire enable`.\n- 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.\n- Entire supports Copilot CLI, but not Copilot in VS Code, in other IDEs, or on github.com.\n\n## Security \u0026 Privacy\n\n**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.\n\nEntire 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](docs/security-and-privacy.md) for details.\n\n## Troubleshooting\n\n### Common Issues\n\n| Issue                    | Solution                                                |\n| ------------------------ | ------------------------------------------------------- |\n| \"Not a git repository\"   | Navigate to a Git repository first                      |\n| \"Entire is disabled\"     | Run `entire enable`                                     |\n| \"No rewind points found\" | Work with your configured agent and commit your changes |\n| \"shadow branch conflict\" | Run `entire clean --force`                              |\n\n### SSH Authentication Errors\n\nIf you see an error like this when running `entire resume`:\n\n```\nFailed 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\n```\n\nThis is a [known issue with go-git's SSH handling](https://github.com/go-git/go-git/issues/411). Fix it by adding GitHub's host keys to your known_hosts file:\n\n```\nssh-keyscan -t rsa github.com \u003e\u003e ~/.ssh/known_hosts\nssh-keyscan -t ecdsa github.com \u003e\u003e ~/.ssh/known_hosts\n```\n\n### Debug Mode\n\n```\n# Via environment variable\nENTIRE_LOG_LEVEL=debug entire status\n\n# Or via settings.local.json\n{\n  \"log_level\": \"debug\"\n}\n```\n\n### Cleaning Up State\n\n```\n# Clean session data for current commit\nentire clean --force\n\n# Clean all orphaned data across the repository\nentire clean --all --force\n\n# Disable and re-enable\nentire disable \u0026\u0026 entire enable --force\n```\n\n### Accessibility\n\nFor screen reader users, enable accessible mode:\n\n```\nexport ACCESSIBLE=1\nentire enable\n```\n\nThis uses simpler text prompts instead of interactive TUI elements.\n\n## Development\n\nThis project uses [mise](https://mise.jdx.dev/) for task automation and dependency management.\n\n### Prerequisites\n\n- [mise](https://mise.jdx.dev/) - Install with `curl https://mise.run | sh`\n\n### Getting Started\n\n```\n# Clone the repository\ngit clone \u003crepo-url\u003e\ncd cli\n\n# Install dependencies (including Go)\nmise install\n\n# Trust the mise configuration (required on first setup)\nmise trust\n\n# Build the CLI\nmise run build\n```\n\n### Dev Container\n\nThe 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.\n\nOpen the folder in a Dev Container, or start it from the `devcontainer` CLI as follows:\n\n```bash\ndevcontainer up --workspace-folder .\ndevcontainer exec --workspace-folder . bash -lc '.devcontainer/run-with-keyring.sh'\n```\n\nThe container's `postCreateCommand` runs `mise trust --yes \u0026\u0026 mise install`, so Go, `golangci-lint`, `gotestsum`, `shellcheck`, and the canary E2E helper binaries are ready after creation. Use `.devcontainer/run-with-keyring.sh \u003ccommand\u003e` for commands that touch the Linux keyring, including `mise run test:ci`.\n\nIf `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.\n\n### Common Tasks\n\n```\n# Run tests\nmise run test\n\n# Run integration tests\nmise run test:integration\n\n# Run all tests (unit + integration, CI mode)\nmise run test:ci\n\n# Lint the code\nmise run lint\n\n# Format the code\nmise run fmt\n```\n\n## Getting Help\n\n```\nentire --help              # General help\nentire \u003ccommand\u003e --help    # Command-specific help\n```\n\n- **GitHub Issues:** Report bugs or request features at https://github.com/entireio/cli/issues\n- **Contributing:** See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentireio%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fentireio%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fentireio%2Fcli/lists"}