Agent skill

Rust API Test Harness

by hashgraph-online in hashgraph-online/awesome-codex-plugins

A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

MITAuto-check passedTesting & QA

Install Rust API Test Harness

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill rust-api-test-harness -a claude-code

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

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins rust-api-test-harness --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/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/LVTD-LLC/skills/skills/rust-api-test-harness .claude/skills/rust-api-test-harness && 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
rust-api-test-harness
GitHub stars
1.2k
Token cost
~1.7k tokens
SKILL.md length
579 words
Files
6 (incl. scripts, references, assets)
Skills in repo
686
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

  • Works in 8 steps: Inspect the project first: Cargo.toml,… → Find the application boundary. Extract… → Write or update an integration test… → …
  • Debugging Rust HTTP APIs and services
  • SKILL.md covers Core Workflow, Startup Shape, Test Harness Pattern and Assertions, plus 3 more sections
  • Runs Shell scripts from its folder; calls cargo

What it does

Rust API Test Harness is an agent skill from hashgraph-online/awesome-codex-plugins. Use when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test isolation, external HTTP mocks, or CI-ready cargo verification for Actix, Axum, Warp, Rocket, or similar Rust web frameworks.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts, reference files and assets (for example `agents/openai.yaml`, `references/database-test-isolation.md` and `references/external-http-mocks.md`). Compatibility notes: Codex, Claude Code, and other Agent Skills-compatible clients.

It sits in Testing & QA, covering API testing, Integration testing and REST APIs. It works with Rust. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is MIT.

When your agent uses it

  • Debugging Rust HTTP APIs and services
  • Especially when Codex needs black-box integration tests
  • Random-port app startup
  • Real database test isolation

Example prompts

  • “/rust-api-test-harness”

Requirements

  • A Bash shell
  • Docker
  • Compatibility (from SKILL.md): Codex, Claude Code, and other Agent Skills-compatible clients.

Workflow steps

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

  1. Inspect the project first: Cargo.toml, workspace layout, existing src/main.rs,
  2. Find the application boundary. Extract startup code into a reusable function
  3. Write or update an integration test before changing behavior. Put API tests
  4. Create a spawn_app helper that starts the service once per test case,
  5. Exercise the public HTTP contract with reqwest, not framework-specific
  6. Isolate state. Use real dependencies when behavior depends on their semantics
  7. Keep test helpers as production-quality code. Give failures useful messages,
  8. Run the local verification script or equivalent cargo commands before

What it can do on your machine

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

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • cargo

    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.

  • Compatibility

    Codex, Claude Code, and other Agent Skills-compatible clients.

    From compatibility in the SKILL.md frontmatter.

Context cost

Rust API Test Harness loads about 1.7k tokens when it runs, and up to ~2.9k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 579 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its MIT licence (© hashgraph-online). 579 words, ~1,712 tokens.

Download SKILL.mdSave it as .claude/skills/rust-api-test-harness/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
rust-api-test-harness
description
Use when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test isolation, external HTTP mocks, or CI-ready cargo verification for Actix, Axum, Warp, Rocket, or similar Rust web frameworks.
compatibility
Codex, Claude Code, and other Agent Skills-compatible clients.
license
MIT
metadata.version
0.1.0
metadata.displayName
Rust API Test Harness
metadata.category
Rust
metadata.tags
rust,api-testing,integration-tests,backend

Rust API Test Harness

Use this skill to make Rust API work test-first, reproducible, and CI-ready. Prefer black-box tests that exercise the service through HTTP and verify observable behavior rather than reaching through framework internals.

Core Workflow

  1. Inspect the project first: Cargo.toml, workspace layout, existing src/main.rs, src/lib.rs, router/startup modules, tests/, migrations, Docker Compose, and CI workflows.
  2. Find the application boundary. Extract startup code into a reusable function if needed so tests can bind a random local port and pass explicit state.
  3. Write or update an integration test before changing behavior. Put API tests under tests/ unless the project already has a clear convention.
  4. Create a spawn_app helper that starts the service once per test case, captures the base URL, and owns any disposable test resources.
  5. Exercise the public HTTP contract with reqwest, not framework-specific request objects, unless the project intentionally uses in-process tests.
  6. Isolate state. Use real dependencies when behavior depends on their semantics: Postgres for SQL behavior, a mock HTTP server for external APIs, and unique resource names per test.
  7. Keep test helpers as production-quality code. Give failures useful messages, hide boilerplate behind small helper methods, and avoid sleeps when readiness can be observed.
  8. Run the local verification script or equivalent cargo commands before finishing.

Startup Shape

Prefer a startup function that accepts infrastructure instead of creating it inside the handler module. Actix can listen on a synchronous std::net::TcpListener:

rust
pub fn run(
    listener: std::net::TcpListener,
    app_state: AppState,
) -> Result<actix_web::dev::Server, std::io::Error> {
    let state = actix_web::web::Data::new(app_state);
    let server = actix_web::HttpServer::new(move || {
        actix_web::App::new()
            .app_data(state.clone())
            .route("/health_check", actix_web::web::get().to(health_check))
    })
    .listen(listener)?
    .run();

    Ok(server)
}

For Axum, prefer the same boundary but use Tokio's async listener type:

rust
pub fn router(app_state: AppState) -> axum::Router {
    axum::Router::new()
        .route("/health_check", axum::routing::get(health_check))
        .with_state(app_state)
}

pub async fn spawn_axum_app() -> TestApp {
    let listener = tokio::net::TcpListener::bind("127.0.0.1:0")
        .await
        .expect("failed to bind random port");
    let port = listener.local_addr().unwrap().port();
    let server = axum::serve(listener, router(test_state().await));
    let server_handle = tokio::spawn(async move { server.await });

    TestApp {
        address: format!("http://127.0.0.1:{port}"),
        http_client: reqwest::Client::new(),
        server_handle,
    }
}

Test Harness Pattern

Use a helper object instead of repeating setup in every test.

rust
pub struct TestApp {
    pub address: String,
    pub http_client: reqwest::Client,
    pub server_handle: tokio::task::JoinHandle<std::io::Result<()>>,
}

pub async fn spawn_app() -> TestApp {
    let listener = std::net::TcpListener::bind("127.0.0.1:0")
        .expect("failed to bind random port");
    let port = listener.local_addr().unwrap().port();

    let server = my_app::startup::run(listener, test_state().await)
        .expect("failed to start test server");
    let server_handle = tokio::spawn(server);

    TestApp {
        address: format!("http://127.0.0.1:{port}"),
        http_client: reqwest::Client::new(),
        server_handle,
    }
}

Add small helper methods when a multi-step user journey appears in more than one test. Keep the method names behavior-oriented, for example post_subscription, login, create_newsletter, or confirm_subscription.

Do not discard the JoinHandle returned by tokio::spawn. Keep it in the test fixture so tests can detect an unexpectedly finished server task and abort it during teardown instead of hiding server-side panics behind later connection-refused errors.

Show full SKILL.md (251 more words)Show less

Assertions

  • Assert status codes and response headers first.
  • Assert persisted side effects through public APIs when possible; query the database directly only when the public API has no observation point yet.
  • Assert negative cases as first-class behavior: missing fields, malformed payloads, duplicate submissions, unauthorized users, upstream failures, and timeouts.
  • Avoid snapshotting noisy response bodies unless the API contract actually includes those exact bytes.

State And Dependency Isolation

Read references/database-test-isolation.md when tests touch a database. Read references/external-http-mocks.md when tests call third-party HTTP APIs.

Default preferences:

  • Use real Postgres for Postgres-backed behavior instead of SQLite or in-memory substitutes.
  • Use one logical database, schema, or unique namespace per test when tests can write shared state.
  • Run migrations in setup before the app starts.
  • Use wiremock or an equivalent local mock server for external HTTP APIs.
  • Configure timeouts aggressively in tests so failures do not hang.

Verification

Run the bundled preflight script from the Rust project root when the standard cargo workflow applies:

bash
path/to/rust-api-test-harness/scripts/check-rust-service.sh

By default, the script runs:

bash
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features

Set RUST_API_TEST_HARNESS_SKIP_CLIPPY=1 to skip only the clippy step. The script still runs formatting and tests. Use this escape hatch when the project configures linting separately in CI or when --all-targets --all-features is known to be inappropriate for the local preflight.

If the project does not use all features in CI, mirror the repository's existing CI commands instead and explain the deviation.

Reference Files

  • references/database-test-isolation.md: patterns for Postgres-backed tests, migrations, per-test databases, and cleanup tradeoffs.
  • references/external-http-mocks.md: patterns for testing outbound HTTP clients and API workflows with local mocks.

© hashgraph-online, 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 5 other files (scripts, references, assets) in plugins/LVTD-LLC/skills/skills/rust-api-test-harness of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • agents/openai.yaml
  • assets/app-icon.png
  • references/database-test-isolation.md
  • references/external-http-mocks.md
  • scripts/check-rust-service.sh

Open the folder on GitHubat commit 78497e5

Compare with similar skills

Rust API Test Harness 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.

Rust API Test Harness compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rust API Test Harness this skillhashgraph-online/awesome-codex-plugins1.2k—~1.7kAutomated safety check: PassMIT
API Testing RESTPramodDutta/qaskills232—~4.9kAutomated safety check: PassMIT
API Test Suite Builderalirezarezvani/claude-skills28k1 repos~1.6kAutomated safety check: PassMIT
Remote Executor Integration Testsopeninterpreter/openinterpreter69k2 repos~842Automated safety check: PassApache-2.0
Integration Tests for pRESTprest/prest4.6k—~1.1kAutomated safety check: PassMIT
Reasoning Serialization Teststailcallhq/forgecode7.6k—~1kAutomated safety check: PassApache-2.0

Similar skills

  • API Testing REST

    PramodDutta/qaskills

    Comprehensive RESTful API testing patterns covering HTTP methods, status codes, request/response validation, authentication, error handling, and contract testing.

    232 GitHub stars~4.9k tokensUpdated 3 days ago
    Testing & QAAuto-check passed
  • API Test Suite Builder

    alirezarezvani/claude-skills

    A skill your agent uses when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests.

    28k GitHub starsUsed in 1 repo~1.6k tokens
    Testing & QAAuto-check passed
  • Remote Executor Integration Tests

    openinterpreter/openinterpreter

    Explains how to run agent integration tests against remote executors, using Docker for Linux or Wine for Windows, and how to opt tests in or skip them.

    69k GitHub starsUsed in 2 repos~842 tokens
    Testing & QAAuto-check passed
  • Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.

    4.6k GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check passed
  • Reasoning Serialization Tests

    tailcallhq/forgecode

    Checks that ReasoningConfig fields are serialized into the right provider-specific JSON for OpenRouter, Anthropic, GitHub Copilot and Codex requests.

    7.6k GitHub stars~1k tokensUpdated today
    Testing & QAAuto-check passed
  • Snapbox Testing

    moonbitlang/moon

    Write and maintain Rust CLI/integration tests with snapbox 0.6+ using command assertions, inline snapshots, and minimal wildcard/redaction patterns.

    423 GitHub stars~595 tokensUpdated today
    Testing & QAAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 686 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.2k GitHub stars~922 tokensUpdated today
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.2k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.2k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.2k GitHub stars~618 tokensUpdated today
    Auto-check passed
  • Manuscript Engagement Analytics

    hashgraph-online/awesome-codex-plugins

    Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…

    1.2k GitHub stars~875 tokensUpdated today
    Auto-check passed
  • Models

    hashgraph-online/awesome-codex-plugins

    Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own…

    1.2k GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Rust API Test Harness

What does Rust API Test Harness do?

A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…. Rust API Test Harness is an agent skill from hashgraph-online/awesome-codex-plugins. Use when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test isolation, external HTTP mocks, or CI-ready cargo verification for Actix, Axum, Warp, Rocket, or similar Rust web frameworks.

When should I use Rust API Test Harness?

Rust API Test Harness fits situations like: debugging Rust HTTP APIs and services; especially when Codex needs black-box integration tests; random-port app startup; real database test isolation.

How do I install Rust API Test Harness in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill rust-api-test-harness -a claude-code`. Or copy the skill folder (plugins/LVTD-LLC/skills/skills/rust-api-test-harness in hashgraph-online/awesome-codex-plugins) into .claude/skills/rust-api-test-harness in your project. Claude Code loads it when a task matches its description.

How do I install Rust API Test Harness in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill rust-api-test-harness -a codex`. Or copy the skill folder (plugins/LVTD-LLC/skills/skills/rust-api-test-harness in hashgraph-online/awesome-codex-plugins) into .agents/skills/rust-api-test-harness in your project. Codex loads it when a task matches its description.

Can I use Rust API Test Harness 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 hashgraph-online/awesome-codex-plugins --skill rust-api-test-harness -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rust-api-test-harness, .gemini/skills/rust-api-test-harness, .github/skills/rust-api-test-harness and .opencode/skills/rust-api-test-harness in your project.

What does Rust API Test Harness need to run?

Going by SKILL.md and its folder, Rust API Test Harness needs a shell for the scripts in its folder and the command-line tools its instructions call (cargo). Our summary lists: A Bash shell; Docker. Compatibility (from SKILL.md): Codex, Claude Code, and other Agent Skills-compatible clients..

Does Rust API Test Harness 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 Rust API Test Harness 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Rust API Test Harness use?

Rust API Test Harness is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rust API Test Harness use?

About 1.7k tokens (SKILL.md is roughly 6.8k 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 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Rust API Test Harness?

Skills that share tags, products or a category with Rust API Test Harness: API Testing REST (PramodDutta/qaskills, 232 stars), API Test Suite Builder (alirezarezvani/claude-skills, 28k stars), Remote Executor Integration Tests (openinterpreter/openinterpreter, 69k stars) and Integration Tests for pREST (prest/prest, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rust API Test Harness?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.