Introducing mono-agent: A Local-First n8n Alternative in a Single Go Binary
121 releases in 6 months, human-in-loop as a platform primitive, encrypted secrets vault, MCP server, REST API, and Linux/arm64 support—mono-agent is a visual workflow automation platform with zero CGO and no Docker required

mono-agent: a local-first workflow automation platform with 90+ built-in node types, zero CGO, and human-in-loop as a platform primitive.
Most workflow automation platforms are either cloud SaaS products that require uploading your data to their servers, or self-hosted Docker stacks with heavy infrastructure dependencies. mono-agent is neither: it's a single static Go binary (zero CGO, no Docker, no Node.js runtime) with an embedded SQLite database, 90+ built-in node types, a visual canvas editor (Wails desktop GUI), and a 70+-command CLI with JSON output everywhere.
Born March 3, 2026, mono-agent shipped 121 tagged releases across 6 months, culminating in v0.37.0 (September 4, 2026) with Linux/arm64 support. This post walks through the product's major milestones: human-in-loop as a platform primitive (v0.8.0), encrypted secrets vault (v0.20.0), Agent Exec Protocol adoption (v0.31.0), trust & hygiene hardening (v0.32.0), REST HTTP API (v0.33.0-v0.35.0), and cross-platform release artifacts.
1. Human-in-Loop as a Platform Primitive (v0.8.0, July 2026)
Durable DB-backed queue, edit-before-approve, optional timeout with auto-reject
Most workflow tools treat human approval as an afterthought—a notification webhook or a Slack message. mono-agent makes it a first-class platform primitive: the core.human_in_loop node, introduced in v0.8.0 (July 2026, commit 84a2fc4 dated 2026-07-02), is a durable, DB-backed queue where workflows pause execution and wait for a human to review and approve (or reject) before continuing.
The node supports two modes: readonly fields (display context the user can't change as an array of field names) and editable fields (the user can modify values before approving, also as an array). It also supports optional timeout_minutes with automatic rejection: if a human doesn't respond within the configured duration, the workflow continues with a rejection status instead of hanging indefinitely. Approvals are handled via CLI (monoagentcli hil list / hil approve <id>) or the GUI review panel (documented in README:142-148).
What makes this a platform primitive rather than a one-off feature is that human-in-loop is a node type like any other—it can be wired into any workflow, composed with conditional branches (on_error: error_branch routes approval rejections to a fallback path), and logged in the same execution history as every other node. The approval itself is a real pause in the workflow's state machine, not a fire-and-forget webhook that hopes someone is listening.

{
"nodes": [
{
"id": "send-invoice",
"type": "service.stripe",
"action": "create_invoice",
"config": { "customer_id": "{{customer.id}}", "amount": "{{invoice.total}}" }
},
{
"id": "approval-gate",
"type": "core.human_in_loop",
"config": {
"readonly_fields": ["customer", "amount"],
"editable_fields": ["send_date"],
"timeout_minutes": 60
},
"on_error": "error_branch"
},
{
"id": "send-email",
"type": "service.gmail",
"action": "send_email",
"depends_on": ["approval-gate"]
}
]
}Key Takeaways
- ✓core.human_in_loop introduced in v0.8.0 (July 2026, commit 84a2fc4 dated 2026-07-02) as a platform primitive, not an afterthought
- ✓Durable DB-backed queue: workflows genuinely pause until monoagentcli hil approve <id> or GUI review panel approves/rejects
- ✓Supports readonly/editable field arrays, timeout_minutes with automatic rejection after timeout, and on_error: error_branch for rejection routing
- ✓Human-in-loop is a node type like any other—composable, logged, and part of the workflow's state machine (source: README:142-148)
2. Encrypted Secrets Vault (v0.20.0, July 13, 2026)
17 commits in one day: AES-256-GCM, OS keychain, auto-migration, @secret:<name> resolution
v0.20.0 (July 13, 2026) shipped a complete encrypted secrets vault in a single day: 17 commits between 17:12 and 19:37 local time (+02:00 timezone, ending at 17:37:37 UTC). The vault uses AES-256-GCM for encryption (commit 67cb605), stores the key-encryption-key (KEK) in OS keychain via go-keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service per commit a207b63), and wraps data-encryption-keys (DEKs) with the KEK (commit 9415688).
The CRUD surface landed in commit ab2509a: vault_secrets.Add / DecryptEntry / List / Delete, with a CLI (monoagentcli secret add/list/rm/update per commit 224e173) and stdin support for --value (commit c0b6125). Integration was immediate: commit 9c7ace0 auto-migrated plaintext connections.data on every CLI/GUI startup, commit 151f43c added the Vault page in the GUI, and commit 7c91a65 enabled @secret:<name> resolution in workflow node configs, with commit 377efd9 caching KEK/DEK in memory instead of re-fetching per call.
The design spec is documented at docs/superpowers/specs/2026-07-13-secrets-vault-design.md (referenced in SECURITY.md:52). As of v0.32.0's security hardening (August-September 2026), the file-based keyring fallback (MONOAGENT_ALLOW_FILE_KEYRING=1) wraps the KEK with AES-256-GCM under an argon2id-derived key from an operator passphrase read via stdin only, never CLI flag or env var (SECURITY.md:61-96).

“17 commits on 2026-07-13 (17:12 to 19:37 local time, ending 17:37:37 UTC): AES-256-GCM core, OS keyring, CRUD, CLI, auto-migrate plaintext connections, Vault GUI, @secret:<name> workflow resolution. A complete encrypted vault in one day.”
- mono-agent git log v0.19.0..v0.20.0
Key Takeaways
- ✓v0.20.0 (July 13, 2026) shipped encrypted secrets vault in 17 commits in one day (source: git log v0.19.0..v0.20.0)
- ✓AES-256-GCM crypto (commit 67cb605), KEK in OS keychain via go-keyring (a207b63), DEK wrapped by KEK (9415688)
- ✓Auto-migrated plaintext connections.data on startup (commit 9c7ace0); @secret:<name> resolves in workflow node configs (commit 7c91a65), KEK/DEK cached (377efd9)
- ✓File-keyring fallback (v0.32.0+) wraps KEK with argon2id-derived key from stdin passphrase, never CLI flag (SECURITY.md:61-96)
3. Trust & Hygiene Hardening, REST API, and Linux/arm64 (v0.32.0-v0.37.0)
MIT license, CI, governance, REST HTTP API in 3 releases (1h 37m), Linux/arm64 support
v0.32.0 (September 1, 2026) was a trust and hygiene release: commit b8e6da0 (Aug 29, 00:25:52) titled 'Harden local-first platform: license, CI, agent tooling, opt-in social build' added LICENSE (MIT, 21 lines per CHANGELOG.md:75-76), SECURITY.md (416 lines total), CONTRIBUTING.md, and CHANGELOG.md itself (follows Keep a Changelog format per CHANGELOG.md:5). CI infrastructure landed with .github/workflows/ci.yml: build, vet, race-enabled tests in default + social build modes, with release pipeline gated on tests passing (CHANGELOG.md:229).
The release included four review waves (commits b8e6da0, b4dcfd3, 45546a3, e939192) and remediation commit 772b3bc (Sept 1, 12:10) addressing findings MA-01, 03, 04, 05, 06, 09, 11, 13, 14. Key fixes: social bots moved behind opt-in social build tag (CHANGELOG.md:67, 143-144), MCP server for AI agents (stdio JSON-RPC 2.0 at cmd/monoagentcli/mcp.go, 11 tools: workflow_list/get/validate/run/status, node_list/schema, hil_list/approve/reject, docs per CHANGELOG.md:82-83), CLI agent-experience tooling (workflow run --json / --dry-run / --no-wait, workflow validate, node schema per CHANGELOG.md:83-91), sandbox resource caps (HTTP bodies 64 MB, core.code 30s timeout, system.execute_command 10 MB per channel per CHANGELOG.md:94-100), and assistant tools explicit opt-in (chat --tools monoagent, off by default, vault tools return metadata only per CHANGELOG.md:129-136, SECURITY.md:37-38).
v0.33.0-v0.35.0 (all September 1, 2026, 1h 37m span from 14:55:16 to 16:32:41) completed the REST HTTP API for external agents: v0.33.0 (commit ac61a77) foundation, v0.35.0 (commit 54af9b5) closed gaps with real e2e test + OpenAPI validation + reference API docs (issue #20). The HTTP API is launched with monoagentcli httpapi. v0.37.0 (September 4, 12:05:11) shipped Linux/arm64 binary (commit 08fb4c5) and webkit2gtk-4.1 compatibility for the Wails GUI (commit 54e2fb8).

# CLI agent-experience tooling (v0.32.0+)
monoagentcli workflow run my-workflow --json --dry-run # preview execution plan
monoagentcli workflow run my-workflow --no-wait # fire-and-forget, exit 0 immediately
monoagentcli workflow validate my-workflow.json # validate before run
monoagentcli node schema service.stripe # inspect node schema (75 of 110 types)
# MCP server for AI agents (stdio JSON-RPC 2.0, 11 tools)
monoagentcli mcp # workflow_list/get/validate/run/status, node_list/schema, hil_list/approve/reject, docs
# REST HTTP API (v0.33.0-v0.35.0, launched with dedicated command)
monoagentcli httpapi # starts HTTP API server for external agentsKey Takeaways
- ✓v0.32.0 (Sept 1, 2026): MIT license, SECURITY.md (416 lines), CI (.github/workflows/ci.yml), 4 review waves + remediation (source: CHANGELOG.md:8-191)
- ✓MCP server (cmd/monoagentcli/mcp.go, stdio JSON-RPC 2.0): 11 tools including workflow_list/get/validate/run/status, node_list/schema, hil_list/approve/reject, docs
- ✓REST HTTP API: v0.33.0-v0.35.0 (Sept 1, 14:55-16:32, 1h 37m)—read/mutating surface via monoagentcli httpapi, OpenAPI validation, e2e tests (issue #20)
- ✓v0.37.0 (Sept 4, 2026): Linux/arm64 binary (commit 08fb4c5), webkit2gtk-4.1 Wails GUI support (commit 54e2fb8)
4. What mono-agent Actually Is Today
90+ node types, zero CGO, three interfaces, cross-platform, and 121 releases in 6 months
As of v0.37.0 (September 4, 2026), mono-agent is a single static Go binary (zero CGO, no Docker, no Node.js runtime) with 90+ built-in node types (150 with -tags social opt-in build): services like GitHub, Google (Sheets/Gmail/Drive), Stripe, Salesforce, HubSpot, Jira, Linear, Notion, Airtable; databases, HTTP, data transforms; and comms like Gmail, Outlook, Slack, Telegram, Discord (source: README:24).
The workflow engine is a DAG executor with Kahn topological sort cycle detection, template expressions {{variable.path}} with dot notation, per-node on_error semantics (stop, continue, skip, error_branch), honest run statuses (partial failures surface as SUCCESS_WITH_ERRORS, never green), and webhook/cron/manual triggers. Hybrid storage: JSON workflow files + SQLite, with full execution history (source: README:24, 132-138).
Three interfaces: visual canvas editor (Wails desktop GUI), 70+-command CLI with JSON output everywhere, and built-in MCP server for AI agent safe operation (source: README:26). Browser automation via bundled Chrome extension bridge to drive logged-in sessions (social platform nodes opt-in via -tags social per README:28-29). All data stays on machine; crash reports default to local files under ~/.monoagent/crashes/, filing to GitHub requires MONOAGENT_CRASH_REPORT=1 and monomind CLI on PATH (CHANGELOG.md:148-150).
Release cadence: first commit March 3, 2026 (2026-03-03T00:26:17+01:00); first release (v0.1.0 annotated tag) April 2, 2026 (2026-04-02T16:13:53+02:00); v0.37.0 September 4, 2026—121 tagged versions across 6 months. Notable bursts: v0.33.0-v0.35.0 (3 releases in 1h 37m), v0.20.0 (17-commit vault in 1 day), v0.31.0-v0.37.0 (7 major releases in 10 days) (source: git tag -l, git log).

Key Takeaways
- ✓90+ built-in node types (150 with -tags social); zero CGO, no Docker, no Node.js runtime (source: README:24-25)
- ✓Three interfaces: Wails GUI (visual canvas), 70+-command CLI (JSON everywhere), MCP server (11 tools for AI agents) (README:26)
- ✓121 tagged releases from March 3 to Sept 4, 2026 (6 months)—velocity story, not vaporware (source: git tag -l, git log)
- ✓mono-agent is open source; usage policy at docs/USAGE_POLICY.md (own accounts only, approval gates, platform ToS apply per README:34-42)
Conclusion & Future Outlook
mono-agent isn't a future roadmap or a conceptual prototype—it's a shipping product with 121 tagged releases across 6 months, live integrations (Agent Exec Protocol adoption v0.31.0 same day as monomind 2.10.0), and production-ready trust features (MIT license, SECURITY.md, CI, encrypted vault, MCP server, REST API). The velocity is real: v0.20.0 shipped a complete encrypted vault in 17 commits in one day, v0.33.0-v0.35.0 shipped a REST API in 3 releases over 1h 37m, and v0.32.0 hardened the platform with four review waves and 9 security remediations.
What makes mono-agent different from cloud workflow platforms is the local-first posture: single static Go binary, zero CGO, embedded SQLite, no Docker, no telemetry, all data stays on your machine. What makes it different from self-hosted n8n is the deployment simplicity: download one binary, run it, no Node.js runtime or container orchestration required.
mono-agent is open source. The repository is at github.com/monoes/mono-agent, the usage policy is at docs/USAGE_POLICY.md, and the full architectural docs are in the docs/ directory.
Deploy Monomind Digital Workers Today
Run open-source AI agent teams on your own infrastructure or hire Monoes Workforce to build and audit fully managed operations.
0 comments
No comments yet.
Log in to leave a comment.