Thanks for your interest in contributing to AbstractVoice.
- User entry points:
README.md→docs/getting-started.md - Integrator contract:
docs/api.md - Implementation map:
docs/architecture.md - Internal dev notes:
docs/development.md - AbstractFramework ecosystem notes:
README.md(AbstractCore / AbstractRuntime integration pointers) - Security reports:
SECURITY.md
- Python
>=3.10(recommended: latest 3.12.x) - Git
git clone https://github.com/lpalbou/abstractvoice.git
cd abstractvoice
python -m venv .venv
source .venv/bin/activate # Windows: .venv\\Scripts\\activate
python -m pip install -U pip
python -m pip install -e ".[dev]"Fast suite:
python -m pytest -qHeavy/optional integration tests (skipped by default):
- Cloning (OpenF5): set
ABSTRACTVOICE_RUN_CLONING_TESTS=1(also needspip install "abstractvoice[cloning]") - Chroma: set
ABSTRACTVOICE_RUN_CHROMA_TESTS=1(also needspip install "abstractvoice[chroma]")
python -m black abstractvoice tests
python -m flake8 abstractvoice tests- Keep the external user flow consistent:
README.md→docs/getting-started.md. - If you change supported integrator behavior, update
docs/api.md(source-of-truth methods live inabstractvoice/vm/*). - If you change interaction semantics (voice modes / stop phrase / offline-first), update
docs/architecture.mdand add or update an ADR indocs/adr/when it’s a design decision.
- Keep PRs focused and explain the user impact.
- Add tests for new behavior when feasible.
- Update
CHANGELOG.mdfor user-visible changes.
Do not open a public issue for suspected vulnerabilities. Follow SECURITY.md.