oxy-automations

oxy-automations is a skill for Claude Code, Codex from oxy-hq/oxygen. It costs 140 tokens per session (1,543 once invoked), scanned A, original, Apache-2.0.

A guide for writing, reviewing, and debugging Oxy automation workflow files. An automation is a configured workflow that can run tasks, loops, variables, or schedules.

In plain words
What is it for?
It helps create new automation files, migrate legacy procedure files, diagnose missing workflows, and investigate task, schedule, and variable problems.
Why use it?
It prevents common configuration mistakes, including using an unrecognised filename or assuming local HTTP behaviour will match cloud runs.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It helps create new automation files, migrate legacy procedure files, diagnose missing workflows, and investigate task, schedule, and variable problems.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/oxy-hq/oxygen/oxy-automations
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add oxy-hq/oxygen --skill oxy-automations
Clone the repo
git clone --depth 1 https://github.com/oxy-hq/oxygen

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for oxy-automations

README.md
[![agentmods](https://agentmods.dev/badge/skills/oxy-hq/oxygen/oxy-automations/github.svg)](https://agentmods.dev/skills/oxy-hq/oxygen/oxy-automations)
Your own site
<a href="https://agentmods.dev/skills/oxy-hq/oxygen/oxy-automations"><img src="https://agentmods.dev/badge/skills/oxy-hq/oxygen/oxy-automations/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for oxy-automations

Your own site · 80×15
<a href="https://agentmods.dev/skills/oxy-hq/oxygen/oxy-automations"><img src="https://agentmods.dev/badge/skills/oxy-hq/oxygen/oxy-automations.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 140 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,543 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00140 $0.01543
Opus 5.5 $0.00056 $0.00617
Sonnet 5.5 $0.00028 $0.00309
Haiku 4.5 $0.00014 $0.00154

Measured yesterday against content hash 4f8e5fd369c7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

oxy-automations scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

sdk/cli/skills/oxy-automations/SKILL.md · 114 lines

How it starts

The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Oxy automations

The reference is upstream and maintained — read it rather than guessing: https://www.oxygen-hq.com/docs/guide/build/automations (index, loops, task-types, variables).

This skill deliberately does not restate the schema. It carries the things that reference does not tell you, and the mistakes that cost time.

The file-naming trap

The canonical extension is .automation.yml.

  • .procedure.yml is the legacy name. It is still accepted, so a workspace full of it keeps working and nothing warns you — which is exactly why it spreads. One production workspace has 18 automations, and every one of them is still .procedure.yml.
  • .workflow.yml is no longer a recognised file kind at all. A file with that name is silently not an automation, and oxy run refuses it.
  • oxy migrate-automations renames legacy files (and rewrites references to them); --dry-run previews. It is the only thing that reads .workflow.yml files for that purpose.

Write new files as .automation.yml. Do not copy the extension from a neighbouring file in the workspace you are editing — that is how the legacy name propagated in the first place.

Naming, and why the code disagrees with the docs

"Automation" is the current name for what used to be called a Procedure, and before that a Workflow. The sub-automation task is still type: workflow, and API payloads and stored run records still say workflow — those are wire and storage contracts, not stale naming to be tidied up. Seeing workflow in a payload does not mean you are looking at something deprecated.

Routes follow the same split: /automations/:id is canonical; /workflows/:id, /procedures, and /agentic-workflows are aliases.

Task-type gotchas

  • A misspelled type: passes validation and fails only at run time. An unrecognised task type — type: sql, type: execute — is read as an "unknown" step rather than rejected, so oxy validate reports the file valid and the run fails on that step with unknown task type. Check every type: against the task-types page by eye, then run the automation; validation alone proves nothing here. (A wrong field inside a known type, such as query: instead of sql_query:, does fail validation.)
  • {{ step_name }} renders as JSON rows, not as a table. A prior SQL step's result renders into a template as a compact JSON list of row objects ([{"region": "west", "total": 42}, …]). That is what an agent or formatter prompt wants, and what a loop iterates over — but SELECT … FROM {{ extract }} sends that JSON to the warehouse as SQL and fails. To chain SQL steps, either inline the earlier query as a CTE in the later step, or have the earlier step write a table (CREATE OR REPLACE TABLE …) and read the table by name.
  • http_request is HTTPS-only and blocks private egress. Requests to localhost, cloud-metadata endpoints, and private IP ranges are refused unless that task opts in with allow_hosts. A task that works locally and fails in cloud is usually this, not a network problem.
  • Partial failures are their own state. A run where some steps failed records as completed_with_errors, not as a failed run. Code and dashboards that only check for "failed" will report it as a success.

Read the full file on GitHub · 114 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday Changed · +46 lines · +140 tokens per session 4f8e5fd369c7
  2. 2d ago First seen · 68 lines · 0 tokens per session scan A fd9f5f7f6098

Subscribe to this mod's changes

oxy-automations is a skill published in the GitHub repository oxy-hq/oxygen (203 stars, last pushed yesterday), licensed Apache-2.0. It adds 140 tokens to every session and 1,543 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-14.