Development

Pages in this section are for contributors working on Hover — not for end users who want to use Hover in their project. If you're here to install Hover and try it, head to Get started instead.

What's inside

  • Monorepo layout — the packages/* overview, who depends on whom, and the MCP / core / extension split.
  • Testing & validation — the unit, integration, and end-to-end layers, and the release gate.
  • Releasing — how a v* tag push triggers .github/workflows/publish.yml to publish the npm packages, and how the VS Code extension is staged + packaged.

Quick reference

# Clone + install (workspace install, no per-package step)
git clone https://github.com/Hyperyond/Hover.git
cd Hover
pnpm install

# Build everything (postinstall already handles this for fresh clones)
pnpm build

# Type-check the workspace
pnpm typecheck

# Run unit tests across every package that has them
pnpm test

The surfaces

  • @hover-dev/mcp — the MCP-first authoring engine, published to npm. Add it to your agent with npm i -g @hover-dev/mcp && claude mcp add hover -- hover-mcp.

  • @hover-dev/core — the shared engine. Consumed by the MCP and by the extension.

  • hover-dev (packages/vscode-ext) — the optional review cockpit. Build and sideload it with:

    pnpm --filter hover-dev package    # build + stage engine + vsce package → hover-dev-<v>.vsix
    

The extension consumes @hover-dev/core as local source — its stage-engine step npm packs the local packages/core and flat-installs it into the staged engine. Editing core/src during extension dev needs a pnpm --filter @hover-dev/core build (or a dev watch terminal) and a re-package to pick it up; @hover-dev/core points main at dist/ rather than src/ for this reason — see Monorepo layout § dist-entry package.