Thank you for your interest in contributing to Entire! We welcome contributions from everyone.
Please read our Code of Conduct before participating.
New to Entire? See the README for setup and usage documentation.
The fastest way to get a contribution merged is to align with maintainers before writing code. Please open an issue first using our issue templates and wait for maintainer feedback before starting implementation.
- Open an issue describing the problem or feature
- Wait for maintainer feedback -- we may have relevant context or plans
- Get approval before starting implementation
- Submit your PR referencing the approved issue
- Address all feedback including automated Copilot comments
- Maintainer review and merge
New to the project? Welcome! Here's how to get started:
We recommend starting with:
- Documentation improvements - Fix typos, clarify explanations, add examples
- Test contributions - Add test cases, improve coverage
- Small bug fixes - Issues labeled
good-first-issue
All feature requests, bug reports, and general issues should be submitted through GitHub Issues. Please search for existing issues before opening a new one.
For security-related issues, see the Security section below.
If you discover a security vulnerability, do not report it through GitHub Issues. Instead, please follow the instructions in our SECURITY.md file for responsible disclosure. All security reports are kept confidential as described in SECURITY.md.
Contributions and communications are expected to occur through:
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - Questions and general conversation
- Discord - Real-time chat and support
Please represent the project and community respectfully in all public and private interactions.
There are many ways to contribute:
- Feature requests - Open a GitHub Issue to discuss your idea
- Bug reports - Report issues via GitHub Issues (see Reporting Bugs)
- Code contributions - Fix bugs, add features, improve tests
- Documentation - Improve guides, fix typos, add examples
- Community - Help others, answer questions, share knowledge
Good bug reports help us fix issues quickly. When reporting a bug, please include:
- Entire CLI version - run
entire version - Operating system
- Go version - run
go version
Please answer these questions in your bug report:
- What did you do? - Include the exact commands you ran
- What did you expect to happen?
- What actually happened? - Include the full error message or unexpected output
- Can you reproduce it? - Does it happen every time or intermittently?
- Any additional context? - Logs, screenshots, or related issues
- Go 1.26.x - Check with
go version - mise - Task runner and version manager. Install with
curl https://mise.run | sh
# Clone the repository
git clone https://github.com/entireio/cli.git
cd cli
# Trust the mise configuration (required on first setup)
mise trust
# Install dependencies (mise will install the correct Go version)
mise install
# Download Go modules
go mod download
# Build the CLI
mise run build
# Verify setup by running tests
mise run testSee CLAUDE.md for detailed architecture and development reference.
-
Create a branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes - follow the Code Style guidelines
-
Test your changes - see Testing
-
Commit with clear, descriptive messages:
git commit -m "Add feature: description of what you added"
Follow standard Go idioms and conventions. For detailed guidance, see the Go Code Style section in CLAUDE.md.
- Error handling: Handle all errors explicitly - don't leave them unchecked
- Formatting: Code must pass
gofmt(runmise run fmt) - Linting: Code must pass
golangci-lint(runmise run lint) - Naming: Use meaningful, descriptive names following Go conventions
See CLAUDE.md for complete testing documentation.
# Unit tests - always run before committing
mise run test
# Integration tests
mise run test:integration
# Full CI suite
mise run test:ciIntegration tests use the //go:build integration build tag and are located in cmd/entire/cli/integration_test/.
Entire supports two ways to create agents:
These are markdown files that define specialized behaviors for Claude Code (e.g., developer, reviewer, etc.).
- Location:
.claude/agents/ - Structure:
--- name: my-agent description: What this agent does model: opus color: blue --- # Agent Name You are a **[Role]** with expertise in [domain]. ## Core Principles - Principle 1 - Principle 2 ## Process 1. Step 1 2. Step 2 ## Output Format How to structure responses...
- To invoke: Create a matching command in
.claude/commands/that spawns the agent via the Task tool. - Examples:
.claude/agents/dev.md- TDD Developer.claude/agents/reviewer.md- Code Reviewer
These are Go implementations that integrate Entire with different AI coding tools (Claude Code, Gemini CLI, OpenCode, Cursor, Factory AI Droid, Copilot CLI, etc.) using the Agent abstraction layer.
- Location:
cmd/entire/cli/agent/ - Steps:
- Implement the
Agentinterface inagent/agent.go - Register your agent in the agent registry
- Add setup and hook configuration as needed
- Ensure session and checkpoint tracking is handled per the abstraction
- Implement the
- Reference: See CLAUDE.md for architecture and code examples.
Which should I use?
- Use a persona markdown agent if you want to create a new role or workflow for Claude Code.
- Use a coding agent integration if you want to add support for a new AI coding tool or extend agent capabilities in the CLI.
- Related issue exists and is approved -- Your PR references an issue where a maintainer has acknowledged the approach. (Exceptions: documentation fixes, typo corrections, and
good-first-issueitems.) - Linting passes -- Run
mise run lint(includes golangci-lint, gofmt, gomod, shellcheck) - Tests pass -- Run
mise run testto verify your changes - Tests included -- New Go code and functionality should have accompanying tests
- Entire checkpoint trailers included -- See Using Entire While Contributing below
PRs that skip these steps are likely to be closed without merge.
- Push your branch to your fork
- Open a PR against the
mainbranch - Describe your changes -- Link the related issue, summarize what changed and what testing you did
- Address Copilot feedback -- See Responding to Automated Review
- Wait for maintainer review
Co-pilot agent reviews every PR and provides feedback on code quality, potential bugs, and project conventions.
Read and respond to every Copilot comment. PRs with unaddressed Copilot feedback will not move to maintainer review.
- Fixed -- Push a commit addressing the issue.
- Disagree -- Reply explaining your reasoning. The Copilot isn't always right.
- Question -- Ask for clarification. We're happy to help.
Addressing Copilot feedback upfront is the fastest path to maintainer review.
We use Entire on Entire. When contributing, install the Entire CLI and let it capture your coding sessions -- this gives us valuable dogfooding data and helps improve the tool.
Install the latest version of the Entire CLI (see installation docs) and verify with entire version. Entire is already configured in this repository, so there's no need to run entire enable.
All commits should include Entire-Checkpoint trailers from your sessions. These are added automatically by the prepare-commit-msg hook when Entire is enabled. The trailers link your commits to session metadata on the entire/checkpoints/v1 branch.
When you push your PR branch, Entire can automatically push the entire/checkpoints/v1 branch alongside it (if push_sessions is enabled in your settings). Include this in your PR so maintainers can review the session context behind your changes.
go mod download fails with timeout
# Try using direct mode
GOPROXY=direct go mod downloadmise install fails
# Ensure mise is properly installed
curl https://mise.run | sh
# Reload your shell
source ~/.zshrc # or ~/.bashrcBinary not updating after rebuild
# Check which binary is being used
which entire
type -a entire
# You may have multiple installations - update the correct pathJoin the Entire community:
- Discord - Join our server for discussions and support
- GitHub Discussions - Join the conversation
- README - Setup and usage documentation
- CLAUDE.md - Architecture and development reference (Claude Code)
- AGENTS.md - Architecture and development reference (Gemini CLI, OpenCode, Cursor, Factory AI Droid, Copilot CLI)
- Code of Conduct - Community guidelines
- Security Policy - Reporting security vulnerabilities
Thank you for contributing!