A skill your agent uses when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch.

MITAuto-check passedProductivity & Automation

Install Oban

skills CLI
$ npx skills add oliver-kriska/claude-elixir-phoenix --skill oban -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install oliver-kriska/claude-elixir-phoenix oban --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/oliver-kriska/claude-elixir-phoenix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/targets/pi/skills/oban .claude/skills/oban && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
oban
GitHub stars
565
Token cost
~980 tokens
SKILL.md length
315 words
Files
5 (incl. references)
Skills in repo
109
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch.

  • Works in 7 steps: JOBS MUST BE IDEMPOTENT — Safe to retry.… → JOBS MUST STORE IDs, NOT STRUCTS — JSON… → JOBS MUST HANDLE ALL RETURN VALUES —… → …
  • Debugging Oban jobs
  • SKILL.md covers Oban Pro Detection, Iron Laws — Never Violate These, Quick Worker Template and Return Value Meanings, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Oban is an agent skill from oliver-kriska/claude-elixir-phoenix. Use when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch. Load it before touching job code; it holds the job rules.

Its SKILL.md is about 980 tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/oban-pro-basics.md`, `references/queue-config.md` and `references/testing-patterns.md`).

It sits in Productivity & Automation, covering Scheduled and recurring tasks. The repository describes itself as: Claude Code plugin for Elixir/Phoenix/LiveView — 26 specialist agents, Iron Laws enforcement, and Tidewave MCP integration. Plan features with parallel research agents, execute… The licence is MIT.

When your agent uses it

  • Debugging Oban jobs
  • Even for a how-to question: workers
  • Pro Workflow/Batch

Example prompts

  • “/oban”

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. JOBS MUST BE IDEMPOTENT — Safe to retry. Use idempotency keys for payments
  2. JOBS MUST STORE IDs, NOT STRUCTS — JSON serialization. %{user_id: 1} not %{user: %User{}}
  3. JOBS MUST HANDLE ALL RETURN VALUES — :ok, {:error, _}, {:cancel, _}, {:snooze, _}
  4. ARGS USE STRING KEYS — Pattern match %{"user_id" => id} not %{user_id: id}
  5. UNIQUE CONSTRAINTS FOR USER ACTIONS — Prevent double-click duplicates
  6. NEVER STORE LARGE DATA IN ARGS — Store references (IDs, paths), not content
  7. SMART ENGINE: NEVER USE attempt TO LIMIT SNOOZES — Snooze rolls back attempt counter. Use meta["snoozed"] instead. Causes infinite loops

What it can do on your machine

Read from SKILL.md and the folder at commit 9767a82. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are elixir and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Oban loads about 980 tokens when it runs, and up to ~5.7k if it reads all its reference files. Until then it costs about 54 tokens; SKILL.md has 315 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~54
When it runs · the whole SKILL.md, loaded when a task matches
~980
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from oliver-kriska/claude-elixir-phoenix at commit 9767a82, republished under its MIT licence (© oliver-kriska). 315 words, ~980 tokens.

Download SKILL.mdSave it as .claude/skills/oban/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
oban
description
Use when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch. Load it before touching job code; it holds the job rules.

Oban Background Jobs Reference

Quick reference for Elixir Oban patterns.

Oban Pro Detection

Before applying patterns, check for Oban Pro:

bash
grep -E "oban_pro|oban_web" mix.exs
grep -r "use Oban.Pro.Worker" lib/
grep -r "Oban.Pro.Engines.Smart" config/

If Oban Pro detected, use Pro patterns for ALL new workers:

Standard ObanOban Pro
use Oban.Workeruse Oban.Pro.Worker
def perform(%Job{})def process(%Job{})
Oban.TestingOban.Pro.Testing
Advisory lock engineOban.Pro.Engines.Smart

Pro features (all optional): args_schema (typed args), Workflows, Batches, Chunks, Relay, hooks, encryption, deadlines, chaining, Smart Engine (global concurrency + rate limiting). Pro plugins (DynamicCron, DynamicLifeline, DynamicPruner) enhance OSS equivalents — swap module, don't run both. See references/oban-pro-basics.md for all patterns and migration guide.


Iron Laws — Never Violate These

  1. JOBS MUST BE IDEMPOTENT — Safe to retry. Use idempotency keys for payments
  2. JOBS MUST STORE IDs, NOT STRUCTS — JSON serialization. %{user_id: 1} not %{user: %User{}}
  3. JOBS MUST HANDLE ALL RETURN VALUES — :ok, {:error, _}, {:cancel, _}, {:snooze, _}
  4. ARGS USE STRING KEYS — Pattern match %{"user_id" => id} not %{user_id: id}
  5. UNIQUE CONSTRAINTS FOR USER ACTIONS — Prevent double-click duplicates
  6. NEVER STORE LARGE DATA IN ARGS — Store references (IDs, paths), not content
  7. SMART ENGINE: NEVER USE attempt TO LIMIT SNOOZES — Snooze rolls back attempt counter. Use meta["snoozed"] instead. Causes infinite loops

Quick Worker Template

elixir
defmodule MyApp.Workers.ExampleWorker do
  use Oban.Worker,
    queue: :default,
    max_attempts: 5,
    unique: [period: {5, :minutes}, keys: [:entity_id]]

  @impl Oban.Worker
  def perform(%Oban.Job{args: %{"entity_id" => id}}) do
    case process(id) do
      {:ok, _} -> :ok
      {:error, :not_found} -> {:cancel, "Entity not found"}
      {:error, :rate_limited} -> {:snooze, {5, :minutes}}
      {:error, reason} -> {:error, reason}
    end
  end
end

Return Value Meanings

ReturnStateBehavior
:okcompletedSuccess
{:ok, value}completedSuccess with value
{:error, reason}retryableRetry with backoff
{:cancel, reason}cancelledStop permanently
{:snooze, seconds}scheduledDelay and retry

Quick Decisions

Which Queue?
  • Critical operations → High concurrency (20+)
  • Mailers/Webhooks (I/O) → Medium concurrency (30-50)
  • CPU-intensive → Low concurrency (3-5)
  • External APIs → Use dispatch_cooldown for rate limiting
Testing Pattern
elixir
use Oban.Testing, repo: MyApp.Repo

# Assert enqueued
assert_enqueued worker: MyApp.Worker, args: %{id: 1}

# Execute and verify
assert :ok = perform_job(MyApp.Worker, %{id: 1})

Common Anti-patterns

WrongRight
%{user_id: id} pattern match%{"user_id" => id} (string keys)
%{user: %User{}} in args%{user_id: 1} (IDs only)
No idempotency for paymentsUse idempotency keys
Ignoring return valuesHandle all outcomes explicitly

References

For detailed patterns, see:

  • references/worker-patterns.md - Worker options, backoff, timeout
  • references/queue-config.md - Queue design, pool sizing, cron, Smart Engine
  • references/testing-patterns.md - Testing, assertions, drain (OSS + Pro)
  • references/oban-pro-basics.md - Pro.Worker, Workflow, Batch, Chunk, Relay, plugins

© oliver-kriska, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (references) in targets/pi/skills/oban of oliver-kriska/claude-elixir-phoenix.

  • SKILL.md
  • references/oban-pro-basics.md
  • references/queue-config.md
  • references/testing-patterns.md
  • references/worker-patterns.md

Open the folder on GitHubat commit 9767a82

Compare with similar skills

Oban next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Oban compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Oban this skilloliver-kriska/claude-elixir-phoenix565—~980Automated safety check: PassMIT
OpenObserve PR Briefopenobserve/openobserve22k—~1.8kAutomated safety check: PassAGPL-3.0
AI Desk Cardop7418/ai-desk-card151—~2kAutomated safety check: NotesGPL-3.0
Afxcluesmith/codev288—~2.4kAutomated safety check: PassApache-2.0
Arandu Asyncarandu-io/arandu281—~2.7kAutomated safety check: PassMIT
Sentry Nextjs SDKgetsentry/sentry-for-ai268—~4.7kAutomated safety check: NotesApache-2.0

Similar skills

  • OpenObserve PR Brief

    openobserve/openobserve

    Produces a read-only morning brief of your open pull requests across the openobserve GitHub org, with a next step for each and a reminder for idle ones.

    22k GitHub stars~1.8k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • AI Desk Card

    op7418/ai-desk-card

    Drives an M5Paper e-ink desk display from an agent: probes device state, guides first-time setup, and pushes widgets such as calendar, todos and weather.

    151 GitHub stars~2k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check: notes
  • Afx

    cluesmith/codev

    Agent Farm CLI — the tool for spawning builders, managing Tower, workspaces, and cron tasks.

    288 GitHub stars~2.4k tokensUpdated 4 days ago
    Productivity & AutomationAuto-check passed
  • Arandu Async

    arandu-io/arandu

    Work that does not happen inside the request in an Arandu (Go) application -- background jobs and the worker, scheduled tasks, domain events through the outbox, listeners, notifications, mail and…

    281 GitHub stars~2.7k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Sentry Nextjs SDK

    getsentry/sentry-for-ai

    Official

    Full Sentry SDK setup for Next.js. An agent skill from getsentry/sentry-for-ai.

    268 GitHub stars~4.7k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • Daoyou NestJS API、认证、授权、Better Auth、ALTCHA、admin、internal cron、LLM header 安全和服务端输入校验指南。Use when adding or modifying apps/api/src controllers, guards, middleware, auth, admin endpoints, cron/internal…

    146 GitHub stars~3k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from oliver-kriska/claude-elixir-phoenix

All 109 skills in this repo
  • Codex Ab

    oliver-kriska/claude-elixir-phoenix

    Run an A/B codex review experiment — holistic codex review vs 3 focused dimension passes (security, ecto, liveview) on the branch diff, classify findings, report a panel-value verdict.

    565 GitHub stars~977 tokensUpdated 4 days ago
    Auto-check passed
  • Audit

    oliver-kriska/claude-elixir-phoenix

    Project health audit and health check — architecture, performance, tests, dependencies, code quality.

    565 GitHub stars~2k tokensUpdated 4 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with; Use when consulting past solutions…

    565 GitHub stars~528 tokensUpdated 4 days ago
    Auto-check passed
  • Compound Docs

    oliver-kriska/claude-elixir-phoenix

    Searchable Elixir/Phoenix/Ecto solution documentation system with YAML frontmatter.

    565 GitHub stars~547 tokensUpdated 4 days ago
    Auto-check passed
  • Deploy

    oliver-kriska/claude-elixir-phoenix

    Elixir/Phoenix deployment patterns — Dockerfile, fly.toml, runtime.exs, mix release, rel/ overlays.

    565 GitHub stars~1.1k tokensUpdated 4 days ago
    Auto-check passed
  • Deps Update

    oliver-kriska/claude-elixir-phoenix

    Bump outdated Hex deps — inventory, snapshot changelogs, update, fix breaks, split reviewable PRs (patches bundled, majors solo).

    565 GitHub stars~1.4k tokensUpdated 4 days ago
    Auto-check passed

Questions about Oban

What does Oban do?

A skill your agent uses when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch. Oban is an agent skill from oliver-kriska/claude-elixir-phoenix. Use when writing, scheduling, testing or debugging Oban jobs, even for a how-to question: workers, cron, retries, unique jobs, queues, Pro Workflow/Batch.

When should I use Oban?

Oban fits situations like: debugging Oban jobs; even for a how-to question: workers; pro Workflow/Batch.

How do I install Oban in Claude Code?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill oban -a claude-code`. Or copy the skill folder (targets/pi/skills/oban in oliver-kriska/claude-elixir-phoenix) into .claude/skills/oban in your project. Claude Code loads it when a task matches its description.

How do I install Oban in Codex?

Run `npx skills add oliver-kriska/claude-elixir-phoenix --skill oban -a codex`. Or copy the skill folder (targets/pi/skills/oban in oliver-kriska/claude-elixir-phoenix) into .agents/skills/oban in your project. Codex loads it when a task matches its description.

Can I use Oban in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add oliver-kriska/claude-elixir-phoenix --skill oban -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/oban, .gemini/skills/oban, .github/skills/oban and .opencode/skills/oban in your project.

What does Oban need to run?

SKILL.md names no scripts, command-line tools or credentials: Oban is instructions for the agent only.

Does Oban access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Oban safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Oban use?

Oban is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Oban use?

About 980 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.

What are the alternatives to Oban?

Skills that share tags, products or a category with Oban: OpenObserve PR Brief (openobserve/openobserve, 22k stars), AI Desk Card (op7418/ai-desk-card, 151 stars), Afx (cluesmith/codev, 288 stars) and Arandu Async (arandu-io/arandu, 281 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Oban?

oliver-kriska (a GitHub user) maintains it in oliver-kriska/claude-elixir-phoenix, which has 565 GitHub stars. The repository holds 109 skills in this directory. The repository was last updated on October 5, 2026.

Source: oliver-kriska/claude-elixir-phoenix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.