{
  "name": "gerbil",
  "productName": "Gerbil",
  "version": "1.7.0",
  "description": "Run Large Language Models locally",
  "main": "out/main/index.js",
  "homepage": "./",
  "engines": {
    "node": ">=22.0.0",
    "yarn": "^4.0.0"
  },
  "packageManager": "yarn@4.10.3",
  "scripts": {
    "dev": "electron-vite dev",
    "build": "electron-vite build",
    "package": "electron-vite build && electron-builder --publish=never",
    "analyze": "cross-env ANALYZE=true electron-vite build && yarn dlx open-cli dist/stats.html",
    "format": "prettier --write . --ignore-path .gitignore | grep -v '(unchanged)' || true",
    "lint": "eslint .",
    "lint:fix": "eslint . --fix",
    "compile": "tsc --noEmit",
    "test": "yarn lint && yarn compile",
    "release": "yarn dlx tsx scripts/release.ts"
  },
  "keywords": [
    "llm",
    "ai",
    "local-ai",
    "language-model",
    "koboldcpp",
    "electron",
    "privacy",
    "offline"
  ],
  "author": {
    "name": "lone-cloud",
    "email": "hoboman313@proton.me"
  },
  "license": "AGPL-3.0-or-later",
  "devDependencies": {
    "@eslint/js": "^9.37.0",
    "@types/node": "^24.7.2",
    "@types/react": "^19.2.2",
    "@types/react-dom": "^19.2.2",
    "@typescript-eslint/eslint-plugin": "^8.46.1",
    "@typescript-eslint/parser": "^8.46.1",
    "@vitejs/plugin-react": "^5.0.4",
    "cross-env": "^10.1.0",
    "electron": "^38.3.0",
    "electron-builder": "^26.0.12",
    "electron-vite": "^4.0.1",
    "eslint": "^9.37.0",
    "eslint-plugin-import": "^2.32.0",
    "eslint-plugin-no-comments": "^1.1.10",
    "eslint-plugin-promise": "^7.2.1",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.0",
    "eslint-plugin-sonarjs": "^3.0.5",
    "globals": "^16.4.0",
    "jiti": "^2.6.1",
    "prettier": "^3.6.2",
    "rollup-plugin-visualizer": "^6.0.4",
    "typescript": "^5.9.3",
    "vite": "^7.1.10"
  },
  "dependencies": {
    "@codemirror/search": "^6.5.11",
    "@codemirror/theme-one-dark": "^6.1.3",
    "@codemirror/view": "^6.38.6",
    "@fontsource/inter": "^5.2.8",
    "@mantine/core": "^8.3.5",
    "@mantine/hooks": "^8.3.5",
    "@types/yauzl": "^2.10.3",
    "@uiw/react-codemirror": "^4.25.2",
    "electron-updater": "^6.6.2",
    "execa": "^9.6.0",
    "lucide-react": "^0.545.0",
    "react": "^19.2.0",
    "react-dom": "^19.2.0",
    "react-error-boundary": "^6.0.0",
    "systeminformation": "^5.27.11",
    "winston": "^3.18.3",
    "winston-daily-rotate-file": "^5.0.0",
    "yauzl": "^3.2.0",
    "zustand": "^5.0.8"
  },
  "build": {
    "appId": "com.gerbil.app",
    "productName": "Gerbil",
    "compression": "normal",
    "publish": {
      "provider": "github",
      "owner": "lone-cloud",
      "repo": "gerbil"
    },
    "electronLanguages": [
      "en-US"
    ],
    "directories": {
      "output": "release"
    },
    "files": [
      "out/**/*",
      "dist/**/*"
    ],
    "extraFiles": [
      {
        "from": "assets/kcpp_sdui.embd",
        "to": "assets/kcpp_sdui.embd"
      }
    ],
    "extraResources": [
      {
        "from": "src/assets/icon.png",
        "to": "icon.png"
      }
    ],
    "mac": {
      "compression": "maximum",
      "category": "public.app-category.productivity",
      "icon": "assets/icon.icns",
      "hardenedRuntime": true,
      "gatekeeperAssess": false,
      "entitlements": "assets/entitlements.mac.plist",
      "entitlementsInherit": "assets/entitlements.mac.plist",
      "extraFiles": [
        {
          "from": "assets/entitlements.mac.plist",
          "to": "assets/entitlements.mac.plist"
        }
      ],
      "target": [
        {
          "target": "dmg",
          "arch": [
            "arm64"
          ]
        }
      ]
    },
    "win": {
      "compression": "normal",
      "icon": "assets/icon.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        },
        {
          "target": "portable",
          "arch": [
            "x64"
          ]
        }
      ]
    },
    "nsis": {
      "artifactName": "${productName}-Setup-${version}.${ext}",
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "shortcutName": "Gerbil"
    },
    "portable": {
      "artifactName": "${productName}-Portable-${version}.${ext}"
    },
    "linux": {
      "compression": "store",
      "category": "Utility",
      "icon": "src/assets/icon.png",
      "extraFiles": [
        {
          "from": "assets/gerbil.desktop",
          "to": "assets/gerbil.desktop"
        }
      ],
      "target": [
        {
          "target": "AppImage",
          "arch": [
            "x64"
          ]
        }
      ]
    }
  }
}
