{
  "name": "commandmate",
  "version": "0.40.1",
  "description": "A local control plane for agent CLIs — orchestration and visibility for Claude Code, Codex, Gemini CLI, and more across Git worktrees",
  "keywords": [
    "claude-code",
    "codex-cli",
    "gemini-cli",
    "agent-cli",
    "cli-orchestration",
    "ai-coding",
    "git-worktree",
    "coding-agent",
    "session-manager",
    "tmux",
    "cli",
    "developer-tools"
  ],
  "repository": {
    "type": "git",
    "url": "https://github.com/Kewton/CommandMate.git"
  },
  "bin": {
    "commandmate": "./bin/commandmate.js"
  },
  "engines": {
    "node": ">=22.0.0"
  },
  "files": [
    "bin/",
    "dist/",
    ".next/",
    "!.next/cache",
    "public/",
    "scripts/hooks/",
    ".env.example",
    "release-notes/"
  ],
  "scripts": {
    "dev": "tsx server.ts",
    "build": "NODE_ENV=production next build",
    "build:cli": "tsc --project tsconfig.cli.json",
    "build:server": "tsc --project tsconfig.server.json && tsc-alias -p tsconfig.server.json",
    "build:all": "npm run build && npm run build:cli && npm run build:server",
    "prepublishOnly": "npm run build:all",
    "start": "NODE_ENV=production node dist/server/server.js",
    "lint": "eslint . --ext .js,.jsx,.ts,.tsx,.mjs,.cjs",
    "lint:sh": "shellcheck -x -P scripts --severity=style --exclude=SC2086,SC2317,SC2116 $(find scripts tests/scripts .claude/lib -name '*.sh')",
    "check:tracking": "./scripts/check-commandmate-tracking.sh",
    "check:detector-freshness": "tsx scripts/check-detector-freshness.ts",
    "test": "NODE_ENV=test vitest",
    "test:ui": "NODE_ENV=test vitest --ui",
    "test:coverage": "NODE_ENV=test vitest --coverage",
    "test:unit": "NODE_ENV=test vitest run tests/unit",
    "test:integration": "NODE_ENV=test vitest run tests/integration",
    "test:e2e": "playwright test",
    "test:watch": "NODE_ENV=test vitest --watch",
    "db:init": "tsx scripts/init-db.ts",
    "db:reset": "rm -f db.sqlite && npm run db:init",
    "catalog:refresh": "tsx scripts/refresh-slash-command-catalog.ts",
    "canary": "tsx scripts/canary/index.ts"
  },
  "dependencies": {
    "@dnd-kit/core": "^6.3.1",
    "@dnd-kit/sortable": "^10.0.0",
    "@dnd-kit/utilities": "^3.2.2",
    "@marp-team/marp-core": "^4.3.0",
    "@radix-ui/react-checkbox": "^1.3.7",
    "@radix-ui/react-dropdown-menu": "^2.1.20",
    "@radix-ui/react-radio-group": "^1.4.3",
    "@radix-ui/react-select": "^2.3.3",
    "@radix-ui/react-switch": "^1.3.3",
    "@radix-ui/react-tabs": "^1.1.17",
    "@radix-ui/react-tooltip": "^1.2.12",
    "@tanstack/react-virtual": "^3.13.26",
    "ansi-to-html": "^0.7.2",
    "better-sqlite3": "^12.4.1",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "^1.1.1",
    "commander": "^14.0.2",
    "croner": "^10.0.1",
    "date-fns": "^4.1.0",
    "dotenv": "^17.2.3",
    "geist": "^1.7.2",
    "github-slugger": "^2.0.0",
    "gray-matter": "^4.0.3",
    "http-proxy": "^1.18.1",
    "isomorphic-dompurify": "^2.35.0",
    "jsdom": "^28.1.0",
    "lucide-react": "^0.554.0",
    "mermaid": "^11.12.2",
    "next": "^15.5.25",
    "next-intl": "^4.8.2",
    "next-themes": "^0.4.6",
    "postcss": "^8.5.6",
    "qr.js": "0.0.0",
    "react": "^19.2.7",
    "react-dom": "^19.2.7",
    "react-markdown": "^10.1.0",
    "react-qr-code": "^2.0.18",
    "rehype-highlight": "^7.0.2",
    "rehype-raw": "^7.0.0",
    "rehype-sanitize": "^6.0.0",
    "rehype-slug": "^6.0.0",
    "remark-gfm": "^4.0.1",
    "safe-regex2": "^5.0.0",
    "tailwind-merge": "^3.6.0",
    "uuid": "^13.0.0",
    "web-push": "^3.6.7",
    "ws": "^8.18.3",
    "xterm": "^5.3.0",
    "xterm-addon-fit": "^0.8.0",
    "xterm-addon-web-links": "^0.9.0",
    "yaml": "^2.9.0"
  },
  "devDependencies": {
    "@playwright/test": "^1.56.1",
    "@tailwindcss/postcss": "^4.3.2",
    "@tailwindcss/typography": "^0.5.20",
    "@testing-library/jest-dom": "^6.9.1",
    "@testing-library/react": "^16.3.2",
    "@types/better-sqlite3": "^7.6.13",
    "@types/eslint": "^8.56.12",
    "@types/http-proxy": "^1.17.17",
    "@types/node": "20.19.35",
    "@types/react": "^19.2.17",
    "@types/react-dom": "^19.2.3",
    "@types/uuid": "^10.0.0",
    "@types/web-push": "^3.6.4",
    "@types/ws": "^8.18.1",
    "@vitejs/plugin-react": "^5.2.0",
    "@vitest/coverage-v8": "^4.1.2",
    "@vitest/ui": "^4.1.2",
    "eslint": "^8.57.0",
    "eslint-config-next": "^15.5.20",
    "tailwindcss": "^4.3.2",
    "tsc-alias": "~1.8.16",
    "tsx": "^4.20.6",
    "tw-animate-css": "^1.4.0",
    "typescript": "^5.5.0",
    "vitest": "^4.1.2"
  }
}
