llm-output-schema-cons…
Zod schema constraints that Anthropic rejects or silently ignores when sent as structured-output tool definitions via aiSdk.Output.object(). Use when writing…
Calculate and display the cost of an Output SDK workflow execution run. Use when checking LLM token costs, API service costs, or total spend for a specific workflow run.
$ npx -y skills add growthxai/output --skill output-dev-workflow-cost --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/output-dev-workflow-costContext preview
The summary Claude sees to decide when to auto-load this skill.
Calculate and display the cost of an Output SDK workflow execution run. Use when checking LLM token costs, API service costs, or total spend for a specific workflow run.
name: output-dev-workflow-cost description: Calculate and display the cost of an Output SDK workflow execution run. Use when checking LLM token costs, API service costs, or total spend for a specific workflow run. allowed-tools: [Bash]
This skill helps you calculate the cost of a completed workflow execution using the Output CLI. It breaks down costs by LLM model (token usage) and external API service calls.
---
The `workflow cost` command requires a **workflow run ID** — not the workflow name.
A run ID looks like: `process_transcripts_2026-03-23T19:35:17.000Z_c2biRk_F9rYktF-wagBf5`
**Option A — List recent runs** (use skill: `output-workflow-runs-list`):
npx output workflow runs list <workflowName> --limit 5
Copy the run ID from the most recent completed run.
**Option B — Run the workflow now and capture the ID:**
If you know the input, run it synchronously and the run ID will be in the output:
npx output workflow run <workflowName> --input '{"key": "value"}'Or asynchronously (use skill: `output-workflow-start`):
npx output workflow start <workflowName> --input '{"key": "value"}'
# Returns: Workflow ID: <runId>If you don't know the input, check for a scenario file (use skill: `output-dev-scenario-file`) or the workflow's `inputSchema` in its `types.ts`.
> **Note:** The workflow **name** (e.g. `process_transcripts`) identifies the workflow type. The workflow **run ID** (e.g. `process_transcripts_2026-03-23T19:35:17.000Z_abc123`) identifies a specific execution. `workflow cost` requires the run ID.
---
npx output workflow cost <runId>
npx output workflow cost <runId> path/to/trace.json
npx output workflow cost <runId> --json
npx output workflow cost <runId> --verbose
| Flag | Description | Default | |------|-------------|---------| | `--json` | Output machine-readable JSON instead of the text report | `false` | | `--verbose` | Show detailed per-LLM-call breakdown | `false` |
---
> Pricing values are illustrative — the model and per-token rates shown below were current as of 2026-05-04. Live pricing comes from [models.dev](https://models.dev). For current model IDs, see [`output-dev-model-selection`](../output-dev-model-selection/SKILL.md).
Costs come in two figures per row: **Original** is the as-charged cost recorded in the trace attributes (`llm:generation:cost` / `http:request:cost`, with `llm:generation:usage` and legacy `llm:usage` fallbacks), and **Adjusted** is the cost after applying any `costs.yml` override (equal to Original when no override applies). The bottom line and JSON `totalCost` are the Adjusted total.
Workflow: process_transcripts Duration: 12.3s LLM Costs: Model | Calls | Original | Adjusted claude-sonnet-4-6 | 3 | $0.0123 | $0.0123 Subtotal | 3 | $0.0123 | $0.0123 API Costs: Host | Calls | Original | Adjusted r.jina.ai | 2 | $0.0040 | $0.0040 Subtotal | 2 | $0.0040 | $0.0040 TOTAL ESTIMATED COST (adjusted) $0.0163 As-charged (from trace) $0.0163
{
"workflowName": "process_transcripts",
"durationMs": 12300,
"llmOriginalCost": 0.0123,
"llmAdjustedCost": 0.0123,
"totalInputTokens": 1234,
"totalOutputTokens": 567,
"httpCosts": [{ "host": "r.jina.ai", "originalTotalCost": 0.004, "adjustedTotalCost": 0.004 }],
"httpOriginalCost": 0.004,
"httpAdjustedCost": 0.004,
"originalTotalCost": 0.0163,
"totalCost": 0.0163
}Per-call entries in `llmCalls` and `httpCosts[].calls` carry `originalCost` and `adjustedCost`. (Older releases exposed `llmTotalCost`, `services[]`, `serviceTotalCost`, and `unknownModels` — replaced by the fields above.)
---
**Get cost of the last run:**
# First get the run ID npx output workflow runs list process_transcripts --limit 1 --json # Then get the cost npx output workflow cost process_transcripts_2026-03-23T19:35:17.000Z_abc123
**Get cost as JSON and extract total:**
npx output workflow cost <runId> --json | jq '.totalCost'
**Show full per-call breakdown:**
npx output workflow cost <runId> --verbose
---
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. One framework.
Repo: growthxai/output
Zod schema constraints that Anthropic rejects or silently ignores when sent as structured-output tool definitions via aiSdk.Output.object(). Use when writing…
Guide to the providerOptions structure in .prompt files — decision tree for where an option goes, common mistakes, per-provider quick reference, and Anthropic…
Implement an Output SDK workflow from a plan document. Use when the user asks to build, implement, or code a workflow from an existing plan, or after…
View and edit encrypted credentials in an Output.ai project. Use when adding secrets, updating API keys, verifying credential values, or retrieving a specific…
Wire encrypted credentials to environment variables using the credential: convention. Use when setting up LLM provider keys (ANTHROPIC_API_KEY, OPENAI_API_KEY)…