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.
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, pull requests, discussions)
- Official Entire Slack channels
- Community events and public representation (e.g., conferences, meetups)
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.25.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, Cursor, Aider, 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.
- Push your branch to your fork
- Open a PR against the
mainbranch - Fill out the PR template with:
- Clear description of changes
- Related issue numbers
- Testing done
- Wait for review - maintainers will provide feedback
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
- Code of Conduct - Community guidelines
- Security Policy - Reporting security vulnerabilities
Thank you for contributing!