outpost

Sets up and configures Hookdeck Outpost for outbound event delivery to customer endpoints. Use when sending webhooks to customers, building webhook delivery infrastructure, configuring destinations (HTTP, SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka), or managing tenants and subscriptions in Outpost.

16 stars

Best use case

outpost is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sets up and configures Hookdeck Outpost for outbound event delivery to customer endpoints. Use when sending webhooks to customers, building webhook delivery infrastructure, configuring destinations (HTTP, SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka), or managing tenants and subscriptions in Outpost.

Teams using outpost should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/outpost/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/devops/outpost/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/outpost/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How outpost Compares

Feature / AgentoutpostStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sets up and configures Hookdeck Outpost for outbound event delivery to customer endpoints. Use when sending webhooks to customers, building webhook delivery infrastructure, configuring destinations (HTTP, SQS, RabbitMQ, Pub/Sub, EventBridge, Kafka), or managing tenants and subscriptions in Outpost.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Hookdeck Outpost

Open-source outbound event delivery infrastructure by Hookdeck. Delivers your platform events directly to your users' preferred event destinations (webhooks, message queues, streaming platforms).

- [Outpost docs](https://outpost.hookdeck.com/docs/)
- [GitHub](https://github.com/hookdeck/outpost)
- [API reference](https://outpost.hookdeck.com/docs/api)

## Deployment Options

| Option | Description | Best for |
|---|---|---|
| **Self-hosted** | Run via Docker, Kubernetes, or Railway. Full control. Apache-2.0 license. | Production with custom infra requirements |
| **Managed** | Hookdeck Cloud. No infrastructure to operate. | Teams wanting zero-ops setup |

For managed, sign up at [hookdeck.com](https://hookdeck.com). For self-hosted, see the quickstart below.

## Supported Destination Types

**Available:** Webhooks (HTTP), Hookdeck Event Gateway, AWS SQS, AWS Kinesis, AWS S3, Azure Service Bus, GCP Pub/Sub, RabbitMQ (AMQP)

**Planned:** [AWS EventBridge](https://github.com/hookdeck/outpost/issues/201), [Apache Kafka](https://github.com/hookdeck/outpost/issues/141)

## [Core Concepts](https://outpost.hookdeck.com/docs/concepts)

**Tenants** -- Represent a user, team, or organization in your product. Each tenant manages their own Destinations.

**Destinations** -- A specific instance of a [destination type](https://outpost.hookdeck.com/docs/concepts#tenant-destination-types) belonging to a tenant. For example, a webhook destination with a particular URL, or an SQS queue.

**Topics** -- Categorize events using a Pub/Sub pattern (e.g., `user.created`, `payment.completed`). Destinations subscribe to one or more topics, or `*` for all.

**Events** -- Data representing an action in your system. Published to a topic and delivered to all matching destinations.

**Delivery Attempts** -- Records of each attempt to deliver an event to a destination, including request/response data.

## Self-Hosted Quick Start (Docker)

Requires [Docker](https://docs.docker.com/engine/install/). Uses RabbitMQ for message queuing.

```sh
git clone https://github.com/hookdeck/outpost.git
cd outpost/examples/docker-compose/
cp .env.example .env
# Edit .env and set your API_KEY value
docker-compose -f compose.yml -f compose-rabbitmq.yml -f compose-postgres.yml up
```

Verify the services are running:

```sh
curl localhost:3333/api/v1/healthz
```

## API Access

The Outpost API is a REST-based JSON API. The base URL and authentication differ by deployment:

| Deployment | Base URL | Authentication |
|---|---|---|
| **Self-hosted** | `http://localhost:3333/api/v1` (or your configured host) | `Authorization: Bearer $API_KEY` (the `API_KEY` env var you configured) |
| **Managed** | Provided in your Hookdeck project | `Authorization: Bearer $HOOKDECK_API_KEY` (from [Dashboard > Settings > Secrets](https://dashboard.hookdeck.com/settings/project/secrets)) |

The OpenAPI spec for the self-hosted API is at: https://github.com/hookdeck/outpost/blob/main/docs/apis/openapi.yaml

All curl examples below use the self-hosted base URL. Replace `localhost:3333/api/v1` with the managed URL and use your Hookdeck API key when using the managed version.

## Publish Your First Event

Set shell variables for convenience:

```sh
BASE_URL=localhost:3333/api/v1
API_KEY=your_api_key
TENANT_ID=your_org_name
URL=https://your-webhook-endpoint.example.com
```

Create a tenant, add a webhook destination, and publish an event:

```sh
# Create tenant
curl -X PUT "$BASE_URL/$TENANT_ID" \
  -H "Authorization: Bearer $API_KEY"

# Create webhook destination subscribing to all topics
curl -X POST "$BASE_URL/$TENANT_ID/destinations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "type": "webhook",
    "topics": ["*"],
    "config": { "url": "'"$URL"'" }
  }'

# Publish an event
curl -X POST "$BASE_URL/publish" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "tenant_id": "'"$TENANT_ID"'",
    "topic": "user.created",
    "eligible_for_retry": true,
    "data": { "user_id": "usr_123" }
  }'
```

## Tenant Portal

Outpost includes a built-in portal UI where tenants manage their destinations and inspect events:

```sh
curl "$BASE_URL/$TENANT_ID/portal" \
  -H "Authorization: Bearer $API_KEY"
# Returns { "redirect_url": "...?token=<jwt>" }
```

## Architecture

Outpost consists of three services (deployable together as a single binary or separately for horizontal scaling): **API Service** (captures events, configuration APIs), **Delivery Service** (delivers to destinations via message queues), and **Log Service** (stores events, status, responses). Requires Redis 6.0+, PostgreSQL, and one supported message queue. See [concepts](https://outpost.hookdeck.com/docs/concepts) for details.

## Future Skills

Destination-specific skills (`outpost-webhooks`, `outpost-sqs`, `outpost-rabbitmq`, etc.) will be added as Outpost documentation matures.

## Deployment Quickstarts

- [Docker](https://outpost.hookdeck.com/docs/quickstarts/docker) | [Kubernetes](https://outpost.hookdeck.com/docs/quickstarts/kubernetes) | [Railway](https://outpost.hookdeck.com/docs/quickstarts/railway) | [Configuration reference](https://outpost.hookdeck.com/docs/references/configuration)

## Related Skills

- [hookdeck](https://github.com/hookdeck/agent-skills/blob/main/skills/hookdeck/SKILL.md) -- skill router for all Hookdeck skills
- [event-gateway](https://github.com/hookdeck/agent-skills/blob/main/skills/event-gateway/SKILL.md) -- Hookdeck Event Gateway (inbound webhooks)

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

eng-spec

16
from diegosouzapw/awesome-omni-skill

Generate an Engineering Specification. Use when the user says /eng-spec, asks to create a technical spec, engineering spec, system design document, or translate a PRD into a technical plan. Triggers: eng-spec, engineering spec, technical spec, system design, technical design, architecture spec.

e2e

16
from diegosouzapw/awesome-omni-skill

E2E Command - generate and run end-to-end tests with Playwright

e2e-testing

16
from diegosouzapw/awesome-omni-skill

End-to-end testing workflow with Playwright for browser automation, visual regression, cross-browser testing, and CI/CD integration.

e2e-testing-patterns

16
from diegosouzapw/awesome-omni-skill

Master end-to-end testing with Playwright and Cypress to build reliable test suites that catch bugs, improve confidence, and enable fast deployment. Use when implementing E2E tests, debugging flaky tests, or establishing testing standards.

e2e-outside-in-test-generator

16
from diegosouzapw/awesome-omni-skill

Generates comprehensive end-to-end Playwright tests using outside-in methodology

dropbox

16
from diegosouzapw/awesome-omni-skill

No description provided.

dotnet

16
from diegosouzapw/awesome-omni-skill

.NET development standards and practices for zero-fabrication, test-driven development with strict quality gates. Use when working on .NET/C# projects that require rigorous testing, real integrations only, and co-located tests.

dotnet-uno-testing

16
from diegosouzapw/awesome-omni-skill

Tests Uno Platform apps. Playwright for WASM, platform-specific patterns, runtime heads.

dotnet-security-owasp

16
from diegosouzapw/awesome-omni-skill

Hardens .NET apps per OWASP Top 10 -- injection, auth, XSS, deprecated security APIs.

done

16
from diegosouzapw/awesome-omni-skill

Complete current expedition - run tests, commit, push, and update kanban status

doc-coauthoring

16
from diegosouzapw/awesome-omni-skill

Guia os usuários através de um fluxo de trabalho estruturado para coautoria de documentação. Use quando o usuário quiser escrever documentação, propostas, especificações técnicas, documentos de decisão ou conteúdo estruturado semelhante. Este fluxo de trabalho ajuda os usuários a transferir contexto de forma eficiente, refinar o conteúdo através de iteração e verificar se o documento funciona para os leitores. Acione quando o usuário mencionar escrever documentos, criar propostas, redigir especificações ou tarefas de documentação semelhantes.