All Features

One file.
Total control.

Everything in PromptDeck is configured through a single YAML file. Edit it in any text editor, changes apply instantly. Version control friendly.

Getting Started

Your config file lives at ~/.promptdeck/buttons.yaml

Edit

Open in VS Code, Vim, TextEdit — any editor. It's just YAML.

Hot Reload

Save the file. Changes push to your iPhone in under a second. No restart.

Version Control

Track changes in git. Share configs. Roll back mistakes.

Server & Grid Settings

Control the connection, layout, injection behavior, and visual style.

Server

OptionDefaultDescription
server.port9100WebSocket server port

Grid

OptionDefaultDescription
grid.columns2Button grid columns (adaptive on iOS)
grid.buttonShaperoundedDefault shape for all buttons

Background

OptionDefaultDescription
background.stylenonenone, gradient, or animated

Injection

OptionDefaultDescription
injection.modeclipboardclipboard or keystrokes
injection.appendNewlinetruePress Enter after injection
injection.cooldownMs250Min ms between injections
injection.plainTextfalsePlain text only (no RTF)

Dock

OptionDefaultDescription
dock.positiontoptop or bottom of the screen
dock.showLabelstrueShow app names below icons

Tabs (per-browser)

OptionDefaultDescription
tabs.safari.fullTitlesfalseShow full tab titles for Safari
tabs.safari.titlefalseShow "Safari" section header
tabs.chrome.fullTitlesfalseShow full tab titles for Chrome
tabs.chrome.titlefalseShow "Chrome" section header

Button Properties

Every button supports these properties. Only id, label, and icon are required; color defaults to blue.

Property Default Description
idUnique identifier
labelButton text (empty string for icon-only)
iconSF Symbol name
colorblueHex color (e.g., #5E5CE6). Falls back to group color, then blue
actioninjectinject, toggle, toggleChecked, switchTab, launchApp, runShortcut, systemAction, scanBarcode, restApi, forgetPin
promptText to inject (for inject action)
checkedfalseCurrent state for toggle action buttons
enabledtrueSet false to hide without removing from config
urlURL pattern for switchTab action
urlMatchcontainscontains, exact, or startsWith
bundleIdApp bundle ID for launchApp action
shortcutShortcut name for runShortcut action
targetphonephone or host — where to run the shortcut
systemActionSystem action for systemAction type
animationnonepulse, variableColor, wiggle, breathe, rotate
shape(grid default)rounded, square, pill, circle, hexagon, octagon, squircle
metadataKey-value pairs for extensibility
repeatonceonce (on tap) or continuous (always animating)

Pages & Groups

Organize buttons into swipeable pages. Group related buttons with labeled headers.

Page Properties

PropertyDefaultDescription
labelPage name in the indicator
typebuttonsbuttons (grid) or list
chrometrueShow dock/tabs/spaces on this page
sortOrdernaturalnatural (YAML order) or alpha
triggersAuto-navigation triggers

Group Properties

PropertyDefaultDescription
labelGroup header text
colorgrayGroup tint color (hex). Optional
sortOrder(inherit)Override page sort order
triggersContext-aware group triggers
Multi-Page Config
pages:
  - label: "Coding"
    sortOrder: alpha
    buttons:
      - group:
          label: Review
          color: "#5E5CE6"
          buttons:
            - id: review
              label: Review
              icon: eye
              color: "#5E5CE6"
              prompt: "Review this code."

  - label: "Shopping"
    type: list
    chrome: false
    buttons:
      - id: milk
        label: Milk
        icon: drop.fill
        color: "#FFFFFF"
        action: toggle

Chrome Control

Include or omit top-level sections to control what appears on your iPhone. The order in YAML determines the order on screen.

Available Sections

  • dock: Dock mirror with running app indicators
  • tabs: Browser tab switcher (Safari + Chrome)
  • vscode: VS Code window switcher
  • spaces: macOS Spaces/Desktops navigator

Omit a section entirely to disable it. Include it (even empty) to enable.

Section Ordering
# Order in YAML = order on iPhone
spaces: {}
tabs: {}
buttons:
  - ...
vscode: {}
dock:
  position: bottom

Hot Reload

Save your file. See changes on your iPhone instantly.

File Watcher

PromptDeckHost monitors your config file with FSEvents. Changes are detected within milliseconds.

Validation

YAML is validated before applying. Syntax errors are logged with line numbers — your current config stays active.

State Preserved

Your selected page, toggle states, and scroll position are preserved across config reloads.

One file. Your rules.

Download PromptDeck Host and start customizing.

Download for Mac