Declarative workflow orchestrator for AI agents.
onegai runs workflows that combine AI agent skills with shell commands. Workflows are YAML files defining jobs and steps with DAG-based dependency resolution.
# .claude/workflows/dev/implement.yml
name: Implement and review
jobs:
implement:
steps:
- skill: dev/impl
id: impl
- skill: dev/review
inputs:
changes: ${{ steps.impl.outputs.changes }}
lint:
steps:
- run: bun run lint
integrate:
needs: [implement, lint]
steps:
- run: echo "All checks passed"Skills are Markdown files with frontmatter declaring inputs, provider, and tools:
# .claude/skills/dev/impl.md
---
provider: claude
model: sonnet
tools: [Read, Edit, Write, Bash]
inputs:
what: 実装内容
where:
description: 対象ファイル
type: plain
---
指定されたファイルに対して実装を行う。- Hallucination suppression: Evidenced inputs require citations. onegai verifies citations exist before execution (Intent Gate).
- Progressive disclosure: Workers receive only what they need. Process isolation prevents context leakage.
- Declarative workflows: Jobs, steps, and dependencies defined in YAML. No code changes to add workflows.
- Claude Code CLI installed and authenticated
- Node.js >= 20
npm install -g @onegai/cliFor development:
bun installonegai run <workflow.yml> [--input key=json] # Run a workflow
onegai workflows [--context] # List available workflows
onegai inspect <workflow.yml> # Show required inputs as JSON
onegai view <run-id> [--json] # View run resultsonegai workflowsshows available workflows with their required inputsonegai runvalidates inputs (Intent Gate), resolves the DAG, executes jobs in parallel batchesskill:steps run via Claude Agent SDK with process isolationrun:steps execute shell commands- Step outputs flow via
${{ steps.<id>.outputs.<key> }}references - Results are persisted in
.onegai/runs/
.claude/
workflows/ # Workflow definitions (.yml)
skills/ # Skill definitions (.md)
hooks/ # Claude Code hooks
Skills are resolved from: project .claude/skills/, repo root, ~/.claude/skills/.