Install latest/edge of harvest
Ubuntu 16.04 or later?
Make sure snap support is enabled in your Desktop store.
Install using the command line
sudo snap install harvest --edge
Don't have snapd? Get set up for snaps.
Thank you for your report. Information you provided will help us investigate further.
There was an error while sending your report. Please try again later.
Generate an embeddable card to be shared on external websites.
Harvest exposes an AI-powered HTTP API and web interface for querying code knowledge graphs stored in Neo4j. Agents can connect to it to run commands on remote machines.
Prerequisites ───────────── A running Neo4j instance (not bundled in this snap).
Quick start ───────────
Set required credentials:
snap set harvest
neo4j.password=<neo4j-password>
llm.primary.provider=anthropic
llm.primary.api-key=<llm-api-key>
auth.jwt-secret=$(openssl rand -base64 32)
Start the services: snap start harvest.serve snap start harvest.ui
Open http://localhost:3000 in your browser.
Snap configuration keys ─────────────────────── neo4j.host Neo4j hostname (default: localhost) neo4j.port Neo4j bolt port (default: 7687) neo4j.user Neo4j username (default: neo4j) neo4j.password Neo4j password (required) server.host API bind address (default: 127.0.0.1) server.port API port (default: 8080)
LLM providers — define any number with user-chosen names: llm.<name>.provider anthropic | gemini | openai-compatible llm.<name>.api-key API key (setting this enables the provider) llm.<name>.model Model name llm.<name>.base-url Base URL (openai-compatible only) llm.<name>.timeout-secs Per-request timeout (default: 120) llm.<name>.max-retries Retry limit per request (default: 3) llm.<name>.priority Lower = tried first on rate limits (default: 0)
Example — Anthropic primary, Gemini fallback:
snap set harvest
llm.primary.provider=anthropic llm.primary.api-key=sk-ant-...
llm.fallback.provider=gemini llm.fallback.api-key=AIza...
llm.fallback.priority=1
agent.max-iterations Agent iteration limit (default: 20) agent.compaction-threshold-chars Context compaction trigger (default: 40000) agent.compaction-keep-last Messages kept after compaction (default: 6) auth.jwt-secret JWT signing secret (required) auth.allow-local-login Enable username/password login (default: true) auth.google.client-id Google OAuth client ID (optional) auth.google.client-secret Google OAuth client secret (optional) auth.google.redirect-uri Google OAuth redirect URI (optional) auth.oidc.issuer-url OIDC provider URL (optional) auth.oidc.client-id OIDC client ID (optional) auth.oidc.client-secret OIDC client secret (optional) auth.oidc.redirect-uri OIDC redirect URI (optional) auth.oidc.display-name OIDC provider display name (optional) agents.public-url Public URL for agent callbacks (optional) docs.dir Documentation directory (default: $SNAP_COMMON/docs) ui.enable-docs Show docs page in web UI (default: false) ui.host Web UI bind address (default: 127.0.0.1) ui.port Web UI port (default: 3000)
Choose your Linux distribution to get detailed installation instructions. If yours is not shown, get more details on the installing snapd documentation.