Skip to content

Code Contributions

This page covers general contribution guidelines for code changes beyond skill additions.

  1. Fork the repository
  2. Create a branch (feature/thing or fix/thing)
  3. Make your changes
  4. Run tests: python3 -m pytest tests/ -v --tb=short
  5. Open a PR with a clear description of what and why
  • Small and focused — one feature or fix per PR
  • Tested — include test commands or evidence it works
  • Documented — update relevant docs if behavior changes
  • No unrelated changes — don’t refactor surrounding code in the same PR
  • Python 3.10+ target
  • Use type hints where helpful (not required everywhere)
  • No linter enforced yet — match the style of surrounding code
  • Prefer simple, readable code over clever abstractions
  • Keep functions focused — one function, one job
  • Use logging for debug/info output, print for user-facing CLI output
  • Don’t add dependencies without discussion (open an issue first)
  • Don’t change the database schema without a migration (auto-applied on startup)
  • Don’t modify API response formats — the dashboard depends on them
  • Don’t commit credentials — API keys, service accounts, personal data
  • Don’t force-push to shared branches
TypeDifficultyExample
Report a bugEasyOpen a GitHub issue with repro steps
Improve documentationEasyFix typos, add examples, clarify guides
Add UI elements for a new appEasy-MediumMap resource IDs for WhatsApp
Write an ActionMediumAdd send_message for WhatsApp
Write a WorkflowMediumChain actions into send_dm
Build a complete SkillMedium-HardFull app coverage with tests
Core framework contributionHardScheduler improvements, new Device methods

Open a GitHub issue with:

  1. What happened (actual behavior)
  2. What you expected (expected behavior)
  3. Steps to reproduce
  4. Device info (phone model, Android version, app version)
  5. Logs (relevant error output from /tmp/sched_job_*.log or server console)
  6. Screenshot (if UI-related)
AreaKey FilesComplexity
Device controlbots/common/adb.pyMedium
Skill systemskills/base.py, skills/tiktok/Medium
API serverserver.pyHigh (4500 LoC)
Databasedb.pyHigh (2000 LoC)
Dashboardstatic/dashboard.htmlHigh (400K monolith)
Schedulerserver.py (scheduler section)High
Bot scriptsbots/tiktok/*.pyMedium
LLM agentagent/agent_core.pyMedium
  • Open a GitHub Discussion for questions
  • Tag @maintainers for urgent issues
  • Check the Troubleshooting page for common issues