> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hookie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Operations

> Send a test event, find what failed, redeliver it, and open the console at a project, all through your account.

These are the commands that are more than one API call. Like everything else in the CLI, each one acts on your account through Hookie, exactly as the console and the MCP tools do. Nothing is received on, or forwarded to, the machine the CLI runs on.

## Send a test event

```bash theme={"dark"}
hookie send --endpoint checkout --data @event.json
hookie send --endpoint checkout --data '{"type":"order.created"}'
jq -n '{type:"order.created"}' | hookie send --endpoint checkout --data @-
```

`send` posts to the endpoint's **public URL**, the same one a provider posts to, so the event takes the same path through ingest, the endpoint's criteria and mappings, and delivery as any other. The answer says where it was routed. `--endpoint` takes an endpoint's readable base slug, its ID, its name, or a full `workspace/project/slug` path.

## Find what arrived, and what failed

```bash theme={"dark"}
hookie events search --dataset orders --since 1h
hookie submissions search --q order.created --since 1h
hookie deliveries search --status failed,dead --since 24h --json
```

Search reads what your account stored: records, the raw submissions behind them, and deliveries, with a time window and paging. `--since` takes a duration (`30m`, `2h`, `7d`) or a timestamp.

## Replay a bad window

```bash theme={"dark"}
hookie replay dlv_01H8…                  # one delivery
hookie replay --since 1h --failed        # every failure in the last hour
hookie replay --since 2026-09-26T09:00:00Z --until 2026-09-26T11:00:00Z --failed
```

The bulk form searches deliveries and replays each match, because the server replays one at a time and has no bulk route. It asks first, since every replay sends a real request to a real destination; with no one to ask (a script, an agent) it refuses unless given `--yes`.

<Note>
  **Each event is replayed once per destination.** Replaying a replay works (the server resolves it to the original record), so the CLI sends one replay for each event and destination, however many failed attempts it had, and skips deliveries that are still being retried automatically. It says how many it skipped and why. An event past your plan's retention can't be replayed; the server answers `409`.
</Note>

If a destination starts pushing back with `429`, the run stops there rather than piling on.

## Open the console at a project

```bash theme={"dark"}
hookie open --project growth --tab deliveries
```

Prints the URL and opens it. The print is what makes it work over SSH and on a headless box.
