Self-hosting

The client is MIT-licensed on GitHub and on PyPI. The hosted backend, its prompts and its knowledge base are not part of it. Self-hosting means running the client on your own machine against your own Unipile account and your own LLM key, with data in a local SQLite file.

Install

You need uv; check with uvx --version. Then, in Claude Code:

claude mcp add --scope user heylead -- uvx heylead

For a stdio client the command is uvx with the argument heylead; a desktop launcher may need the absolute path from command -v uvx. uvx --refresh heylead refreshes the package.

Configure

Configuration lives in ~/.heylead/config.json: the Unipile API URL and key, and the LLM key. Sending then happens from this machine only; the cloud scheduler is not involved.

Quotas

Self-hosted free installs have monthly quotas: 50 invitations, 20 messages, 30 engagements, 1 active campaign, 3 ICP generations. Invitation pacing on a self-hosted install is 20 a day as a backstop; the ceiling that matters is your LinkedIn account's.

Tools

The local client serves 22 tools by default and 47 with HEYLEAD_TOOLS=all. See the tool reference.

A hosted account from the local client

The local client can also drive a hosted workspace: the setup message under Settings → Integrations → Chat client → Local Python client carries a sign-in token for setup_profile(backend_jwt=...). Outreach then runs from the cloud like any hosted account.

HeyLead is not affiliated with LinkedIn. It reaches LinkedIn through Unipile, which is also not affiliated. LinkedIn's User Agreement prohibits automated messaging and may restrict an account; HeyLead's pacing lowers that risk and does not remove it.