# Workflow automation in one binary — Hanzo AI

> Draw a workflow, connect the apps it touches, and fire it from a webhook or a schedule. Editor, connector catalog, database and durable executor all in one Go process.

auto.hanzo.ai

# Hanzo Auto

Workflow automation in one binary

Draw a workflow, connect the apps it touches, and fire it from a webhook or a schedule. The whole thing is one Go process: the editor, the connector catalog, the database and the durable executor are compiled in. There is no Node at runtime, no reverse proxy to configure, and no Postgres to run beside it. One image, one port, one thing to restart.

[Open Auto](https://auto.hanzo.ai)[Documentation](https://docs.hanzo.ai/docs/cli/auto)

Paste and ship

Paste this into any agent. It reads the skill manifest and calls Auto from there.

Agent promptCopy

```
Read https://hanzo.ai/skill.md and use Hanzo Auto in my project. Start with: hanzo auto flows list
```

## A run that survives the restart

Most of what makes automation hard is what happens on step seven of nine when the process dies.

01

### Durable execution

A run is a record, not a goroutine. Step state is written down as it goes, so a crash, a deploy or a rescheduled pod resumes where it stopped rather than starting over or losing the run.

02

### The catalog is in the binary

GET /v1/pieces lists the connectors this build has. No plugin registry to reach at boot, so the version you deployed is the version that runs, offline and forever.

03

### Triggers

POST to a trigger and a run starts. Or start one by hand against /v1/runs. Either way it is the same run object with the same history.

04

### Watch it live

The editor is React Flow, embedded in the binary, and it follows a run over a server-sent event stream — so the canvas you drew is the canvas you watch execute.

05

### Draft, then publish

Edit a flow freely; nothing changes for callers until you publish. What triggers fire is a published version, so editing in the afternoon does not change what runs overnight.

06

### Connections, not pasted keys

A connection is a named credential the flow refers to. It is encrypted at rest through Hanzo KMS, and who may touch it is Hanzo IAM&#x27;s answer, not a second login here.

Go

One process

SQLite

Per replica

/v1

Flows and runs

Apache

Self-hosted

## Some of what it connects

Slack

GitHub

Notion

Gmail

Stripe

HubSpot

Jira

Linear

Discord

Airtable

Google Sheets

Postgres

Open source royalty

### 20% to the author of the code that runs

Verify that you own a repository, and every org that deploys a project built from it pays you 20% of its metered spend, accrued each period.

[How authors are paid](https://hanzo.ai/oss)[Our repositories](https://hanzo.ai/open-source)

## Or run it yourself

One container, one port, a SQLite file for state. Nothing else to stand up first.

[Open Auto](https://auto.hanzo.ai)[View on GitHub](https://github.com/hanzoai)

## Start building with Auto

[Get your API key](https://platform.hanzo.ai/api-keys)

One API key. One credit balance. Every primitive.

## Open source

License: Apache-2.0[hanzoai](https://github.com/hanzoai)

## Get Auto

Workflow automations

[Deploy to Cloud](https://platform.hanzo.ai/deploy)
