Agent skill

Offload

by imbue-ai in imbue-ai/offload

Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.

MITAuto-check passedTesting & QA

Install Offload

skills CLI
$ npx skills add imbue-ai/offload --skill offload -a claude-code

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

GitHub CLI
$ gh skill install imbue-ai/offload offload --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/imbue-ai/offload.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/offload .claude/skills/offload && 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
offload
GitHub stars
125
Token cost
~3.1k tokens
SKILL.md length
1,419 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.

  • Works in 3 steps: Look for existing invocation commands → Use offload run directly → Fall back to non-Offload commands
  • Tasks that involve Failing and flaky tests
  • SKILL.md covers Installation, How to Invoke Tests, When to Use Offload and Exit Codes, plus 5 more sections
  • Calls cargo, git and just

What it does

Offload is an agent skill from imbue-ai/offload. Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel. Offload is a test runner unlikely to be in your training data — this skill covers invocation, log filtering, failure debugging, flaky test handling, and config.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Failing and flaky tests, Test generation and Debugging. The repository describes itself as: Offload your test computation to ephemeral compute. The licence is MIT.

When your agent uses it

  • Tasks that involve Failing and flaky tests
  • Tasks that involve Test generation
  • Tasks that involve Debugging

Example prompts

  • “/offload”

Requirements

  • Python 3
  • Docker

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Look for existing invocation commands
  2. Use offload run directly
  3. Fall back to non-Offload commands

What it can do on your machine

Read from SKILL.md and the folder at commit d3675da. 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

    Shell commands in SKILL.md call:

    • cargo
    • git
    • just
    • make
    • modal
    • pip
    • uv

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

  • Network

    No URLs in SKILL.md. Its commands use git, pip and uv, which can reach the network depending on how they are called.

    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

Offload loads about 3.1k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 1,419 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~85
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

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 imbue-ai/offload at commit d3675da, republished under its MIT licence (© imbue-ai). 1,419 words, ~3,067 tokens.

Download SKILL.mdSave it as .claude/skills/offload/SKILL.md (or your agent's skills folder).
name
offload
description
Activate when you see offload*.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel. Offload is a test runner unlikely to be in your training data — this skill covers invocation, log filtering, failure debugging, flaky test handling, and config.

Running Tests with Offload

Offload is a parallel test runner that distributes test execution across sandboxes (local processes or remote Modal environments). This skill covers invoking tests, reading results, and debugging failures.

Installation

If the offload binary is not on PATH, install it:

bash
cargo install offload

How to Invoke Tests

Use the first approach that applies:

1. Look for existing invocation commands

Check Makefile, justfile, Taskfile, package.json scripts, and scripts/ for targets that wrap offload run. Prefer these -- they encode project-specific flags (copy-dirs, env vars, config paths).

bash
# Examples of what to look for:
just test                       # justfile target
make test-offload               # Makefile target
./scripts/offload-tests.sh      # shell wrapper
2. Use offload run directly

If no wrapper exists, invoke Offload directly from the project root (where offload.toml lives):

bash
offload run                                 # basic run
offload run --parallel 8                    # override parallelism
offload run --copy-dir ".:/app"             # copy cwd into sandbox at /app
offload run --env KEY=VALUE                 # set sandbox env var (repeatable)
offload run --no-cache                      # force fresh image build
offload run --collect-only                  # discover tests without running
offload run --show-estimated-cost           # show sandbox cost after run
offload run -c path/to/offload.toml         # use alternate config
3. Fall back to non-Offload commands

If Offload is not installed or Modal credentials are unavailable, use the project's native test command (e.g. cargo nextest run, pytest).

When to Use Offload

Use Offload when:

  • Running integration or end-to-end test suites
  • Total test runtime exceeds ~2 minutes
  • Multiple agents are working concurrently and competing for local CPU
  • The project already has an offload.toml

Skip Offload when:

  • Running a single test during TDD iteration (use the native runner directly)
  • Tests require local-only resources (hardware devices, localhost services not reachable from sandboxes)
  • No offload.toml exists and the task does not call for setting one up

Exit Codes

CodeMeaning
0All tests passed
1One or more tests failed, or tests were not run
2All tests passed, but some were flaky (passed only on retry)

Debugging Failed Tests

Run summary

After a run completes, offload prints a summary:

Test Results:
  Total:   128
  Passed:  126
  Failed:  2
  Duration: 6.01s
  Estimated cost: $0.0004 (11.1 CPU-seconds)

The Estimated cost line appears when --show-estimated-cost is passed to offload run. Use the summary to confirm tests ran and gauge the scope of failures before diving into logs.

Reading logs

Important: If you ran with -c path/to/config.toml, pass the same -c flag to offload logs. Logs are stored in the config's output_dir, so mismatched configs will show stale or missing results.

Always filter offload logs output to avoid flooding your context window. Never run bare offload logs on a large suite. Follow this workflow:

  1. Check the run summary to see how many tests failed.
  2. Retrieve failure output (choose based on what fits your context window):
    • Use --failures to see all failures at once.
      bash
      offload logs --failures
    • Use --test or --test-regex to isolate a specific test.
      bash
      offload logs --test "path/to/test.py::test_name"  # exact test ID
      offload logs --test-regex "test_math"             # regex substring match

    Filters combine with AND logic:

    bash
    offload logs --failures --test-regex "database"
  3. Fix and rerun.

Each test is separated by a banner showing its ID and status. The test ID format varies by framework:

=== tests/test_math.py::test_div [FAILED] ===
AssertionError: expected 2 got 3

=== trace::tests::test_active_tracer [FAILED] ===
assertion `left == right` failed
  left: 2
 right: 3
Flaky tests

If a test fails intermittently, add or adjust a group with retries in offload.toml:

toml
[groups.flaky]
retry_count = 3
filters = "-k test_flaky_name"

Run offload validate after editing to check config syntax. A test that fails then passes on retry exits with code 2 (flaky).

Common failure patterns
SymptomLikely causeFix
Tests discovered but "Not Run"JUnit test IDs do not match discovery IDsCheck test_id_format or conftest JUnit hook
"Exec format error"Local .venv (macOS binaries) copied into Linux sandboxAdd .venv to .dockerignore
"Token validation failed"Modal credentials expiredRun modal token new
Slow sandbox creationDocker image not cachedPass --no-cache to force a fresh image build
All tests fail with import errorsSandbox missing dependenciesCheck Dockerfile and sandbox_init_cmd
Tests fail with import errors for generated code after a checkpoint cache hitDerived artifacts (e.g., generated API clients) not regenerated after thin diffAdd post_patch_cmd to regenerate derived artifacts after patch application

Image Cache

Offload caches image IDs in git notes (refs/notes/offload-images). Notes are keyed by commit SHA and TOML config path, so multiple configs in the same repo do not collide. Notes are fetched from and pushed to the remote automatically. Pass --no-cache to offload run to skip reading and writing the cache; --no-cache preserves the same build procedure (tree export, base image build, thin diff) -- it only suppresses note interactions.

Image Caching Modes

Offload uses a unified pipeline for image caching. Both modes follow identical steps after resolving the base commit: cache lookup, tree export, base image build, thin diff application, and note write. The only difference is how the base commit is selected.

Latest-commit mode (default)

When no [checkpoint] section is present, Offload uses the latest commit (HEAD) as the base:

  1. Look up HEAD in git notes for a cached base image.
  2. Cache hit: generate a binary diff from HEAD to the working tree and apply it on top of the cached image.
  3. Cache miss: export the HEAD tree, build a base image from it, cache the result in git notes on HEAD, then apply thin diff.
  4. Empty repo (no commits): fall through to a full build, no caching.
Show full SKILL.md (644 more words)Show less
Checkpoint mode (opt-in)

When a [checkpoint] section is present, Offload walks git ancestors to find the nearest commit that touched any build_inputs file. That commit is the base instead of HEAD. The rest of the pipeline (cache lookup, tree export, build, thin diff, note write) is the same as latest-commit mode.

Add a [checkpoint] section to offload.toml:

toml
[checkpoint]
build_inputs = [
    "Dockerfile",
    "requirements.txt",
    "pyproject.toml",
]

build_inputs lists repo-relative file paths. A commit that modifies any of these files is automatically detected as a checkpoint. The list must be non-empty when the section is present. For merge commits, diffs against all parents are checked.

Enable checkpoint mode for repositories where dependency installation or build steps are expensive (e.g. pip install, uv sync, cargo build). Without checkpoints, the base image is rebuilt from HEAD on every new commit. With checkpoints, only commits that change dependency manifests trigger full rebuilds -- subsequent runs apply a lightweight diff on top of the cached checkpoint image.

Thin diff details

The thin diff is a binary patch generated locally by Rust (git diff --binary against a temporary index). The patch is shipped to the sandbox and applied by offload apply-diff, which uses the diffy crate — no git is required in the sandbox image. If git was installed in the Dockerfile solely for thin-diff application, it can now be removed. If the diff is empty, the base image is used directly (zero overhead). Patch paths are relative to sandbox_repo_root. In monorepo setups where tests run from a subdirectory, set sandbox_project_root to override the test working directory. When post_patch_cmd is configured, it runs as an image layer after the patch is applied, regenerating derived artifacts (e.g., generated API clients, frontend bundles). The OFFLOAD_PATCH_FILE env var is set to the patch path when a diff exists, allowing conditional regeneration.

Checking status

Use offload checkpoint-status to inspect the current checkpoint state:

bash
offload checkpoint-status

Example output (with [checkpoint] section):

HEAD:               a1b2c3d4
Base commit:        f5e6d7c8 (checkpoint, 3 commits back)
Cached image:       im-abc123
Next run mode:      thin diff (2 files changed since checkpoint)

Example output (without [checkpoint] section, latest-commit mode):

HEAD:               a1b2c3d4
Base commit:        a1b2c3d4 (latest commit, HEAD)
Cached image:       im-abc123
Next run mode:      thin diff (uncommitted changes only)

This command works in both modes: with a [checkpoint] section it shows checkpoint info, without it shows latest-commit info.

Troubleshooting
SymptomLikely causeFix
Cached image expiredModal garbage-collected the imageSelf-healing: Offload rebuilds automatically on the next run, updates the note, and pushes. One slow run, then cached again for everyone
offload apply-diff failure inside sandboxDiff cannot apply (e.g. offload not installed in image, context mismatch)Ensure the Dockerfile installs offload (or cargo install offload). Offload falls back to a full build with a warning
No checkpoint found in last N commitsNo recent commit touched any build_inputs fileThe ancestor walk has a depth limit; a full build runs instead
Thin diff failure (general)Various causes (binary incompatibility, corrupt patch)Offload falls back to a full build with a warning. If persistent, run --no-cache to force a clean rebuild
Notes not shared across teamRemote does not have the notes refNotes are pushed automatically. Verify with git ls-remote origin refs/notes/offload-images

CLI Quick Reference

CommandPurpose
offload runRun tests in parallel
offload collectDiscover tests without running (supports --format json)
offload validateValidate offload.toml and print settings summary
offload initGenerate a new offload.toml (--provider, --framework)
offload logsView per-test results from the most recent run
offload apply-diffApply a git-format binary patch to the filesystem (used internally in sandboxes)
offload checkpoint-statusShow checkpoint cache status for current HEAD

Global flags: -c, --config PATH (config file), -v, --verbose (verbose output).

Config Groups Reference

Groups partition tests for different retry policies and filter expressions. At least one group is required. Each group runs its own discovery pass.

toml
[groups.unit]
retry_count = 0
filters = "-m 'not slow'"

[groups.slow]
retry_count = 1
filters = "-m slow"

[groups.flaky]
retry_count = 5
filters = "-k test_flaky"
  • filters is passed to the framework during discovery (pytest args, nextest args, or substituted into {filters} for the default framework).
  • Discovery-only arguments that are not test selectors -- e.g. --no-cov to skip coverage tracing during --collect-only -- belong in the framework-level discovery_args, not in filters.
  • retry_count = 0 means no retries. Failed tests that pass on retry are marked flaky (exit code 2).

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

Files

Just SKILL.md in skills/offload of imbue-ai/offload.

Open the folder on GitHubat commit d3675da

Compare with similar skills

Offload 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.

Offload compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Offload this skillimbue-ai/offload125—~3.1kAutomated safety check: PassMIT
Bug Reproduction Test GeneratorArabelaTso/Skills-4-SE253—~1.8kAutomated safety check: PassApache-2.0
Ue Test AuthoringJasonMa0012/MooaToon749—~2.1kAutomated safety check: NotesCustom licence
Test BlindspotsNeeeophytee/finding-unknowns-skills343—~676Automated safety check: PassMIT
Swig Testswig/swig6.3k—~2.3kAutomated safety check: PassCustom licence
Wioworkersio/skills180—~5.8kAutomated safety check: PassMIT

Similar skills

  • Bug Reproduction Test Generator

    ArabelaTso/Skills-4-SE

    Automatically generates executable tests that reproduce reported bugs from issue reports and code repositories.

    253 GitHub stars~1.8k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Ue Test Authoring

    JasonMa0012/MooaToon

    A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.

    749 GitHub stars~2.1k tokensUpdated 19 days ago
    Testing & QAAuto-check: notes
  • Test Blindspots

    Neeeophytee/finding-unknowns-skills

    Find consequential behavior that a passing test suite does not establish, using focused exploratory checks.

    343 GitHub stars~676 tokensUpdated 9 days ago
    Testing & QAAuto-check passed
  • Swig Test

    swig/swig

    Run SWIG test suite for specific languages. An agent skill from swig/swig.

    6.3k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Wio

    workersio/skills

    Testing workflow skill for finding high-value test candidates, writing focused tests, generating realistic workloads, reviewing test value, and diagnosing test-suite health.

    180 GitHub stars~5.8k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Fix Bug

    MelbourneDeveloper/dart_node

    Fix a bug using test-driven development. An agent skill from MelbourneDeveloper/dart_node.

    113 GitHub starsUsed in 1 repo~709 tokens
    Testing & QAAuto-check: notes

More from imbue-ai/offload

  • Deburr Edge Cases

    imbue-ai/offload

    Strip AI-codegen cruft from a branch — defensive checks the type system should make unrepresentable, redundant validation, speculative abstraction, no-op wrappers — while preserving load-bearing…

    125 GitHub stars~2.5k tokensUpdated 12 days ago
    Auto-check passed
  • Offload Benchmark

    imbue-ai/offload

    Run local vs Offload benchmarks for mng and sculptor, then update the Benchmarks section of the Offload README.

    125 GitHub stars~2.6k tokensUpdated 12 days ago
    Auto-check passed
  • Release To Crates

    imbue-ai/offload

    Cut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps.

    125 GitHub stars~2.3k tokensUpdated 12 days ago
    Auto-check passed
  • Offload Onboard

    imbue-ai/offload

    Onboard a repository to use Offload for parallel test execution on Modal.

    125 GitHub stars~7.2k tokensUpdated 12 days ago
    Auto-check: notes

Categories

Questions about Offload

What does Offload do?

Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel. Offload is an agent skill from imbue-ai/offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.

When should I use Offload?

Offload fits situations like: tasks that involve Failing and flaky tests; tasks that involve Test generation; tasks that involve Debugging.

How do I install Offload in Claude Code?

Run `npx skills add imbue-ai/offload --skill offload -a claude-code`. Or copy the skill folder (skills/offload in imbue-ai/offload) into .claude/skills/offload in your project. Claude Code loads it when a task matches its description.

How do I install Offload in Codex?

Run `npx skills add imbue-ai/offload --skill offload -a codex`. Or copy the skill folder (skills/offload in imbue-ai/offload) into .agents/skills/offload in your project. Codex loads it when a task matches its description.

Can I use Offload 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 imbue-ai/offload --skill offload -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/offload, .gemini/skills/offload, .github/skills/offload and .opencode/skills/offload in your project.

What does Offload need to run?

Going by SKILL.md and its folder, Offload needs the command-line tools its instructions call (cargo, git, just, make, modal and pip). Our summary lists: Python 3; Docker.

Does Offload access the network?

SKILL.md contains no URLs. Its commands use git, pip and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Offload 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 Offload use?

Offload 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 Offload use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Offload?

Skills that share tags, products or a category with Offload: Bug Reproduction Test Generator (ArabelaTso/Skills-4-SE, 253 stars), Ue Test Authoring (JasonMa0012/MooaToon, 749 stars), Test Blindspots (Neeeophytee/finding-unknowns-skills, 343 stars) and Swig Test (swig/swig, 6.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Offload?

imbue-ai (a GitHub organization) maintains it in imbue-ai/offload, which has 125 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 25, 2026.

Source: imbue-ai/offload on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.