Install on macOS
On macOS the engine schedules pipelines with launchd. There's no build step and no installer: you clone the repo, install its dependencies with Bun, and run the CLI straight from the checkout.
What you need
- Bun, the runtime and test runner (tested with 1.3.9).
- A compatible Node on the
PATH(tested with 22.22.2): some dependencies expect it even though the engine runs on Bun. git, plus any binary a pipeline declares inrequires.bin. The examples in these docs and the starter pipelines usejq.- An Anthropic API key, only for pipelines with
agentsteps. Shell-only pipelines don't need one.
Clone and install
git clone https://github.com/startcat/agentic-pipelines.gitcd agentic-pipelinesbun installbun run src/cli/index.ts --helpThe CLI runs directly on Bun. To have it available as pipelines on your PATH, link the binary declared in package.json with your package manager, or create an alias:
alias pipelines="bun run /path/to/agentic-pipelines/src/cli/index.ts"Add the alias to your ~/.zshrc so new shells have it.
Install from the checkout you intend to keep. The launchd plist freezes the absolute path of index.ts at the moment you run pipelines install. If you install from a git worktree and delete it later, the job points at a path that no longer exists, and the next scheduled run fails with no prior warning.
Your Anthropic API key
agent steps authenticate with an Anthropic API key. Create one in the Claude Console and put it in your data repo's .env:
echo 'ANTHROPIC_API_KEY=sk-ant-...' >> .envThe data repo's .env is the only place a scheduled run from launchd can read it from. It can also come from the environment, but the .env value wins. You don't declare it in any YAML: the engine reads it by itself and passes it only to agent steps, never to shell steps or notification channels.
.env must be in the data repo's .gitignore. Your first pipeline creates a data repo with the right .gitignore from the start.
Check the machine
pipelines doctor <name> checks that this machine can run a given pipeline: agents, binaries, MCP servers, environment variables, network resolution and, when the pipeline has agent steps, the Anthropic API key. If a secret's name depends on params, give them with --set key=value, or let doctor read the ones install saved. Run it before installing anything on a schedule.
Next
- Your first pipeline, to write one from scratch.
- Or clone pipelines-starter and install one of its seven pipelines with a single command.