Thank you for your interest in contributing to Craft Agents! This document provides guidelines and instructions for contributing.
- Bun runtime
- Node.js 18+ (for some tooling)
- macOS, Linux, or Windows
-
Clone the repository:
git clone https://github.com/lukilabs/craft-agents-oss.git cd craft-agents-oss -
Install dependencies:
bun install
-
Set up environment variables:
cp .env.example .env # Edit .env with your credentials -
Run in development mode:
bun run electron:dev
Use descriptive branch names:
feature/add-new-tool- New featuresfix/resolve-auth-issue- Bug fixesrefactor/simplify-agent-loop- Code refactoringdocs/update-readme- Documentation updates
- Create a feature branch from
main - Make your changes
- Run type checking:
bun run typecheck:all - Commit your changes with clear, descriptive messages
- Push to your fork and create a pull request
- We use TypeScript throughout the codebase
- Follow existing patterns in the codebase
- Use meaningful variable and function names
- Add comments for complex logic
Before submitting a PR, ensure all type checks pass:
bun run typecheck:all- Title: Use a clear, descriptive title
- Description: Explain what the PR does and why
- Testing: Describe how you tested the changes
- Screenshots: Include screenshots for UI changes
## Summary
Brief description of changes
## Changes
- Change 1
- Change 2
## Testing
How you tested these changes
## Screenshots (if applicable)craft-agents/
├── apps/
│ ├── electron/ # Desktop GUI (primary interface)
│ └── tui/ # Terminal CLI (deprecated)
└── packages/
├── core/ # @craft-agent/core - Shared types
├── shared/ # @craft-agent/shared - Business logic
└── ui/ # @craft-agent/ui - React components
- Agent Logic:
packages/shared/src/agent/ - Authentication:
packages/shared/src/auth/ - MCP Integration:
packages/shared/src/mcp/ - UI Components:
packages/ui/src/ - Electron App:
apps/electron/
- Open an issue for bugs or feature requests
- Start a discussion for questions or ideas
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.