cd /news/ai-agents/show-hn-enju-humans-ai-agents-and-co… · home topics ai-agents article
[ARTICLE · art-15345] src=github.com pub= topic=ai-agents verified=true sentiment=↑ positive

Show HN: Enju – humans, AI agents, and compute as peers on one workflow graph

Enju is a new workflow system that treats humans, AI agents, and deterministic compute as peers on a single directed acyclic graph (DAG). The system allows any of these "citizens" to claim and execute tasks such as answering, reviewing, voting, or computing, with the graph remaining live so tasks can spawn subtasks during a run. Enju ships as a single binary with MCP, CLI, and web UI support, using git commits for attribution and audit trails.

read3 min publishedMay 27, 2026

Enju is a workflow system where humans, AI agents, and deterministic compute work the same DAG as peers. The unit of work is a task — something any of them can answer

, review

, vote

on, or compute

. The graph is live: a task can spawn more tasks while a run is in flight, so a review that returns request_changes

drops a revision task back into the graph with its feedback already attached, and the work cycles until it's approved.

What makes this work is where the lines are drawn. Review and voting are ordinary task actions, not out-of-band approvals — human judgement enters the graph as a recorded decision with the same standing as an agent's output. The coordinator is output-neutral: it tracks task state and decisions, never the content work produces. Every result is a git commit, so attribution and audit fall out of git history with nothing extra to wire up, and a plain git remote is the only thing moving content between machines. Enju ships as a single binary that speaks MCP, a CLI, and a web UI.

A real Enju workflow — a PRISMA systematic review — where deterministic compute (teal), AI agents (blue), and human review gates (orange) are peers on one graph.Any citizen can claim from this graph in parallel, each on its own model and tokens.

A workflow is a DAG of tasks, written as YAML and committed to your repo. Here an agent drafts a report and a human gates it — two tasks, two different kinds of citizen, one graph:

name: My First Workflow

agents:
  - name: writer
    handler: claude
    model: claude-sonnet-4-6

tasks:
  - id: write_report
    action: answer            # an agent (or a human) produces work
    assign_to: writer
    writes: [report.md]
    prompt: Write a short report on solar-energy adoption to report.md.

  - id: human_review
    action: review            # a human gate, equal standing in the graph
    reviews: write_report      # approve · request_changes · reject
    prompt: Approve if accurate; request_changes sends it back with feedback.
enju go enju.yaml --auto-agents

The agent claims write_report

, runs its model, and commits report.md

; human_review

then waits in your inbox. Every step is a commit on the run's branch. → full walkthrough in the quickstart.

The coordinator holds the task DAG and its lifecycle (pending → ready → claimed → running → review → done

, with a revise loop) plus the state and events databases — but no produced content. Each citizen runs a fat client on their own machine exposing MCP/CLI/Web UI, forking agent daemons and committing to a local git clone. Multiple citizens work the same DAG as peers — and each runs its own model on its own tokens, so the compute and API cost is shared across whoever joins the run. Remote git holds everything produced and is the only cross-machine transport.

One primitive, interchangeable executors: a task's action

selects whether a human, an LLM agent, or a script runs it — all the same kind of node. Edges carry typed data, for_each

fans a task (or a whole run) out into parallel iterations, and a review

verdict can approve, fail, or cycle the work back with feedback — every attempt kept as a commit.

curl -fsSL https://raw.githubusercontent.com/tamerh/enju/main/install.sh | sh

Installs enju

to ~/.local/bin/enju

(no sudo). Add it to your PATH

if it isn't already:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc   # or ~/.zshrc

Verify with enju --version

.

Other platforms or specific versions: download a binary from the releases page and put it on your PATH

.

Three reference workflows — clone, install, run:

— build a Mustache template engine from spec. Six Sonnet agents gated bymustache-engine-enjurequest_changes

loops; 136/136 conformance tests pass.— PRISMA systematic review of FMT-for-rCDI RCTs. Four Sonnet agents + two human review gates produce a 14-RCT synthesis.prisma-review-enju— ONT phage-genome assembly. Thirteen containerized compute tasks across two machines, git as transport.nanopore-assembly-enju

See docs/getting started, guides, reference, or how it works.

For the design and motivation, see the preprint: sugi.bio/enju.

MIT — see LICENSE.

── more in #ai-agents 4 stories · sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-enju-humans-…] indexed:0 read:3min 2026-05-27 ·