Agent-first job runner  ·  v0.1 — early release

No more Postman. Hello, Dispatch.

Dispatch is a modular job runner for API workflows — built from the ground up to be operated by AI agents, and comfortable for the humans who write the jobs.

Define once. Share as a file. Run from anywhere. Let your agent dispatch.

"Our testing tool had a great API. Nobody on the team could use it. So I built a wrapper. The wrapper got a module system. Then an agent interface. Then colleagues started using it for things that had nothing to do with testing.

That's Dispatch."
$ npm install -g dispatchkit
MIT license
npm: dispatchkit
binary: dispatch
What it looks like

Your colleague
talks to an agent.
The agent dispatches.

Your company's internal APIs are powerful. But nobody has time to read the docs, find the right endpoints, figure out the right order.

With Dispatch modules in place, your colleagues don't need to. They describe what they need. The agent reads the SKILL.md, composes the job, makes the real API calls — and reports back.

No tickets to the platform team. No Slack threads asking for curl examples. No Postman collections that are three months out of date.

Developer → Agent → Dispatch → API
agent session
you "Register a webhook for my service on the
     payments API. Staging. Point it at
     https://my-svc.internal/hooks/payment"
agent reading SKILL.md → payments module found
agent composing job → payments.register-webhook
$dispatch job validate --case register-webhook
✓ Valid register-webhook.job.case.json
$dispatch job run --case register-webhook
↳ POST /webhooks/register 201 143ms
↳ GET /webhooks/wh_9f2a/status ··· 1.1s
↳ GET /webhooks/wh_9f2a/verify 200 67ms
✓ run_c7d1a9 done 1.4s
$dispatch job assert --run-id latest
✓ Assertions passed (3/3)
agent "Done. wh_9f2a registered and verified
       in staging."
Every other tool

Built for humans.
Tolerated by agents.

Add --json and call it done. Agents scrape human-readable text, parse spinner output, guess at retry logic, break on every version bump. Your AI does archaeology on your CLI.

Dispatch

Built for agents.
Comfortable for humans.

Stable JSON envelopes. Structured error codes. Deterministic artifacts. A briefing format your agent reads before it acts. The human experience is layered on top — not the other way around.

04 Core concepts
01

Jobs

A sequence of module actions in a portable .job.case.json or .job.seed.json file. The agent's unit of work. Shareable, versionable, replayable.

02

Modules

Pluggable wrappers around API surfaces. Built-ins handle flow primitives. Bring your own as .dpmod bundles for private APIs.

03

SKILL.md

The agent briefing. A structured file that tells any AI agent the happy path, the troubleshoot ladder, the full command surface. Drop it in context.

04

Artifacts

Every run writes a full record: requests, responses, events, resolution. Assert offline. Replay without a network call. Hand it to your agent as context.

A contract your agent can rely on.

Every command has a dual output mode. Human mode for the terminal session. Machine mode for your agent. The schema is stable and versioned — your agent doesn't adapt to your CLI, your CLI adapts to your agent.

Human mode — default
 Job complete
  run-id:  run_c7d1a9
  webhook: wh_9f2a
  env:     staging
  dir:     run-output/run_c7d1a9

 Assertions passed (3/3)
Machine mode — --json
{
  "cliVersion": "0.0.1",
  "jobType": "register-webhook",
  "status": "SUCCESS",
  "runId": "20260306-162116-job-run-716a47b",
  "runDir": "~/dispatch/run-output/...",
  "moduleResolutionPath": "~/dispatch/run-output/.../module_resolution.json",
  "next": [
    {
      "command": "dispatch job assert --run-id 20260306-162116-job-run-716a47b",
      "description": "verify outcomes"
    }
  ]
}

Brief your agent
once.

Every Dispatch setup ships with a SKILL.md — a structured briefing your AI agent reads before acting.

It defines the preflight sequence, the happy path, the troubleshooting ladder. The agent doesn't explore. It follows the brief.

Write your own for private modules. The format is open. The contract is yours.

SKILL.md
---
name: my-api-dispatch
description: API workflows via dispatch
---

## Preflight
1. dispatch doctor
2. dispatch self-check

## Default Flow
1. dispatch job validate --case <path>
2. dispatch job run --case <path>
3. dispatch job assert --run-id latest

## Memory Rules
# .job.case.json may recall memory only
# .job.seed.json may store/forget memory
# use --resolve-deps only when fill jobs are declared

## Troubleshooting
1. dispatch job inspect --run-id latest
2. dispatch job readable --run-id latest
# check calls/*.response.json