{ "name": "friendly-kobold", "productName": "FriendlyKobold", "version": "0.1.0", "description": "A modern Electron shell for KoboldCpp", "main": "out/main/index.js", "homepage": "./", "scripts": { "dev": "electron-vite dev", "build": "electron-vite build && electron-builder", "build:analyze": "ANALYZE=true electron-vite build", "build:electron": "electron-vite build", "analyze": "npm run build:analyze", "analyze:server": "ANALYZE=server electron-vite build", "preview": "electron-vite preview", "preb": "electron-vite build", "start": "electron .", "electron": "wait-on tcp:5173 && electron .", "dist": "electron-vite build && electron-builder", "format": "prettier --write . --ignore-path .gitignore", "lint": "eslint .", "lint:fix": "eslint . --fix", "lint:check": "eslint . --max-warnings 0", "type-check": "tsc --noEmit", "spell-check": "cspell \"**/*.{ts,tsx,js,jsx,md,json}\" --no-progress", "spell-check:fix": "cspell \"**/*.{ts,tsx,js,jsx,md,json}\" --no-progress --show-suggestions", "check-all": "npm run lint && npm run type-check && npm run spell-check", "prepare": "husky" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --fix", "cspell --no-progress", "prettier --write --ignore-path .gitignore" ], "*.{json,css,md}": [ "cspell --no-progress", "prettier --write --ignore-path .gitignore" ] }, "keywords": [ "electron", "koboldcpp", "ai", "llm" ], "author": "", "license": "GPL-3.0-or-later", "devDependencies": { "@cspell/eslint-plugin": "^9.2.0", "@eslint/js": "^9.33.0", "@tailwindcss/postcss": "^4.1.11", "@types/node": "^24.2.1", "@types/react": "^19.1.10", "@types/react-dom": "^19.1.7", "@typescript-eslint/eslint-plugin": "^8.39.1", "@typescript-eslint/parser": "^8.39.1", "@vitejs/plugin-react": "^5.0.0", "concurrently": "^9.2.0", "cspell": "^9.2.0", "electron": "^37.2.6", "electron-builder": "^26.0.12", "electron-vite": "^4.0.0", "eslint": "^9.33.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "eslint-plugin-security": "^3.0.1", "eslint-plugin-sonarjs": "^3.0.4", "globals": "^16.3.0", "husky": "^9.1.7", "lint-staged": "^16.1.5", "prettier": "^3.6.2", "rollup-plugin-visualizer": "^6.0.3", "tailwindcss": "^4.1.11", "typescript": "^5.9.2", "vite": "^7.1.2", "wait-on": "^8.0.4" }, "dependencies": { "@emotion/react": "^11.14.0", "@mantine/core": "^8.2.4", "@mantine/hooks": "^8.2.4", "@tabler/icons-react": "^3.34.1", "react": "^19.1.1", "react-dom": "^19.1.1" }, "build": { "appId": "com.friendlykobold.app", "productName": "FriendlyKobold", "directories": { "output": "release" }, "files": [ "dist/**/*", "dist-electron/**/*", "node_modules/**/*" ], "mac": { "icon": "assets/icon.icns", "target": [ { "target": "dmg", "arch": [ "x64", "arm64" ] } ] }, "win": { "icon": "assets/icon.ico", "target": [ { "target": "nsis", "arch": [ "x64" ] } ] }, "linux": { "icon": "assets/icon.png", "target": [ { "target": "AppImage", "arch": [ "x64" ] } ] } } }