First off, thank you for considering contributing to Sofia! It's people like you that make Sofia such a great tool.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/sofia.git - Create a branch:
git checkout -b my-feature - Make changes and commit:
git commit -m "Add my feature" - Push:
git push origin my-feature - Open a Pull Request
git clone https://github.com/grasberg/sofia.git
cd sofia
make deps && make build
make testPrerequisites: Go 1.26+
We follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Adding or updating testschore:Build process or auxiliary tool changes
Run the full test suite:
make testRun tests for a specific package:
go test ./pkg/yourpackage/...- Ensure all tests pass:
make test - Update documentation if needed
- Add tests for new features
- Keep PRs focused — one feature per PR
- Write a clear description of your changes
sofia/
├── cmd/ # Command-line interface
├── pkg/ # Core packages
│ ├── agent/ # Agent orchestration
│ ├── llm/ # LLM provider abstraction
│ ├── memory/ # Memory and knowledge graph
│ ├── skills/ # Skill system
│ ├── tools/ # Built-in tools
│ └── gateway/ # Web UI and API
├── workspace/ # Default workspace files
├── Makefile # Build and test commands
└── go.mod # Go module definition
- Bug reports — Found a bug? Open an issue!
- Feature requests — Have an idea? We'd love to hear it.
- Documentation — Help improve our docs
- Code — Fix bugs, add features, improve performance
- Skills — Create and share new skills via ClawHub
- Reviews — Review open PRs
This project adheres to the Contributor Covenant. By participating, you are expected to uphold this code.
Open a Discussion — we're happy to help!
Thank you for contributing! 🎉