API keys

Hover needs no API key of its own. It ships as an MCP server your coding agent calls — the agent (Claude Code, Cursor, …) brings the model and the auth, and Hover rides whatever that agent runs (BYO-CLI). @hover-dev/mcp ships zero LLM SDK: there is no model client inside Hover to hand a key to in the first place.

How your agent authenticates

That part is your agent's mechanism, not Hover's:

  • Subscription login — most agents log into a plan you already pay for (claude login, and the equivalents for Cursor / Codex / Gemini). Hover uses the session that's already there.
  • A model API key — if you'd rather run on a key, set it the way your agent expects, in the environment you launch the agent from. For Claude Code that's ANTHROPIC_API_KEY; other agents read their own variable. Hover reads none of them — the key only ever reaches the agent you already trust on your PATH.

Either way Hover sees no key. It exposes grounded browser tools to the agent and nothing else.

Local & self-hosted models

The model is entirely your agent's choice. If your agent can point at a self-hosted, OpenAI-compatible endpoint (Ollama, LM Studio, vLLM), Hover works exactly the same — it never talks to the model, only to the agent. Your prompts and code go wherever your agent sends them; Hover adds no network hop of its own.

CI needs nothing

Authoring auth is a one-time, local concern. The saved .spec.ts runs in CI with npx playwright test — no agent, no model, no key. Nothing you set for your agent ever wires a key into CI.