Getting started
Install
bash
git clone https://github.com/arcpx-eng/arc-dag.git
cd arc-dag
npm install
npm run buildDocumentation site (maintainers, optional)
Not part of the npm package. From a git clone, with Node >= 20:
bash
cd docs-site && npm install && npm start # http://localhost:3000Node.js >= 18
Run an example (no API keys)
bash
npm run quickstart # 3-node linear
npm run run:fan-in # 4-node fan-in
npm run run:fan-out # 4-node fan-outSee Scripts and Example pipelines.
TypeScript quick start
typescript
import {
GraphEngine,
loadFlowFromFile,
createBuiltinNodeExecutor,
} from "arc-dag";
const flow = await loadFlowFromFile("./pipeline.json");
const engine = new GraphEngine({
flow,
llm: {
provider: "bedrock",
apiKey: process.env.BEDROCK_API_KEY!,
modelId: "us.anthropic.claude-sonnet-4-6",
region: "us-east-1",
},
globalSettings: {
temperature: 0.5,
systemPrompt: "You are a helpful assistant",
},
nodeExecutor: createBuiltinNodeExecutor(),
});
const outputs = await engine.run();
console.log(Object.fromEntries(outputs));See LLM configuration for OpenAI-compatible providers and all options. Custom handlers: BYO LLM.
Project layout
arc-dag/
├── src/ # Library (GraphEngine, parsers)
├── docs/ # Documentation
├── examples/ # Pipelines + runners
├── .env.template # OpenAI-compatible LLM → copy to .env
├── .env.bedrock.template # Bedrock (node.type LLM) → copy to .env.bedrock
└── dist/ # Build outputNext steps
- Payload guide — JSON format and normalization
- Bring your own LLM — real
genText/ chat nodes - ArcPX integration — design on arcpx.com, export JSON
- Node handlers — fix “No local handler for …” stubs