stanfordnlp/dspy
Read the upstream summary on the left, browse the cached forks below it, and load each fork comparison into the right-hand panel.
stanfordnlp/dspy
DSPy is an actively maintained Python framework for programming language models with compositional code instead of hand-written prompts. It is popular and widely forked, with a large docs site and recent commits as of 2026-03-30.
Jump straight into Discofork's strongest cached fork picks, or open a compare view in one click.
Choose a fork to inspect
Prefer this fork if you specifically want a CLI-centered DSPy variant for agent workflows and are comfortable carrying upstream merge debt. Prefer upstream if you want the broadest feature set, current fixes, and lower maintenance risk.
Prefer this fork only if you explicitly want the older demo-heavy codebase and are comfortable freezing on an aging branch. If you want an actively maintained DSPy framework, upstream is the better fit.
Choose this fork only if you need the older DSP/DSPy-era code and its notebook-heavy experimental workflow. For new work, upstream is the better default because this fork is materially behind and appears maintenance-stale.
Prefer upstream unless you specifically need the fork’s older-runtime support or one of its local integration/caching changes. For most adopters, this fork is too stale and too far from current DSPy to be the safer default.
Prefer this fork only if its notebooks or inspect app match your workflow and you are willing to own the maintenance burden. For most adopters, upstream is the better choice because this fork is materially older and likely missing newer framework improvements.
Prefer upstream unless you specifically need this fork's inspect-app and notebook-heavy experimentation stack. This fork looks like a useful research/demo branch, but its age and scale of divergence make it a poor default choice for production or long-lived adoption.
Prefer this fork only if you specifically need its older local-model and notebook-heavy workflow. For most adopters, upstream is the better default because this fork is stale and significantly diverged.
Choose this fork if you specifically want the custom GEPA-oriented and internal refactor work it adds, and you can absorb missing upstream material. Choose upstream if you want the fuller tutorial set, broader regression coverage, and lower upgrade friction.
Choose this fork if MCP integration is the goal. Avoid it if you need the latest upstream DSPy behavior, broad ecosystem support, or low-risk maintenance.