The Snap Store will undergo scheduled database maintenance on July 5, 2026 22:00 to July 6, 02:00 UTC. During this time, you will not be able to install or update snaps. No user action is required and services will automatically resume once maintenance is complete.
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)
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.
Snaps are applications packaged with all their dependencies to run on all popular Linux distributions from a single build. They update automatically and roll back gracefully.
Snaps are discoverable and installable from the Snap Store, an app store with an audience of millions.
Snap can be installed on Pop!_OS from the command line. Open Terminal from the Applications launcher and type the following:
sudo apt update
sudo apt install snapd
Either log out and back in again, or restart your system, to ensure snap’s paths are updated correctly.
To install harvest, simply use the following command:
sudo snap install harvest --edge
Browse and find snaps from the convenience of your desktop using the snap store snap.
Interested to find out more about snaps? Want to publish your own application? Visit snapcraft.io now.