Monorepo for opendetail, a thin integration layer on top of the OpenAI Responses API for grounded product and documentation answers.
The private hosted dashboard and API live in the sibling cloud monorepo (separate git repository).
packages/opendetail: core runtime, indexing, errors, and setup CLIpackages/opendetail-client: framework-agnostic NDJSON transport clientpackages/opendetail-react: hook, components, blocks, and stylespackages/opendetail-next: Next.js route and link integrationpackages/opendetail-fumadocs: Fumadocs source validation helpers and wrappersapps/web: the public Next.js app for marketing, docs, and hosted registry JSONregistry/: thin packaging layer for shadcn-compatible generated assetsregistry.json: root registry entrypoint for shadcn CLI builds- Turborepo remains at the root for
build,dev,check-types, andtest - Ultracite owns formatting and linting
opendetail does not replace the OpenAI Responses API. It packages the parts teams usually still need to build themselves:
- doc indexing from existing Markdown and MDX
- local retrieval and grounding
- setup scaffolding for app integration
- a stable NDJSON transport contract
- first-class client, React, Next, and Fumadocs integrations
The result is a faster path to a narrow, cited assistant without standing up a broader agent platform.
Fastest:opendetail+opendetail-next+opendetail-reactBranded:opendetail+opendetail-next+opendetail-clientHeadless:opendetail
bun run build
bun run dev
bun run check-types
bun run test
bun run lint
bun run registry:buildpackages/ are the source of truth. registry.json maps installable registry items to package-owned source files, and bun run registry:build generates shadcn registry payloads into apps/web/public/r.
For the site app in apps/web, use the app directory as the env source of truth.
cp apps/web/.env.example apps/web/.env.localThen set OPENAI_API_KEY in apps/web/.env.local before running bun run dev.
bun run changeset
bun run changeset:version
bun run release:check
cd packages/opendetail && npm publishRelease notes and version bumps are managed for the publishable packages under
packages/. apps/web is ignored by Changesets.
Recommended flow:
- Run
bun run changesetand describe the change in plain language. - Choose the bump type for the packages you changed.
- Run
bun run changeset:versionto update package manifests and changelogs. - Review the diff, commit it, and publish the affected packages manually.
Useful helpers:
bun run changeset:status: inspect pending release entriesbun run release:check: run typecheck, tests, and publint for every publishable packagebun run release:pack: inspect tarballs before publishing