{
  "version": "2",
  "generatedAt": "2026-11-04T02:45:34.616Z",
  "listing": {
    "slug": "heymrun--heym",
    "name": "Heym",
    "tagline": "Self-hosted runtime for agentic workflows, driven by MCP, with its agent also served over A2A.",
    "shortTagline": "Self-hosted agentic workflow runtime",
    "description": "A Python and Vue platform for building and running workflows of agents and fixed steps, with a visual canvas, human review checkpoints, evals, traces and cost tracking. Workflows run from REST, schedules, triggers and MCP, and the Heym Agent behind the Chat tab can also be called over A2A. The core is free to self-host under MIT with the Commons Clause, which is source-available, not open source; Heym Work is a paid layer for business teams.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "agent-infrastructure",
    "alternativeTo": [
      "n8n",
      "Zapier",
      "Make"
    ],
    "shape": "product",
    "formFactor": "web-app",
    "executionModel": "hybrid",
    "provenance": "mixed",
    "codeStack": {
      "languages": [
        "Python",
        "TypeScript",
        "Vue"
      ],
      "frameworks": [
        "FastAPI",
        "Vue.js",
        "SQLAlchemy"
      ],
      "packageManager": "uv",
      "database": [
        "PostgreSQL",
        "Qdrant (optional)"
      ],
      "hostingTarget": [
        "Docker",
        "Docker Compose",
        "Kubernetes"
      ]
    },
    "modelStack": {
      "providers": [
        "OpenAI",
        "Google",
        "custom model endpoints through a Custom credential"
      ],
      "models": [],
      "requiredKeys": [
        "ENCRYPTION_KEY",
        "SECRET_KEY"
      ],
      "promptLocations": [
        "prompts on LLM and Agent nodes, stored in each workflow",
        "SKILL.md files attached to agents",
        "backend/app/services/workflow_dsl_prompt.py"
      ],
      "tools": [
        "heym_chat MCP tool",
        "workflows published as MCP tools",
        "MCP servers, Python tools and skills attached to Agent nodes"
      ]
    },
    "repos": [
      {
        "url": "https://github.com/heymrun/heym",
        "owner": "heymrun",
        "name": "heym",
        "license": "MIT with Commons Clause",
        "stars": 1236,
        "lastCommit": "2026-11-03"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://heym.run/docs/tabs/mcp-tab",
      "official": true,
      "hosted": "local"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Build and revise workflows from plain language",
        "reachable": true,
        "evidence": "heym_chat runs in build mode: it saves, test-runs and fixes a workflow, per frontend/src/docs/content/tabs/mcp-tab.md"
      },
      {
        "job": "Run workflows",
        "reachable": true,
        "evidence": "workflows with the MCP toggle on appear as tools; heym_execution_status follows queued runs"
      },
      {
        "job": "Inspect analytics, run history and failures",
        "reachable": true,
        "evidence": "heym_chat reports analytics, recent executions and live runs, per mcp-tab.md"
      },
      {
        "job": "Review human-in-the-loop checkpoints",
        "reachable": true,
        "evidence": "heym_chat can approve, edit or refuse pending reviews, per mcp-tab.md"
      },
      {
        "job": "Manage Board cards",
        "reachable": true,
        "evidence": "heym_chat lists boards, creates cards and reads card detail, per mcp-tab.md"
      },
      {
        "job": "Manage data tables",
        "reachable": true,
        "evidence": "heym_chat creates tables and columns and writes rows, per mcp-tab.md"
      },
      {
        "job": "Build dashboards",
        "reachable": true,
        "evidence": "heym_chat adds, renames and deletes widgets and tidies layouts, per mcp-tab.md"
      },
      {
        "job": "Create and run evals",
        "reachable": true,
        "evidence": "heym_chat creates, edits and runs prompt and agent eval suites, per mcp-tab.md"
      },
      {
        "job": "Enter credentials",
        "reachable": false,
        "evidence": "mcp-tab.md: a person signs in and saves the value on a Heym page; the MCP client never receives it"
      },
      {
        "job": "Turn on MCP and A2A, and set team access",
        "reachable": false,
        "evidence": "the toggles, keys and model choice are set in the MCP / A2A tab; heym_chat only reads teams"
      }
    ],
    "a2a": {
      "role": "server",
      "status": "supported",
      "protocolVersion": "1.0",
      "bindings": [
        "JSONRPC"
      ],
      "agentCard": null,
      "cardPath": "/.well-known/agent-card.json",
      "url": "https://heym.run/docs/reference/a2a",
      "official": true,
      "evidence": "backend/app/api/a2a.py serves the Agent Card and POST /api/a2a, backend/app/services/a2a/agent_card.py declares JSONRPC at protocol version 1.0, and backend/tests/test_a2a_conformance.py checks the wire format against a2a-sdk; backend/app has no A2A client, and the public card at heym.run is a site-help agent, not this software."
    },
    "editions": [
      {
        "name": "Heym Core",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/heymrun/heym"
          },
          {
            "kind": "container",
            "url": "https://github.com/heymrun/heym/pkgs/container/heym",
            "command": "docker pull ghcr.io/heymrun/heym:latest"
          }
        ]
      },
      {
        "name": "Heym Work",
        "price": {
          "amount": 99,
          "currency": "EUR",
          "period": "month"
        },
        "open": false,
        "distributions": []
      },
      {
        "name": "Enterprise",
        "price": null,
        "open": false,
        "distributions": []
      }
    ],
    "skills": {
      "kind": "contributor",
      "paths": [
        ".cursor/skills/heym-documentation/SKILL.md"
      ],
      "install": null,
      "note": "One skill for writing Heym's docs. Skills an Adopter attaches to agents are created in the product."
    },
    "customization": {
      "summary": "ENVIRONMENT-VARIABLES.md lists every setting: database, keys, sandboxes, plugins and cluster roles. Most are deployment values. Business behavior lives in workflows, which are built on the canvas or by heym_chat, stored in the database, and moved as JSON. Custom nodes install as zip packages with a plugin.json when HEYM_PLUGINS_ENABLED is on, and agents take SKILL.md files. Changing the AI Assistant's own prompt means editing backend/app/services/workflow_dsl_prompt.py.",
      "surfaceKind": "admin-ui",
      "envVars": [
        "DATABASE_URL",
        "ENCRYPTION_KEY",
        "SECRET_KEY",
        "ALLOW_REGISTER",
        "FRONTEND_URL",
        "CORS_ORIGINS",
        "TIMEZONE",
        "HEYM_PLUGINS_ENABLED",
        "HEYM_PLUGIN_ADMIN_EMAILS",
        "HEYM_PLUGINS_DIR",
        "HEYM_PYTHON_TOOL_SANDBOX",
        "HEYM_MCP_STDIO_SANDBOX",
        "HEYM_MCP_ALLOW_PRIVATE_URLS",
        "HEYM_HTTP_ALLOW_PRIVATE_URLS",
        "HEYM_OTEL_ENABLED",
        "HEYM_CLUSTER_ENABLED"
      ],
      "configFiles": [
        ".env.example",
        "ENVIRONMENT-VARIABLES.md",
        "docker-compose.yml",
        "docker-compose.cluster.yml",
        "deploy/kubernetes"
      ],
      "promptFiles": [
        "backend/app/services/workflow_dsl_prompt.py"
      ],
      "effort": "config-only",
      "editCount": 22
    },
    "useWhen": [
      "I want to build agent workflows on my own servers without paying per execution",
      "I want my coding agent to build, test and run workflows for me through one MCP tool",
      "I want a person to approve what an agent does before the run continues",
      "I want another agent to send tasks to my self-hosted workflow platform over A2A"
    ],
    "accounts": [
      "At least one model provider account, such as OpenAI or Google, or your own model endpoint"
    ],
    "active": true,
    "lastActivity": "2026-11-03",
    "gotchas": [
      "The Commons Clause forbids selling a product or service whose value comes substantially from Heym, and it names hosting and consulting fees. An agency that charges to host or support Heym needs a commercial license",
      "A2A is off by default and rides on the Heym Agent: turn on the agent, pick a credential and model, then tick Enable A2A. Until then the card address returns 404",
      "A2A 1.0 only: 0.3 method names such as message/send are refused, push notifications are not offered, and file parts are refused",
      "Named servers serve their card at /api/a2a/servers/{server_id}/agent-card.json, not the well-known path",
      "heym_chat is one plain-language tool, so an MCP client's reach runs through a model on your own credential",
      "Test runs from heym_chat are real runs and their side effects happen",
      "An agent cannot enter a credential; a person has to save it on a Heym page"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 3
    },
    "evidence": {
      "formFactor": "README.md: canvas and tabs in a Vue frontend over a FastAPI backend, opened at localhost:4017",
      "executionModel": "the workflow graph runs as fixed orchestration, and LLM and Agent nodes call a model at runtime",
      "operability": "frontend/src/docs/content/tabs/mcp-tab.md: Heym serves {origin}/api/mcp/sse with an API key or OAuth; the REST execute endpoints are in reference/webhooks.md",
      "effort": "ENVIRONMENT-VARIABLES.md and .env.example are mostly deployment values; reference/plugin-authoring.md covers custom nodes; workflows are built in the app",
      "editions": "LICENSE, COMMONS-CLAUSE.md, reference/enterprise.md and heym.run/pricing: Core free, Heym Work EUR 99 per paid seat per month with a five-seat minimum, Enterprise custom",
      "active": "GitHub API pushed_at 2026-11-03 and release v0.0.145 on 2026-11-03",
      "provenance": "two human contributors lead the history, and AGENTS.md plus a heym-coder contributor show agent-assisted development",
      "alternativeTo": "frontend/src/docs/content/getting-started/why-heym.md compares Heym with n8n, Zapier and Make.com",
      "a2aRole": "server only: reference/a2a.md describes inbound methods, and no A2A client import or call was found in backend/app"
    },
    "confidence": {
      "formFactor": 0.85,
      "executionModel": 0.85,
      "operability": 0.9,
      "effort": 0.7,
      "reach": 0.75,
      "editions": 0.85
    },
    "openQuestions": [
      "Reach and A2A were read from docs and source; Heym was not run, no MCP tool was called, and no deployment's Agent Card was fetched",
      "heym.run/.well-known/agent-card.json is live, but it describes the Heym Site Agent at heym.run/a2a, which searches the website. It was left out of a2a.agentCard because the page would show it in place of the per-deployment path; is that the right call?",
      "Reach for heym_chat comes from the Builder's list of abilities, and a model decides each step, so how reliably each job completes is unknown",
      "Which jobs the Chat engine can do for vector stores, Portal publishing and alert creation was not confirmed; the docs show it can read alerts"
    ],
    "sources": [
      {
        "url": "https://github.com/heymrun/heym",
        "foundBy": "sourcing:agent-infrastructure:a2a-topic",
        "foundOn": {
          "platform": "github",
          "date": "2026-11-03"
        }
      },
      {
        "url": "https://heym.run/docs/reference/a2a",
        "foundBy": "analysis:agent-infrastructure"
      },
      {
        "url": "https://heym.run/docs/tabs/mcp-tab",
        "foundBy": "analysis:agent-infrastructure"
      },
      {
        "url": "https://heym.run/pricing",
        "foundBy": "analysis:agent-infrastructure"
      },
      {
        "url": "https://heym.run/.well-known/agent-card.json",
        "foundBy": "analysis:agent-infrastructure"
      }
    ],
    "lastCheckedAt": "2026-11-03",
    "research": {
      "stage": "verified",
      "verdict": "dispute",
      "reason": "Passes all gates: free source-available core, a commit on 2026-11-03, 1,236 stars, and frequent releases. Adaptable 2: the Commons Clause limits selling, and business behavior lives in workflows. Operable 3: official MCP with eight of ten jobs reachable. A2A server code is in public source with conformance tests.",
      "disputed": [
        {
          "field": "customization.effort",
          "reason": "Named env vars deploy the platform; workflows, prompts and agent setup live in the app and its database, so config-only overstates the file surface."
        }
      ]
    },
    "url": "apps/heymrun--heym.html",
    "coverage": "partial",
    "paid": true,
    "source": "research/verified/heymrun--heym.json"
  }
}
