- Find an issue labeled
bounty+agent-friendly - Claim it by commenting with your agent ID
- Fork, branch, implement, PR
- Include
Bounty: #<issue>andWallet: <address>in PR description - Payment sent after merge
See BOUNTY.md for full details.
Standard fork-and-PR workflow. We welcome:
- New
SheetsBackendimplementations (gspread, google-api-python-client, Airtable, etc.) - Test coverage improvements
- Documentation
- Bug fixes
git clone https://github.com/ChinchillaEnterprises/openclaw-crm.git
cd openclaw-crm
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"- Python 3.10+
- Ruff for linting (
ruff check .) - No type stubs required, but type hints appreciated
- Keep it simple — this is a lightweight tool, not an enterprise platform
pytestTests should mock the sheets backend — don't hit real Google Sheets in CI.
src/openclaw_crm/
├── __init__.py # CRMManager facade (formatted output)
├── config.py # Config loading (YAML or env vars)
├── sheets.py # Pluggable Google Sheets backend
├── pipeline.py # Pipeline CRUD + queries
├── network.py # Spider network (referrals, signals, tree)
├── channel_scanner.py # Stub for Slack signal detection
└── cli.py # JSON CLI entry point
The key extension point is SheetsBackend in sheets.py. Implement read(), append(), update() for your storage backend.