Developer Tools
Packages for PlayByKey - see the table below for what's here.
- npm: npmjs.com/package/@playbykey/theory
- Documentation: theory-engine.docs.playbykey.com - interactive playgrounds
- Changelog: GitHub Releases
Install
npm install @playbykey/theory
pnpm add @playbykey/theory
yarn add @playbykey/theory
bun add @playbykey/theory
Quickstart and API examples: packages/theory/README.md
Why @playbykey/theory
- Foundation music theory engine: music theory as code. Modes, keys, intervals, and scale relationships resolved deterministically; one source of truth every app, notation tool, or AI agent can build on.
- Zero dependencies: no transitive baggage; safe for agents, edge runtimes, and tight bundles
- Strictly typed: every function's types exported alongside it, no
any - Agent-ready: copy-paste LLM context prompt and interactive docs
- Sharps-only notation: one canonical spelling per note (
C#, notDb) keeps theNotetype safe and unambiguous. Flats are fully supported for both input (parseNote/parseNoteTokenacceptDb,Eb,Gb,Ab,Bb) and output (getFlats/getEnharmonicLabels), without extendingNoteitself.
Packages
| Package | Description | Links |
|---|---|---|
@playbykey/theory | Zero-dependency music theory engine - scales, modes, intervals, chords, progressions, key relationships | npm · docs · changelog |
@playbykey/theory-mcp | MCP server that exposes the theory engine as AI-callable tools | npm · README |
theory-docs | Starlight documentation site (private workspace package) | live site · README |
License
MIT for the repository tooling and @playbykey/theory. See LICENSE.
Individual packages may declare their own license in their package.json.