Skip to main content

Swamp makes AI repeatable. Shareable. Auditable.

Your AI solves a problem, then forgets how it got there. Your team never sees the solution. Nobody can prove what happened. Swamp fixes all three.

See it in action

An on-call engineer wants an incident dossier every time an alert fires. Here's what happens:

$ swamp workflow run incident-dossier

    system │ Starting workflow incident-dossier

     check │ start
     check │ step pagerduty · alert-context · get-alert · start
     check │ step grafana · metrics · query-panels · start
     check │ step slack · threads · search · start
     check │ done pagerduty in 0.4s
     check │ done grafana in 1.2s
     check │ done slack in 0.6s
     check │ completed in 1.2s
 summarise │ start
 summarise │ step report · dossier · execute · start
 summarise │ done report in 2.1s
 summarise │ completed in 2.1s

    system │ Completed workflow incident-dossier succeeded in 3.4s

Tomorrow, a different engineer gets paged. The dossier is already waiting. They didn't build it, they didn't prompt anything — they just read it and make the call.

What you get

models

Capture what works

Describe the problem you need to solve. Your agent authors a Swamp model — a validated, versioned schema that runs the same way every time.

$ swamp model method run check-endpoint check

   Resolved   check-endpoint (@ops/http-check)
  Executing   check

  Completed   check on check-endpoint succeeded in 187ms

  ┌───────────────────────────────────┐
  │ Data produced                     │
  │  result                           │
  │    status    200                  │
  │    latency   176                  │
  │    ok        true                 │
  └───────────────────────────────────┘
workflows

Chain steps, run on schedule

Wire steps into a workflow. Run it once, run it nightly, trigger it from a webhook. Same steps, same result.

# Add a schedule trigger to the workflow YAML
trigger:
  schedule: "0 */6 * * *"

$ swamp workflow validate incident-dossier

Validating: incident-dossier
  ✓ Schema validation
  ✓ Trigger schedule: "0 */6 * * *" (every 6 hours)
  ✓ Unique job names
  ✓ Valid step dependency references in job 'check'
  ✓ Valid step dependency references in job 'summarise'
Summary: 9 passed
Result: PASSED
data

Run history

Every run recorded and versioned — inputs, outputs, and every step in between. Searchable and immutable.

$ swamp data list --workflow incident-dossier

Data for workflow incident-dossier (run 7f3a...)

file (2 items):
  log  v12  alert-context  check.pagerduty  1.2KB
  log  v12  dossier        summarise.report  4.8KB

resource (2 items):
  result  v12  alert-context  check.pagerduty  312B
  result  v12  dossier        summarise.report  2.1KB

report (2 items):
  report-swamp-method-summary  v12  text/markdown  471B
  report-swamp-method-summary-json  v12  application/json  2.6KB
vault

Safe access to real systems

Encrypted credentials injected at runtime that never appear in prompts. Your agent uses real systems without seeing the keys.

$ swamp vault list-keys ops-secrets

info    vault·list-keys Vault "ops-secrets" ("local_encryption"): 3 key(s)
info    vault·list-keys   - "pagerduty-api-key"
info    vault·list-keys   - "grafana-token"
info    vault·list-keys   - "slack-bot-token"
extensions

An automation library that grows

Every automation your team builds is reusable. Publish it once, anyone can pull it. The more you use Swamp, the more it can do.

$ swamp extension list

extension·list: "@ops/pagerduty      v2026.08.01.1  (pulled 2026-08-10T14:22:31.200Z)"
extension·list: "@ops/grafana        v2026.07.15.2  (pulled 2026-08-10T14:22:28.100Z)"
extension·list: "@ops/slack-search   v2026.08.05.1  (pulled 2026-08-12T09:15:40.846Z)"
extension·list: "@swamp/aws-costs    v2026.07.20.1  (pulled 2026-08-11T16:18:14.385Z)"
serve

Run it for everyone

Push what you built so your whole team can run it. Trigger workflows from webhooks or schedules, with access controls and audit trails built in.

$ swamp serve \
    --webhook '/hooks/pagerduty:incident-dossier:@env=PD_SECRET' \
    --auth-mode oauth

info    serve·start Listening on https://swamp.internal:8443
info    serve·schedule Registered "incident-dossier" (0 */6 * * *)
info    serve·webhook Registered /hooks/pagerduty → incident-dossier
info    serve·auth OAuth provider: swamp-club (3 members authorised)

What it connects to

Works with any agent. Connects to any system.

Swamp is a CLI. Any agent that can run shell commands can drive it — Claude Code, Cursor, Codex, or your own. No plugins, no integrations, no vendor lock-in. If your agent can call a terminal, it can use Swamp.

The extension registry already covers monitoring, cloud infrastructure, CI/CD, communication, analytics, and more.

If your agent can read the API docs, it can build a Swamp extension for any system.

Your data stays yours

Everything Swamp produces lives in .swamp on your disk. Models, run history, workflow definitions — all local, all yours. Nothing leaves your environment unless you choose to share it with your team via a datastore, and then it goes exactly where you point it.

When you're ready to collaborate, Swamp can run on your own infrastructure, behind your own sign-on. No data in our cloud unless you want it there.

Start with one problem. See where it goes.

Free for solo use. When your team wants in, that's when pricing starts.

curl -fsSL https://swamp-club.com/install.sh | sh
Read the docs