The workflow engine that doesn't turn into an SRE project.

Dagu is a lightweight workflow engine that comes with a Web UI. Define any worflows in a simple declarative YAML format. It natively suports shell commands, docker containers, k8s jobs, SSH commands, and more. Self-contained and no DBMS is required.

Daguは、運用オーバーヘッドなしに強力なワークフローオーケストレーションを求める開発者のために作られています。

Linux
macOS
Windows
Docker
Kubernetes
dagu start-all --port 8080
dagu コマンドをインストール
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

自己完結型

ワークフローはファイルベース。シングルバイナリで、外部データベースやブローカーは不要。エアギャップ環境にも対応。

CLI指向

シェルスクリプト、Pythonジョブ、SQL、dbt、DuckDB、コンテナ、データ処理ランブックはそのままパイプラインのステップとして動きます。書き直し不要です。

宣言的

シンプルで宣言的なYAML形式でワークフローを定義できます。既存のスクリプトやツールを変更せずにそのまま利用できます。

セキュアなAIエージェント統合

お気に入りのAIエージェントを使って、ワークフローの作成・改善・デバッグ・実行が可能。組み込みのシークレット管理により、ログやエージェントから認証情報を隠しながら、タスクの安全なプレビューと実行を許可。完全な監査ログでコンプライアンスと可視性を確保。

MCPで設定
workflow.yaml
# 型付き入力とレビューを備えた制御された本番 Runbook
name: "repair-customer-account"

params:
- name: customer_id
type: string
- name: change_scope
type: string
enum: ["metadata_only", "permissions"]
default: metadata_only
- name: dry_run
type: boolean
default: true

steps:
- id: inspect_account
run: ./scripts/inspect-account.sh --customer $${customer_id}
stdout:
artifact: reports/inspection.md

- id: review
action: noop
depends: [inspect_account]
approval:
prompt: "Review the inspection report before repair."

- id: repair_account
run: ./scripts/repair-account.sh --customer $${customer_id} --scope $${change_scope} --dry-run $${dry_run}
depends: [review]
stdout:
artifact: reports/repair.log

Trusted by developers at

1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX

AIエージェントゲートウェイ

AIエージェントには本番アクセスではなく、承認済みアクションを。

DaguはMCPを通じて、スコープ付き権限、実行時だけのシークレット、ログ、履歴、監査証跡を備えたプライベートワークフローを公開します。

AIエージェント

プライベートな認証情報を見ずに、承認済み操作を要求します。

要求

Dagu MCP

ワークフロー実行前に細かなアクセス制御を適用します。

承認

承認済みワークフロー

信頼済みのスクリプト、コンテナ、SQL、HTTP、SSH、サブワークフローをそのまま実行します。

実行

プライベートシステム

本番ツールとデータはエージェントのコンテキストではなく、Daguの背後に残ります。

ShellSQLSSH

エージェントはシェル、データベース、APIの認証情報を受け取る代わりに、Dagu MCP経由で名前付きワークフローアクションを要求します。

Daguはアクセスを確認し、シークレットを実行時だけ注入し、機密性の高いワークフローは人の承認で一時停止できます。

すべての実行にログ、出力、ステータス、履歴、監査証跡が残り、人とエージェントが確認できます。

スコープ付きアクセス

各エージェントに許可されたアクションだけを公開します。

管理されたシークレット

認証情報をエージェントに見せず、実行時だけ注入します。

監査証跡

誰が何をどの入力で実行したかを追跡します。

承認

高リスクな操作を人のレビューで一時停止します。

安全な結果

生のシステムアクセスなしでステータスと出力を返します。

エージェントが受け取るのは境界づけられたツールです。シークレット、ログ、権限、運用履歴はDaguに残ります。

実際の作業を囲むコントロールプレーン

Dagu は、スクリプト、ツール、Runbook、AI エージェントに必要な運用レイヤーをチームへ提供します。

可観測性

Web UI でワークフロー、スケジュール、ライブ状態、ログ、実行履歴、出力、成果物、承認を追跡できます。

言語に依存しない実行

シェルコマンド、Python スクリプト、コンテナ、Kubernetes Jobs、SQL クエリ、HTTP リクエスト、SSH コマンドなどを実行できます。

再現可能な実行

workflow YAML でツールを固定し、worker が実行前に期待するバイナリをインストールしてキャッシュします。

マルチプレイヤーエージェント

共有 AI エージェントをワークフロー内で実行し、境界付きで観測可能なツールとしてワークフローをエージェントに公開できます。

組み込み承認

機密性の高いステップを一時停止し、人のレビュー、確認、介入を待ってから実行を続けられます。

MCP サーバー

MCP 対応エージェントが Dagu の状態確認、変更プレビュー、ワークフロー編集、実行制御を行えます。

ハーネスに依存しないエージェント

ログ、承認、シークレット、監査履歴を Dagu に残しながら、coding agent や agent CLI をワークフローから実行できます。

シークレット管理

シークレットをワークフロー実行へ注入し、ユーザー、エージェント、チャットツール向けのログでは機密値をマスクします。

セルフホストまたはマネージド

単一バイナリ、コンテナ、Kubernetes、またはマネージド/ハイブリッドのデプロイモデルで運用できます。

権限制御

RBAC、SSO、API キー、ワークスペース制御、監査ログでワークフローアクセスを管理できます。

デプロイメントモデル

セルフホストインスタンスを実行するか、Daguマネージドサーバーを使用するか、クラウドコントロールプレーンとインフラ内のプライベートワーカーを組み合わせます。

1 台から始めて、セルフホスト、マネージド、ハイブリッドへ拡張できます。

ローカル

単一サーバー

`dagu start-all` を 1 台のマシンで実行し、状態はローカルファイルに保存します。データベース、ブローカー、プラットフォーム基盤は不要です。

セルフホスト

自社インフラ

Dagu サーバー、ワーカー、シークレット、ログ、実行環境を自社環境内に置けます。

Dagu

フルマネージドサーバー

Dagu が GKE 上の隔離された gVisor インスタンスで運用する、専用の Dagu サーバーを使えます。

ハイブリッド

マネージドサーバー + プライベート実行

Dagu がサーバーを運用し、プライベートワーカーが Docker、プライベートネットワーク、データに近いステップを実行します。

ハイブリッド実行

マネージド Dagu サーバー
mTLS で接続するプライベートワーカー
Docker、プライベート API、シークレット、データに近い処理

ハイブリッド構成では Dagu サーバーの運用を任せながら、ネットワーク、ランタイム、データに近い実行は自社管理下に残せます。

プロダクショングレードのワークフローエンジン機能

実績あるワークフローエンジン機能により、オーケストレーションを気にせずコアバリューに集中できます。

パフォーマンス

ハードウェア、ワークフローの形、ステップ時間、キュー設定に応じて、1台のマシンで1日に数千のワークフロー実行を扱えます。

分散実行

キュー、同時実行制限、分散ワーカーを使って負荷を制御し、ジョブを複数マシンへ分散できます。

通知

定期スケジュール、キャッチアップ、耐久性のある実行、タイムアウト、再実行、通知、およびインシデントの担当者へのルーティング。

認証とRBAC

ユーザー管理、RBAC、ワークスペース、承認ステップ、組み込みシークレット管理、APIキー、およびWebhook。

実際のユースケース

01

カスタマーサポート自動化

繰り返しのエンジニアリングリクエストをセルフサービスのワークフローに変換します。ビジネスチームが自分で実行します。エンジニアは関与不要。

02

Cron とレガシースクリプト管理

既存のシェルスクリプト、Python スクリプト、HTTP 呼び出し、定期ジョブを、書き換えずに Dagu に取り込めます。

03

インフラとサーバー自動化

SSHバックアップ、クリーンアップ、デプロイスクリプト、パッチ作業、事前条件チェック、ライフサイクルフックを調整できます。

04

ETLとデータ運用

PostgreSQLやSQLiteのクエリ、S3転送、jq変換、検証ステップ、再利用可能なサブワークフローを実行できます。

05

GitHub を操作画面に。実行基盤はあなたのインフラに。

マネージドDagu GitHub Appを通じて、issueやPRからのGitHubイベントでDaguの実行をトリガーします。

06

コンテナとKubernetesワークフロー

各ステップでDockerイメージ、Kubernetes Job、シェルコマンド、検証ステップを実行するワークフローを構成できます。

07

メディア変換

ffmpeg、サムネイル抽出、音声正規化、画像処理などの重いジョブをワーカーに分散して実行できます。

08

IoTとエッジワークフロー

小型デバイスでセンサー取得、ローカルクリーンアップ、オフライン同期、ヘルスチェック、保守ジョブを実行できます。

09

AI エージェントワークフロー

クリーンなコンテキストと自動リトライ・フェイルオーバーにより、特定の開発ワークフローを自動化するあらゆるハーネスを実行します。

よくあるパターン

Health Check
SSH Backup
Notify

非公開スクリプトワークフロー

非公開スクリプト、社内 CLI、再利用可能なアクション、固定ツール、成果物を、他チームが安全に依頼または実行できるワークフローにします。

  • 1既存のスクリプトやコマンドをそのまま使う
  • 2広い本番アクセスではなく限定されたパラメータを公開する
  • 3型付き出力を持つバージョン付き Dagu Actions を呼び出す
  • 4レポートとログを第一級の成果物として保存する
workflow.yaml
tools:
  - jqlang/jq@jq-1.7.1

steps:
  - id: collect
    action: acme/dagu-action-export@v1.4.2
    with:
      dataset: customers

  - id: transform
    run: jq '.items[] | {id, email}' ${collect.outputs.path}
    stdout:
      artifact: reports/customers.json
    depends: [collect]

  - id: publish
    action: outputs.write
    with:
      values:
        report: reports/customers.json
        rows: ${collect.outputs.rows}
    depends: [transform]

型付きパラメーター

Daguはそれらを型付きパラメーター入力フォームとしてWeb UIに自動的にレンダリングします。非エンジニアによるセルフサービスワークフローや操作に役立ちます。

workflow.yaml
tools:
  - jqlang/jq@jq-1.7.1

steps:
  - id: inspect
    run: jq --version

  - id: summarize
    action: python-script@v1
    with:
      input:
        rows: [42, 8]
      script: |
        return {"total": sum(input["rows"])}

ツールの準備には、デフォルトのプロバイダーとして aqua を使います。

SlackのマルチプレイヤーAIエージェント

SlackのAIエージェントがワークフローの管理、障害のデバッグ、インシデントの復旧を支援します。

DaguDagu
メッセージ...

本格的なワークフロー機能

Daguはプロダクショングレードのワークフローエンジン機能を備えています。

開発者に愛されるツール

Dagu GitHubコミュニティからのリアルなコメント。

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

クイックスタート

ガイド付きインストーラーで Dagu を入れたら、詳しいインストールガイドやクイックスタートに進めます。

1

dagu コマンドをインストール

最も簡単なのはスクリプトインストーラーです。Homebrew、npm、Docker も使えますが、そちらはバイナリまたはコンテナの導入のみです。

Mac/Linux ターミナル
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ ガイド付きインストーラーを開始
任意

AI ツールを接続

Workflow 作成には Dagu スキルをインストールし、実行中の Dagu サーバー操作には MCP クライアントを接続します。

Dagu スキル
$gh skill install dagucloud/dagu dagu

Claude Code、Codex、Gemini CLI などの AI コーディングツールが Dagu YAML を作成できるようにします。

Dagu MCP エンドポイント
URLhttp://localhost:8080/mcp

MCP 対応クライアントが Dagu の状態を読み取り、変更をプレビューし、DAG run を操作できます。

OIDC/SSO による MCP アクセスはエンタープライズ向けに提供しています。設定については お問い合わせ ください。

2

次のステップ

ガイド付きインストーラーが初回セットアップをそのまま完了できます。

# インストーラーでできること
Dagu を PATH に追加
バックグラウンドサービスを設定
最初の管理者を作成して確認

プロジェクトコミュニティ

使い方の相談、Issue の報告、開発状況の確認ができます。

ソリューションパートナー

顧客プロジェクト向けのソリューションパートナー支援

Dagu を顧客向けプロダクト、社内プラットフォーム、マネージドサービスに組み込むチームに、エンタープライズ機能と実装支援を提供します。

セキュリティモデル、連携方法、運用計画を一緒に設計し、広い本番アクセスを渡さずに Dagu を顧客プロジェクトへ自然に組み込めるよう支援します。

お問い合わせ

Enterprise OIDC/SSO とアクセス制御

エージェントと顧客ワークフロー向けの MCP サポート

セルフホスト、マネージド、ハイブリッド構成のアーキテクチャレビュー

プライベートワーカー、シークレット、ネットワーク内実行の設計

スクリプトや runbook の顧客向けワークフロー化

プロジェクト納品から本番ローンチまでの専任支援