{
  "name": "@cloudcli-ai/cloudcli",
  "version": "1.34.0",
  "productName": "CloudCLI",
  "description": "A web-based UI for Claude Code CLI",
  "type": "module",
  "main": "dist-server/server/index.js",
  "bin": {
    "cloudcli": "dist-server/server/cli.js"
  },
  "files": [
    "electron/",
    "server/",
    "shared/",
    "public/api-docs.html",
    "dist/",
    "dist-server/",
    "scripts/",
    "README.md"
  ],
  "homepage": "https://cloudcli.ai",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/siteboon/claudecodeui.git"
  },
  "bugs": {
    "url": "https://github.com/siteboon/claudecodeui/issues"
  },
  "scripts": {
    "dev": "concurrently --kill-others \"npm run server:dev\" \"npm run client\"",
    "server": "node dist-server/server/index.js",
    "preserver:dev": "npm run build:semantics",
    "server:dev": "tsx --tsconfig server/tsconfig.json server/index.js",
    "preserver:dev-watch": "npm run build:semantics",
    "server:dev-watch": "tsx watch --tsconfig server/tsconfig.json server/index.js",
    "client": "vite",
    "desktop": "electron electron/main.js",
    "predesktop:dev": "npm run build:semantics",
    "desktop:dev": "cross-env ELECTRON_DEV_URL=http://127.0.0.1:5173 electron electron/main.js",
    "desktop:stage": "node scripts/release/prepare-desktop-app.js",
    "desktop:pack": "npm run build && npm run desktop:stage && electron-builder --projectDir .desktop-build/desktop-app --dir",
    "desktop:dist:mac": "npm run build && npm run desktop:stage && electron-builder --projectDir .desktop-build/desktop-app --mac dmg",
    "desktop:dist:win": "npm run build && npm run desktop:stage && electron-builder --projectDir .desktop-build/desktop-app --win nsis",
    "server:bundle": "npm run build && node scripts/release/build-server-bundle.js",
    "desktop:icon:mac": "node electron/scripts/generate-macos-icon.js",
    "build": "npm run build:semantics && npm run build:client && npm run build:server",
    "build:client": "vite build",
    "build:semantics": "node scripts/build-computer-semantics.mjs",
    "prebuild:server": "node -e \"require('node:fs').rmSync('dist-server', { recursive: true, force: true })\"",
    "build:server": "tsc -p server/tsconfig.json && tsc-alias -p server/tsconfig.json",
    "postbuild:server": "node scripts/copy-computer-semantics-bin.mjs",
    "preview": "vite preview",
    "typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p server/tsconfig.json",
    "lint": "eslint src/ server/",
    "lint:fix": "eslint src/ server/ --fix",
    "start": "npm run build && npm run server",
    "release": "./release.sh",
    "prepublishOnly": "npm run build",
    "postinstall": "node scripts/fix-node-pty.js && npm run build:semantics",
    "prepare": "husky",
    "update:platform": "./update-platform.sh"
  },
  "build": {
    "appId": "ai.cloudcli.desktop",
    "productName": "CloudCLI",
    "asar": false,
    "artifactName": "cloudcli-desktop-${version}-${os}-${arch}.${ext}",
    "directories": {
      "output": "release/desktop"
    },
    "extraMetadata": {
      "main": "electron/main.js"
    },
    "files": [
      "electron/",
      "public/",
      "dist/",
      "dist-server/",
      "shared/",
      "server/",
      "package.json",
      "!**/node_modules/@anthropic-ai/claude-agent-sdk-{darwin,linux,win32}-*/**"
    ],
    "protocols": [
      {
        "name": "CloudCLI",
        "schemes": [
          "cloudcli"
        ]
      }
    ],
    "mac": {
      "category": "public.app-category.developer-tools",
      "icon": "electron/assets/logo-macos.icns",
      "notarize": true,
      "target": [
        "dmg"
      ],
      "extendInfo": {
        "CFBundleName": "CloudCLI",
        "CFBundleDisplayName": "CloudCLI",
        "CFBundleURLTypes": [
          {
            "CFBundleURLName": "CloudCLI",
            "CFBundleURLSchemes": [
              "cloudcli"
            ]
          }
        ]
      }
    },
    "win": {
      "icon": "electron/assets/logo-windows.ico",
      "target": [
        "nsis"
      ]
    },
    "nsis": {
      "installerIcon": "electron/assets/logo-windows.ico",
      "uninstallerIcon": "electron/assets/logo-windows.ico"
    }
  },
  "keywords": [
    "claude code",
    "claude-code",
    "claude-code-ui",
    "cloudcli",
    "codex",
    "gemini",
    "gemini-cli",
    "cursor",
    "cursor-cli",
    "anthropic",
    "openai",
    "google",
    "coding-agent",
    "web-ui",
    "ui",
    "mobile IDE"
  ],
  "author": "CloudCLI UI Contributors",
  "license": "AGPL-3.0-or-later",
  "dependencies": {
    "@anthropic-ai/claude-agent-sdk": "^0.3.165",
    "@codemirror/lang-css": "^6.3.1",
    "@codemirror/lang-html": "^6.4.9",
    "@codemirror/lang-javascript": "^6.2.4",
    "@codemirror/lang-json": "^6.0.1",
    "@codemirror/lang-markdown": "^6.3.3",
    "@codemirror/lang-python": "^6.2.1",
    "@codemirror/merge": "^6.11.1",
    "@codemirror/theme-one-dark": "^6.1.2",
    "@iarna/toml": "^2.2.5",
    "@octokit/rest": "^22.0.0",
    "@openai/codex-sdk": "^0.141.0",
    "@replit/codemirror-minimap": "^0.5.2",
    "@tailwindcss/typography": "^0.5.16",
    "@uiw/react-codemirror": "^4.23.13",
    "@vscode/ripgrep": "^1.17.1",
    "@xterm/addon-clipboard": "^0.1.0",
    "@xterm/addon-fit": "^0.10.0",
    "@xterm/addon-web-links": "^0.11.0",
    "@xterm/addon-webgl": "^0.18.0",
    "@xterm/xterm": "^5.5.0",
    "bcrypt": "^6.0.0",
    "better-sqlite3": "^12.6.2",
    "chokidar": "^4.0.3",
    "class-variance-authority": "^0.7.1",
    "clsx": "^2.1.1",
    "cmdk": "^1.1.1",
    "cors": "^2.8.5",
    "cross-spawn": "^7.0.3",
    "dompurify": "^3.4.7",
    "express": "^4.18.2",
    "fuse.js": "^7.0.0",
    "gray-matter": "^4.0.3",
    "i18next": "^25.7.4",
    "i18next-browser-languagedetector": "^8.2.0",
    "jsonwebtoken": "^9.0.2",
    "jszip": "^3.10.1",
    "katex": "^0.16.25",
    "lucide-react": "^0.515.0",
    "mime-types": "^3.0.1",
    "multer": "^2.0.1",
    "node-fetch": "^2.7.0",
    "node-pty": "^1.2.0-beta.12",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-dropzone": "^14.2.3",
    "react-error-boundary": "^4.1.2",
    "react-i18next": "^16.5.3",
    "react-markdown": "^10.1.0",
    "react-router-dom": "^6.8.1",
    "react-syntax-highlighter": "^15.6.1",
    "rehype-katex": "^7.0.1",
    "rehype-raw": "^7.0.0",
    "remark-gfm": "^4.0.0",
    "remark-math": "^6.0.0",
    "tailwind-merge": "^3.3.1",
    "web-push": "^3.6.7",
    "ws": "^8.14.2"
  },
  "devDependencies": {
    "@commitlint/cli": "^20.5.0",
    "@commitlint/config-conventional": "^20.5.0",
    "@eslint/js": "^9.39.3",
    "@release-it/conventional-changelog": "^10.0.5",
    "@types/better-sqlite3": "^7.6.13",
    "@types/cross-spawn": "^6.0.6",
    "@types/express": "^5.0.6",
    "@types/node": "^22.19.7",
    "@types/react": "^18.2.43",
    "@types/react-dom": "^18.2.17",
    "@types/ws": "^8.18.1",
    "@vitejs/plugin-react": "^4.6.0",
    "auto-changelog": "^2.5.0",
    "autoprefixer": "^10.4.16",
    "concurrently": "^8.2.2",
    "cross-env": "^10.1.0",
    "electron": "^38.0.0",
    "electron-builder": "^26.15.3",
    "eslint": "^9.39.3",
    "eslint-import-resolver-typescript": "^4.4.4",
    "eslint-plugin-boundaries": "^6.0.2",
    "eslint-plugin-import-x": "^4.16.1",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-react-refresh": "^0.5.2",
    "eslint-plugin-tailwindcss": "^3.18.2",
    "eslint-plugin-unused-imports": "^4.4.1",
    "globals": "^17.4.0",
    "husky": "^9.1.7",
    "lint-staged": "^16.3.2",
    "node-gyp": "^10.0.0",
    "postcss": "^8.4.32",
    "release-it": "^19.0.5",
    "sharp": "^0.34.2",
    "tailwindcss": "^3.4.0",
    "tsc-alias": "^1.8.16",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3",
    "typescript-eslint": "^8.56.1",
    "vite": "^7.0.4"
  },
  "lint-staged": {
    "src/**/*.{ts,tsx,js,jsx}": "eslint",
    "server/**/*.{js,ts}": "eslint"
  },
  "optionalDependencies": {
    "@nut-tree-fork/nut-js": "^4.2.6",
    "screenshot-desktop": "^1.15.4"
  }
}
