A plan engine for repeatable, AI-augmented workflows.
graph runs multi-step plans where the steps are deterministic and
inference happens only where you put it. Author a plan once, review it,
and run it forever — in your terminal or in CI.
- Plan-based execution engine — validated multi-step plans with
{{Ex.path}}dataflow between steps and inference only where placed (prompt-tool steps, a solver finish). Deterministic, reviewable, 0–1 LLM calls per run. The LLM planner (plan_and_execute) authors validated plans on the fly and replans against real errors; each user-authored plan document is exposed as a tool of its own, so plans compose. - Exit gates — declarative
when/inferconditions that short-circuit a plan (success or failure) before wasting steps, with CI-friendly exit codes. - MCP tools — connect any Model Context Protocol server (stdio or HTTP).
- User-defined tools — YAML definitions for exec/shell and prompt
tools, plus bundled
builtin__tool packs. - Plain-file storage — threads and tool shape knowledge live as JSON/JSONL files under the data directory: greppable, safe under concurrent runs, and trivially backed up.
- Bring your own models — Anthropic, OpenAI, OpenAI-compatible (local), and AWS Bedrock, assignable per role (chat, planner, solver, judge, …).
- Chat workbench —
graph askandgraph chatrun a tool-calling agent loop for probing tools and prototyping workflows before freezing them into plans.
| Crate | Contents |
|---|---|
graph-cli |
binary: command tree, REPL, output UX |
graph-core |
agent loop, plan pipeline, template renderer, prompts |
graph-llm |
provider abstraction (tool use, structured output, streaming) |
graph-mcp |
MCP client manager and tool adaptation |
graph-store |
file-based and in-memory storage backends |
graph-config |
layered TOML config + YAML plan/tool documents |
Tooling (Rust, pkg-config) and tasks are managed with
mise. OpenSSL can come from anywhere (nix, Homebrew,
…) as long as pkg-config can resolve it:
mise trust
mise install
mise run buildCommon tasks: mise run test, mise run lint,
mise run run -- config show.
OpenSSL (from nix, Homebrew, or apt) must be resolvable via pkg-config.
Plain cargo build works.
The docs/ directory is the canonical reference for plan format, template
language, tool definitions, and CLI surface. Start with
docs/getting-started/concepts.mdx.
MIT — see LICENSE.
To the people whose ideas and code shaped graph's design: @salscode, @mrhamric, @gjdame, @bryceholcomb, @Korywon, @brianhasenstab, @ashleyhomen, and @emichy.