{
  "name": "@kaitranntt/ccs",
  "version": "7.72.0",
  "description": "Claude Code Switch - Instant profile switching between Claude, GLM, Kimi, and more",
  "keywords": [
    "cli",
    "claude",
    "glm",
    "ai",
    "profile",
    "switch"
  ],
  "homepage": "https://github.com/kaitranntt/ccs",
  "bugs": {
    "url": "https://github.com/kaitranntt/ccs/issues"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/kaitranntt/ccs.git"
  },
  "license": "MIT",
  "author": {
    "name": "Tam Nhu Tran (Kai)",
    "email": "kaitranntt@users.noreply.github.com"
  },
  "main": "dist/ccs.js",
  "types": "dist/ccs.d.ts",
  "bin": {
    "ccs": "dist/ccs.js",
    "ccs-droid": "dist/bin/droid-runtime.js",
    "ccsd": "dist/bin/droid-runtime.js",
    "ccs-codex": "dist/bin/codex-runtime.js",
    "ccsx": "dist/bin/codex-runtime.js",
    "ccsxp": "dist/bin/ccsxp-runtime.js"
  },
  "files": [
    "dist/",
    "lib/",
    "scripts/",
    "config/",
    ".claude/",
    "VERSION",
    "README.md",
    "LICENSE"
  ],
  "engines": {
    "node": ">=18.0.0",
    "bun": ">=1.0.0"
  },
  "packageManager": "bun@1.3.9",
  "os": [
    "darwin",
    "linux",
    "win32"
  ],
  "preferGlobal": true,
  "scripts": {
    "preinstall": "node scripts/preinstall.js",
    "postuninstall": "node scripts/postuninstall.js",
    "build": "tsc && node scripts/add-shebang.js",
    "build:watch": "tsc --watch",
    "build:server": "tsc && node scripts/add-shebang.js",
    "build:all": "bun run ui:build && bun run build:server",
    "prebuild": "node scripts/clean-dist.js",
    "prebuild:server": "node scripts/clean-dist.js",
    "prebuild:all": "rm -rf dist tsconfig.tsbuildinfo",
    "postbuild:all": "node scripts/verify-bundle.js",
    "typecheck": "tsc --noEmit",
    "lint": "eslint src/",
    "lint:fix": "eslint src/ --fix",
    "format": "prettier --write src/",
    "format:check": "prettier --check src/",
    "validate": "bun run typecheck && bun run lint:fix && bun run format:check && bun run test:all",
    "validate:ci-parity": "bash scripts/ci-parity-gate.sh",
    "verify:bundle": "node scripts/verify-bundle.js",
    "test": "bun run build && bun run test:all",
    "test:ci": "bun run test:all",
    "test:all": "bun test tests/unit tests/integration tests/npm",
    "test:unit": "bun test tests/unit",
    "test:npm": "bun test tests/npm/",
    "test:native": "bash tests/native/unix/edge-cases.sh",
    "test:e2e": "bun test tests/e2e/ --bail --timeout 60000",
    "report:hardening": "node scripts/hardening-inventory.js",
    "dev": "bun run build:server && node dist/ccs.js config --dev",
    "dev:symlink": "bash scripts/dev-symlink.sh",
    "dev:unlink": "bash scripts/dev-symlink.sh --restore",
    "ui:build": "cd ui && bun run build",
    "ui:preview": "cd ui && bun run preview",
    "ui:validate": "cd ui && bun run validate",
    "prepack": "bun run build:all",
    "prepare": "husky",
    "postinstall": "node scripts/postinstall.js"
  },
  "dependencies": {
    "bcrypt": "^6.0.0",
    "boxen": "^5.1.2",
    "chalk": "^4.1.2",
    "chokidar": "^3.6.0",
    "cli-table3": "^0.6.5",
    "express": "^4.18.2",
    "express-rate-limit": "^8.2.1",
    "express-session": "^1.18.2",
    "get-port": "^5.1.1",
    "gradient-string": "^2.0.2",
    "http-proxy-agent": "^7.0.2",
    "https-proxy-agent": "^7.0.6",
    "js-yaml": "^4.1.1",
    "listr2": "^3.14.0",
    "open": "^8.4.2",
    "ora": "^5.4.1",
    "proper-lockfile": "^4.1.2",
    "smol-toml": "^1.6.1",
    "undici": "^5.29.0",
    "ws": "^8.16.0"
  },
  "devDependencies": {
    "@commitlint/cli": "^20.1.0",
    "@commitlint/config-conventional": "^20.0.0",
    "@semantic-release/changelog": "^6.0.3",
    "@semantic-release/commit-analyzer": "^13.0.1",
    "@semantic-release/git": "^10.0.1",
    "@semantic-release/github": "^12.0.2",
    "@semantic-release/npm": "^13.1.3",
    "@semantic-release/release-notes-generator": "^14.1.0",
    "@tailwindcss/vite": "^4.1.17",
    "@types/bcrypt": "^6.0.0",
    "@types/bun": "^1.3.12",
    "@types/chokidar": "^2.1.7",
    "@types/express": "^4.17.21",
    "@types/express-rate-limit": "6.0.0",
    "@types/express-session": "^1.18.2",
    "@types/js-yaml": "^4.0.9",
    "@types/node": "^20.19.25",
    "@types/proper-lockfile": "^4.1.4",
    "@types/ws": "^8.5.10",
    "@typescript-eslint/eslint-plugin": "^8.48.0",
    "@typescript-eslint/parser": "^8.48.0",
    "@vitejs/plugin-react": "^5.1.1",
    "conventional-changelog-conventionalcommits": "^9.1.0",
    "eslint": "^9.39.1",
    "eslint-config-prettier": "^10.1.8",
    "husky": "^9.1.7",
    "marked": "^15.0.12",
    "mocha": "^11.7.5",
    "prettier": "^3.6.2",
    "semantic-release": "^25.0.2",
    "typescript": "5.3",
    "vite": "^7.2.4"
  }
}
