1. Resources
  2. /
  3. Plugins
  4. /
  5. deploy-tarot-buildkite-plugin

Deploy Tarot Buildkite Plugin

Draws a Deploy Tarot reading before a Buildkite step runs, prints the oracle’s verdict, and renders the drawn Major Arcana cards directly in the Buildkite log.

Buildkite renders images from log output via ANSI escape codes, so this plugin maps the card names returned by the Deploy Tarot API to Deploy Tarot’s public card artwork. In Buildkite jobs, the plugin embeds the card art directly in the log using Buildkite’s supported base64 inline image format so the images render reliably.

Example

steps:
  - label: "☽ ask the deploy tarot ☾"
    plugins:
      - github.com/your-org/bk-deploy-tarot-plugin#v1.0.0: ~
    command: ./deploy.sh

With no configuration, the plugin:

  • uses role devops unless the Buildkite build author looks bot-like, in which case it uses ai-agent
  • infers intent from Buildkite branch, tag, source, and pull request metadata
  • renders card images in the Buildkite log
  • lets the step continue even when the verdict is abort-mission

Full configuration

steps:
  - label: "deploy"
    plugins:
      - github.com/your-org/bk-deploy-tarot-plugin#v1.0.0:
          role: senior-dev
          intent: db-migration
          fail_on_abort: true
          render_images: true
          store_metadata: true
    command: ./deploy.sh

Configuration

role (optional)

Your role. Defaults to devops, or ai-agent if the build author looks bot-like.

Valid values are the Deploy Tarot API roles, including devops, sre, senior-dev, tech-lead, ai-agent, rubber-duck, and tarot-reader.

intent (optional)

What you are deploying. If omitted, the plugin infers an intent:

Buildkite contextIntent
Tag build, main, or masterfull-release
Scheduled builddependency-update
UI or trigger jobjust-vibes
dependabot/* or renovate/*dependency-update
fix/* or hotfix/*hotfix-prod
feat/* or feature/*new-feature
refactor/* or chore/*refactor
db/* or migration/*db-migration
infra/* or ops/*infra-change
docs/*public-doc-release
security/*security-patch
Anything elsequick-fix

fail_on_abort (optional, default false)

When true, the plugin exits non-zero if Deploy Tarot returns abort-mission, preventing the command from running.

render_images (optional, default true)

When true, emits Buildkite inline image escape sequences for the drawn cards. In Buildkite jobs, the images are embedded directly in the log using base64 inline image output.

store_metadata (optional, default false)

When true and buildkite-agent is available, stores the verdict details in Buildkite metadata for downstream steps.

api_url (optional)

Defaults to https://deploytarot.com/api/reading.

image_base_url (optional)

Source URL used when downloading card images for inline rendering. Defaults to https://deploytarot.com/static/cards.

timeout (optional, default 15)

Curl connect and request timeout in seconds.

retries (optional, default 2)

Curl retry count for transient request failures.

Metadata

Metadata is opt-in. Set store_metadata: true to store:

  • deploy-tarot:verdict
  • deploy-tarot:verdict-label
  • deploy-tarot:share-url

Example downstream use:

verdict="$(buildkite-agent meta-data get deploy-tarot:verdict)"
if [[ "$verdict" == "abort-mission" ]]; then
  echo "The cards said no."
  exit 1
fi

Requirements

  • Bash
  • curl
  • Python 3

Local testing

BK_DEPLOY_TAROT_ROLE=devops BK_DEPLOY_TAROT_INTENT=full-release hooks/pre-command

API limits

Deploy Tarot allows 60 requests per minute per IP. A rate-limited request returns HTTP 429 with Retry-After: 60.

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started for free.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. CI/CD perspectives

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement
  6. Supplier Code of Conduct
  7. Modern Slavery Statement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2026