# Output Framework > Open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code — ships with prompts, evals, tracing, cost tracking, credentials, and orchestration in one framework, so you stop stitching together SaaS subscriptions. ## Docs - [Home](https://growthx-changeset-release-main.mintlify.site/index.md): The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code — describe what you want, Claude builds it, with all the best practices already in place. - [Getting Started](https://growthx-changeset-release-main.mintlify.site/start-here/getting-started.md): Create your first Output workflow in minutes - [Claude Code](https://growthx-changeset-release-main.mintlify.site/start-here/claude-code.md): Output is the first programming framework designed for AI coding agents — and Claude Code is how you use it - [Learning Path](https://growthx-changeset-release-main.mintlify.site/start-here/learning-path.md): Recommended reading order for learning Output.ai - [The workflow.ts File](https://growthx-changeset-release-main.mintlify.site/workflows/index.md): Define durable, deterministic orchestration logic - [Execution Context](https://growthx-changeset-release-main.mintlify.site/workflows/context.md): Access workflow execution information and control flow - [Composing with Child Workflows](https://growthx-changeset-release-main.mintlify.site/workflows/child-workflows.md): Compose workflows by invoking other workflows - [Parallel Execution](https://growthx-changeset-release-main.mintlify.site/workflows/parallel-execution.md): Run steps, evaluators, or child workflows in parallel with optional concurrency control - [External Integration](https://growthx-changeset-release-main.mintlify.site/workflows/external-integration.md): Send data out, receive input, and query status while workflows run - [Running Workflows](https://growthx-changeset-release-main.mintlify.site/workflows/running.md): Execute workflows from the CLI — synchronously, asynchronously, and with scenario files - [The steps.ts File](https://growthx-changeset-release-main.mintlify.site/steps/index.md): Reusable units of work that handle I/O operations - [Step Patterns & Best Practices](https://growthx-changeset-release-main.mintlify.site/steps/best-practices.md): Organize steps, extract utilities, share across workflows, and use evaluators for flow control - [Writing Prompt Files](https://growthx-changeset-release-main.mintlify.site/prompts/index.md): Version-controlled prompts with YAML configuration and XML message blocks - [Templating with Variables](https://growthx-changeset-release-main.mintlify.site/prompts/templating.md): Use Liquid.js to create dynamic prompts with variables, conditionals, and loops - [Skills](https://growthx-changeset-release-main.mintlify.site/prompts/skills.md): Load detailed instructions on demand to keep prompts lightweight - [Production Prompts](https://growthx-changeset-release-main.mintlify.site/prompts/best-practices.md): Write effective prompts for production AI workflows - [Connecting to External APIs](https://growthx-changeset-release-main.mintlify.site/clients/index.md): Build typed, observable API clients for reliable third-party integrations - [Cost Estimation](https://growthx-changeset-release-main.mintlify.site/costs/index.md): See what your workflows cost — LLM tokens, API calls, and external services — with a single CLI command - [Cost Events](https://growthx-changeset-release-main.mintlify.site/costs/cost-events.md): Monitor LLM and HTTP request costs in real time — cost:llm:request and cost:http:request hook events for logging, alerting, and aggregation - [Overview](https://growthx-changeset-release-main.mintlify.site/evaluators/index.md): Score LLM output, control workflow flow, and test quality across datasets - [Evaluator Step](https://growthx-changeset-release-main.mintlify.site/evaluators/evaluator-step.md): Build evaluators that score LLM output with confidence levels and use the results to control workflow flow - [Overview](https://growthx-changeset-release-main.mintlify.site/evaluators/workflow-evaluators.md): Test workflow quality across datasets without modifying your workflow code - [Verdict Helpers](https://growthx-changeset-release-main.mintlify.site/evaluators/verdicts.md): Deterministic assertions, manual verdicts, and LLM result wrappers for workflow evaluators - [Datasets](https://growthx-changeset-release-main.mintlify.site/evaluators/datasets.md): Define test cases as YAML files with inputs, cached outputs, and ground truth for workflow evaluators - [Running from CLI](https://growthx-changeset-release-main.mintlify.site/evaluators/datasets-and-cli.md): Wire evaluators into an eval workflow and run them against datasets from the CLI - [LLM-as-a-Judge Best Practices](https://growthx-changeset-release-main.mintlify.site/evaluators/best-practices.md): Write effective judge prompts, choose the right grading scale, and build reliable evaluators for production - [Credentials](https://growthx-changeset-release-main.mintlify.site/operations/credentials.md): Manage encrypted secrets across environments and workflows with scoped access and secure key resolution - [Error Handling](https://growthx-changeset-release-main.mintlify.site/operations/error-handling.md): How workflow and activity interceptors classify errors, when execution retries or stops, and how to match causes with hasErrorType - [Error Hooks](https://growthx-changeset-release-main.mintlify.site/operations/error-hooks.md): Observe workflow, activity, and runtime errors without affecting execution - [External Workflow Packages](https://growthx-changeset-release-main.mintlify.site/operations/external-workflow-packages.md): Publish workflows as npm packages and call them from local Output workflows - [Testing Workflows and Steps](https://growthx-changeset-release-main.mintlify.site/operations/testing.md): Write deterministic unit tests for workflows, steps, and evaluators by calling them as plain functions - [Worker Tuning](https://growthx-changeset-release-main.mintlify.site/operations/worker-tuning.md): Configure Temporal worker concurrency, polling, cache size, and Worker tuners - [Tracing: Full Visibility](https://growthx-changeset-release-main.mintlify.site/operations/tracing.md): How workflow execution is traced, where traces are stored, and how to enable local or remote tracing - [Deployment overview](https://growthx-changeset-release-main.mintlify.site/operations/deployment.md): Deploy your Output workflows to production - [Deploy to Render](https://growthx-changeset-release-main.mintlify.site/operations/deployment/render.md): Step-by-step guide to deploying Output workflows on Render - [Deploy to Railway](https://growthx-changeset-release-main.mintlify.site/operations/deployment/railway.md): Step-by-step guide to deploying Output workflows on Railway - [Advanced configuration](https://growthx-changeset-release-main.mintlify.site/operations/deployment/advanced.md): Remote tracing, S3 upload, and other optional production features - [Overview](https://growthx-changeset-release-main.mintlify.site/api/index.md): How your application communicates with Output workflows over HTTP - [Configuration](https://growthx-changeset-release-main.mintlify.site/api/configuration.md): Base URL and environment variables for the Output API server - [Authentication](https://growthx-changeset-release-main.mintlify.site/api/authentication.md): How authentication works for the Output API - [Error Responses](https://growthx-changeset-release-main.mintlify.site/api/errors.md): Error codes and response format for the Output API - [Health check the API](https://growthx-changeset-release-main.mintlify.site/api-reference/health-check-the-api.md) - [Check if the API is ready to answer requests](https://growthx-changeset-release-main.mintlify.site/api-reference/check-if-the-api-is-ready-to-answer-requests.md) - [Execute a workflow synchronously](https://growthx-changeset-release-main.mintlify.site/api-reference/execute-a-workflow-synchronously.md): Executes a workflow and waits for it to complete before returning the result - [Start a workflow asynchronously](https://growthx-changeset-release-main.mintlify.site/api-reference/start-a-workflow-asynchronously.md) - [Get workflow execution status (latest run)](https://growthx-changeset-release-main.mintlify.site/api-reference/get-workflow-execution-status-latest-run.md): Returns the status of the latest run for the given workflow. To pin a specific run, use `/workflow/{id}/runs/{rid}/status`. - [Get workflow execution status for a specific run](https://growthx-changeset-release-main.mintlify.site/api-reference/get-workflow-execution-status-for-a-specific-run.md) - [Stop a specific workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/stop-a-specific-workflow-run.md) - [[Deprecated] Stop the latest workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/[deprecated]-stop-the-latest-workflow-run.md): Stops the latest run of the given workflow. The returned `runId` reflects the run at describe-time and may differ from the cancelled run if a new execution started concurrently. Deprecated; use `PATCH /workflow/{id}/runs/{rid}/stop` to pin a specific run. Scheduled for removal after 2026-07-16. - [Terminate a specific workflow run (force stop)](https://growthx-changeset-release-main.mintlify.site/api-reference/terminate-a-specific-workflow-run-force-stop.md): Force terminates a workflow run. Unlike stop/cancel, terminate immediately stops the run without allowing cleanup. - [[Deprecated] Terminate the latest workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/[deprecated]-terminate-the-latest-workflow-run.md): Force terminates the latest run. Deprecated; use `POST /workflow/{id}/runs/{rid}/terminate` to target a specific run. Scheduled for removal after 2026-07-16. - [Reset a specific workflow run to re-run from after a completed step](https://growthx-changeset-release-main.mintlify.site/api-reference/reset-a-specific-workflow-run-to-re-run-from-after-a-completed-step.md): Resets a pinned workflow run to the point after a completed step, creating a new run that replays from that point. The current execution is terminated. - [[Deprecated] Reset the latest workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/[deprecated]-reset-the-latest-workflow-run.md): Resets the latest run. Deprecated; use `POST /workflow/{id}/runs/{rid}/reset` to target a specific run. Scheduled for removal after 2026-07-16. - [Return the result of a workflow (latest run)](https://growthx-changeset-release-main.mintlify.site/api-reference/return-the-result-of-a-workflow-latest-run.md): Returns the result of the latest run for the given workflow. To pin a specific run, use `/workflow/{id}/runs/{rid}/result`. - [Return the result of a specific workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/return-the-result-of-a-specific-workflow-run.md) - [Return the original input of a workflow (latest run)](https://growthx-changeset-release-main.mintlify.site/api-reference/return-the-original-input-of-a-workflow-latest-run.md): Returns the original input passed to the latest run of the given workflow. Works for workflows in any state, including running. To pin a specific run, use `/workflow/{id}/runs/{rid}/input`. - [Return the original input of a specific workflow run](https://growthx-changeset-release-main.mintlify.site/api-reference/return-the-original-input-of-a-specific-workflow-run.md) - [Get workflow trace log data (latest run)](https://growthx-changeset-release-main.mintlify.site/api-reference/get-workflow-trace-log-data-latest-run.md): Returns trace data for the latest run of the given workflow. If trace is stored remotely (S3), fetches and returns the data inline. If trace is local only, returns the local path. To pin a specific run, use `/workflow/{id}/runs/{rid}/trace-log`. - [Get workflow trace log data for a specific run](https://growthx-changeset-release-main.mintlify.site/api-reference/get-workflow-trace-log-data-for-a-specific-run.md): Returns trace data for a pinned workflow run. If trace is stored remotely (S3), fetches and returns the data inline. If trace is local only, returns the local path. - [Get paginated workflow execution history](https://growthx-changeset-release-main.mintlify.site/api-reference/get-paginated-workflow-execution-history.md): Returns decoded Temporal history events with optional payload inclusion. First page includes workflow metadata; subsequent pages return events only. - [Get paginated workflow execution history for a specific run](https://growthx-changeset-release-main.mintlify.site/api-reference/get-paginated-workflow-execution-history-for-a-specific-run.md) - [Stream workflow history events via Server-Sent Events](https://growthx-changeset-release-main.mintlify.site/api-reference/stream-workflow-history-events-via-server-sent-events.md): Opens a persistent SSE connection that delivers Temporal workflow history events in real time. Emits named events: `workflow` (metadata, once), `history` (event batches), `done` (terminal state), `server_error` (post-flush errors). The `done` event carries `{ reason, newRunId? }` where `reason` is t… - [Stream pinned-run workflow history events via Server-Sent Events](https://growthx-changeset-release-main.mintlify.site/api-reference/stream-pinned-run-workflow-history-events-via-server-sent-events.md): Same as /workflow/{id}/history/stream but targets a specific run ID. - [Get a specific workflow catalog by ID](https://growthx-changeset-release-main.mintlify.site/api-reference/get-a-specific-workflow-catalog-by-id.md) - [Get the default workflow catalog](https://growthx-changeset-release-main.mintlify.site/api-reference/get-the-default-workflow-catalog.md) - [List workflow runs](https://growthx-changeset-release-main.mintlify.site/api-reference/list-workflow-runs.md): Returns a list of workflow runs with optional filtering by workflow type - [Send feedback to a workflow](https://growthx-changeset-release-main.mintlify.site/api-reference/send-feedback-to-a-workflow.md): Always targets the latest run; `runId` cannot be pinned for Temporal signal operations. - [Send a signal to an workflow](https://growthx-changeset-release-main.mintlify.site/api-reference/send-a-signal-to-an-workflow.md): Always targets the latest run; `runId` cannot be pinned for Temporal signal operations. - [Send a query to an workflow](https://growthx-changeset-release-main.mintlify.site/api-reference/send-a-query-to-an-workflow.md): Always targets the latest run; `runId` cannot be pinned for Temporal query operations. - [Execute an update on an workflow](https://growthx-changeset-release-main.mintlify.site/api-reference/execute-an-update-on-an-workflow.md): Always targets the latest run; `runId` cannot be pinned for Temporal update operations. - [A dummy post endpoint for test only](https://growthx-changeset-release-main.mintlify.site/api-reference/a-dummy-post-endpoint-for-test-only.md) - [@outputai/core](https://growthx-changeset-release-main.mintlify.site/packages/core.md): Workflow orchestration, worker runtime, and the building blocks for every Output app - [@outputai/cli](https://growthx-changeset-release-main.mintlify.site/packages/cli.md): Command-line interface for creating, running, and debugging Output workflows - [@outputai/credentials](https://growthx-changeset-release-main.mintlify.site/packages/credentials.md): Encrypted secrets management with scoped access across global, environment, and workflow levels - [@outputai/evals](https://growthx-changeset-release-main.mintlify.site/packages/evals.md): Workflow evaluation using datasets, typed evaluators, and deterministic or LLM-based assertions - [@outputai/http](https://growthx-changeset-release-main.mintlify.site/packages/http.md): Make traceable HTTP requests from your steps - [@outputai/llm](https://growthx-changeset-release-main.mintlify.site/packages/llm.md): Generate and stream text, structured outputs, and images with prompt file management - [Changelog](https://growthx-changeset-release-main.mintlify.site/changelog/index.md): Release notes for the Output framework. Every change to @outputai/* packages and output-api shows up here. - [Migrations](https://growthx-changeset-release-main.mintlify.site/migrations/index.md): Upgrade guides for moving between versions of the Output framework. - [v0.1.12 → v0.2.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.1.12-to-v0.2.0.md): Upgrading Output.ai projects from v0.1.12 to v0.2.0. Covers dataset file format changes and deprecated workflow run endpoints. - [v0.2.0 → v0.3.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.2.0-to-v0.3.0.md): Upgrading Output.ai projects from v0.2.0 to v0.3.0: New LLM cost payload format and cost event name change. - [v0.3.0 → v0.4.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.3.0-to-v0.4.0.md): Upgrading Output.ai projects from v0.3.0 to v0.4.0: New package.json config section. - [v0.4.0 → v0.5.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.4.0-to-v0.5.0.md): Upgrading Output.ai projects from v0.4.0 to v0.5.0: HTTP and LLM cost API and cost event payload changes. - [v0.5.2 → v0.6.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.5.2-to-v0.6.0.md): Upgrading Output.ai projects from v0.5.2 to v0.6.0: hook payload context objects and trace run ids. - [v0.6.0 → v0.7.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.6.0-to-v0.7.0.md): Upgrading Output.ai projects from v0.6.0 to v0.7.0: removed web search tool re-exports and provider list helper rename. - [v0.7.0 → v0.8.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.7.0-to-v0.8.0.md): Upgrading Output.ai projects from v0.7.0 to v0.8.0: workflow result aggregations removal, workflow invocation options, and child workflow execution semantics. - [v0.8.0 → v0.9.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.8.0-to-v0.9.0.md): Upgrading Output.ai projects from v0.8.0 to v0.9.0: the CLI replaces --format json with the native --json flag. - [v0.9.0 → v0.10.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.9.0-to-v0.10.0.md): Upgrading Output.ai projects from v0.9.0 to v0.10.0: trace destinations now omit unavailable outputs and sendHttpRequest returns metadata by default. - [v0.10.0 → v0.11.0](https://growthx-changeset-release-main.mintlify.site/migrations/v0.10.0-to-v0.11.0.md): Upgrading Output.ai projects from v0.10.0 to v0.11.0: workflow results and error handling, parsed component schemas, Temporal worker cutover, and other breaking changes. - [Overview](https://growthx-changeset-release-main.mintlify.site/cookbook/overview.md): Recipes, best practices and integrations for building with Output. - [Zapier SDK](https://growthx-changeset-release-main.mintlify.site/cookbook/zapier-sdk.md): Call Zapier-managed app connections from inside Output steps — no OAuth plumbing, full traces, automatic retries. ## OpenAPI Specs - [openapi](https://growthx-changeset-release-main.mintlify.site/openapi.json)