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 uv --version. Install the CLI once, then add it in Claude Code:

uv tool install heylead
claude mcp add --scope user heylead -- heylead

For a stdio client the command is heylead with no arguments; a desktop launcher may need the absolute path from command -v heylead (or uv tool update-shell). uv tool upgrade heylead upgrades 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 own rules are in the Terms.