The monorepo for first-party Open Choice plugins and the shared tooling that supports them.
apps/ Individual plugin source trees (one Cargo workspace per plugin)
libs/ Shared crates used by multiple plugins (e.g. hb-report)
sdk/ocp-sdk/ The Open Choice Plugin SDK (ocp-types, ocp-host, oc-cli, oc-sign, …)
lang/r/ R wrapper package (`openchoice`) for calling the oc CLI
(lang/python and lang/julia will sit alongside)
scripts/ Cross-repo build helpers (e.g. build-all-plugins.ps1)
scripts/local/ Per-machine helpers, gitignored — never committed
Each plugin under apps/ is its own independent Cargo tree (frequently with its own inner workspace of sub-crates). Sibling plugins reference each other by relative path; shared code goes in libs/ or sdk/.
# build every plugin and emit .ocplugin bundles into each plugin's dist/
.\scripts\build-all-plugins.ps1Per-plugin build instructions live in the plugin's own README and scripts/package-*.ps1.
Release flow for a plugin is documented in open-choice/registry — RELEASING.md. The short version: bump version → build → create GitHub Release → run publish-to-registry.ps1 from the plugin directory.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Copyright (c) 2026 The Open Choice Authors.