Skip to content
← Public packages

@kentcdodds/raycast

Raycast launcher: stored execute commands via webhooks (canonical; do not use raycast-shortcuts).

extension/package.json

100 lines · 3.0 KB · JSON
{
  "$schema": "https://www.raycast.com/schemas/extension.json",
  "name": "kody",
  "title": "Kody",
  "description": "Run Kody execute commands stored in @kentcdodds/raycast package storage",
  "icon": "extension-icon.png",
  "author": "kent_c_dodds",
  "platforms": [
    "macOS"
  ],
  "categories": [
    "Developer Tools",
    "Productivity"
  ],
  "license": "MIT",
  "commands": [
    {
      "name": "commands",
      "title": "Kody Commands",
      "subtitle": "Run stored execute commands",
      "description": "List cached Kody execute commands and run them via webhook",
      "mode": "view"
    },
    {
      "name": "run-code",
      "title": "Run Kody Code",
      "subtitle": "Ad-hoc execute",
      "description": "Paste an ESM module and run it through Kody execute",
      "mode": "view"
    },
    {
      "name": "set-up-webhooks",
      "title": "Set up Kody Webhooks",
      "subtitle": "Mint URL preferences",
      "description": "Open Kody package webhook settings and extension preferences",
      "mode": "view"
    }
  ],
  "preferences": [
    {
      "name": "webhookUrl",
      "type": "password",
      "required": false,
      "title": "Launcher webhook URL",
      "description": "Minted inbound webhook URL for @kentcdodds/raycast launcher (action router). Prefer ~/.config/kody/raycast.json webhookUrl.",
      "placeholder": "https://\u2026"
    },
    {
      "name": "listCommandsWebhookUrl",
      "type": "password",
      "required": false,
      "title": "list-commands Webhook URL (legacy)",
      "description": "Deprecated. Prefer webhookUrl (single launcher router).",
      "placeholder": "https://\u2026"
    },
    {
      "name": "runWebhookUrl",
      "type": "password",
      "required": false,
      "title": "run Webhook URL (legacy)",
      "description": "Deprecated. Prefer webhookUrl (single launcher router).",
      "placeholder": "https://\u2026"
    },
    {
      "name": "cacheTtlSeconds",
      "type": "textfield",
      "required": false,
      "title": "Command cache TTL (seconds)",
      "description": "Freshness window: serve cache without network for this many seconds (default 60).",
      "default": "60"
    },
    {
      "name": "cacheSwrSeconds",
      "type": "textfield",
      "required": false,
      "title": "Command cache SWR (seconds)",
      "description": "Stale-while-revalidate window: serve cache immediately and refresh in the background until this age (default 5184000 = 60 days).",
      "default": "5184000"
    }
  ],
  "scripts": {
    "build": "ray build -e dist",
    "dev": "ray develop",
    "fix-lint": "ray lint --fix",
    "lint": "ray lint",
    "prepublishOnly": "echo \"Personal extension \u2014 do not publish to npm.\" && exit 1"
  },
  "dependencies": {
    "@raycast/api": "^1.104.19",
    "react": "^19.2.7"
  },
  "devDependencies": {
    "@raycast/eslint-config": "^2.1.1",
    "@types/node": "^25.9.3",
    "@types/react": "^19.2.17",
    "eslint": "^10.5.0",
    "prettier": "^3.8.4",
    "typescript": "^5.9.3"
  }
}