mothermachine /mothermachine

Browse / Agent infrastructure

Heym

Self-hosted runtime for agentic workflows, driven by MCP, with its agent also served over A2A.

AdaptableOperable ProductWeb app Hybrid PythonTypeScriptVue MCP server A2A Protocol License: MIT with Commons Clause

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.

Alternative to n8n, Zapier, Make

Use it when
  • 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
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

Last activity Nov 3, 2026. Fit: adaptable 2, operable 3.

Editions

Heym Core · Free closed source

  • Clonegit clone https://github.com/heymrun/heym
  • ImageContainer

closed source

No distribution recorded.

Enterprise · Free closed source

No distribution recorded.

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only22 things to editadmin-ui surface

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.

Env vars
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
Config files
.env.example ENVIRONMENT-VARIABLES.md docker-compose.yml docker-compose.cluster.yml deploy/kubernetes
Prompt files
backend/app/services/workflow_dsl_prompt.py
Accounts you need
At least one model provider account, such as OpenAI or Google, or your own model endpoint

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderlocal

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
heym.run/docs/tabs/mcp-tab
Tools
heym_chat MCP tool workflows published as MCP tools MCP servers, Python tools and skills attached to Agent nodes

A2A Protocol

Supportedpublished by the builder

Role
Other agents can call it
Version
1.0
Bindings
JSONRPC
Agent Card
/.well-known/agent-card.json on each deployment
Source
heym.run/docs/reference/a2a
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.

Reach describes the interface above, not A2A.

Reach

Partial coverage. 8 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Build and revise workflows from plain languageReachableheym_chat runs in build mode: it saves, test-runs and fixes a workflow, per frontend/src/docs/content/tabs/mcp-tab.md
Run workflowsReachableworkflows with the MCP toggle on appear as tools; heym_execution_status follows queued runs
Inspect analytics, run history and failuresReachableheym_chat reports analytics, recent executions and live runs, per mcp-tab.md
Review human-in-the-loop checkpointsReachableheym_chat can approve, edit or refuse pending reviews, per mcp-tab.md
Manage Board cardsReachableheym_chat lists boards, creates cards and reads card detail, per mcp-tab.md
Manage data tablesReachableheym_chat creates tables and columns and writes rows, per mcp-tab.md
Build dashboardsReachableheym_chat adds, renames and deletes widgets and tidies layouts, per mcp-tab.md
Create and run evalsReachableheym_chat creates, edits and runs prompt and agent eval suites, per mcp-tab.md
Enter credentialsNot reachablemcp-tab.md: a person signs in and saves the value on a Heym page; the MCP client never receives it
Turn on MCP and A2A, and set team accessNot reachablethe toggles, keys and model choice are set in the MCP / A2A tab; heym_chat only reads teams

Code stack

Languages
PythonTypeScriptVue
Frameworks
FastAPIVue.jsSQLAlchemy
Package manager
uv
Database
PostgreSQLQdrant (optional)
Hosting target
DockerDocker ComposeKubernetes
Built
Mixed (recorded, never ranked)

Model stack

Providers
OpenAIGooglecustom model endpoints through a Custom credential
Models
none
Keys you need
ENCRYPTION_KEY SECRET_KEY
Prompts live in
prompts on LLM and Agent nodes, stored in each workflow SKILL.md files attached to agents backend/app/services/workflow_dsl_prompt.py

Skills

One skill for writing Heym's docs. Skills an Adopter attaches to agents are created in the product.

Kind
contributor
Paths
.cursor/skills/heym-documentation/SKILL.md

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME.md: canvas and tabs in a Vue frontend over a FastAPI backend, opened at localhost:401785%
executionModelthe workflow graph runs as fixed orchestration, and LLM and Agent nodes call a model at runtime85%
operabilityfrontend/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.md90%
effortENVIRONMENT-VARIABLES.md and .env.example are mostly deployment values; reference/plugin-authoring.md covers custom nodes; workflows are built in the app70%
editionsLICENSE, 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 custom85%
activeGitHub API pushed_at 2026-11-03 and release v0.0.145 on 2026-11-03–
provenancetwo human contributors lead the history, and AGENTS.md plus a heym-coder contributor show agent-assisted development–
alternativeTofrontend/src/docs/content/getting-started/why-heym.md compares Heym with n8n, Zapier and Make.com–
a2aRoleserver only: reference/a2a.md describes inbound methods, and no A2A client import or call was found in backend/app–
reach75%

Open questions

  • 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