{ "name": "friendly-kobold", "productName": "Friendly Kobold", "version": "0.4.0", "description": "A modern Electron shell for KoboldCpp", "main": "out/main/index.js", "homepage": "./", "engines": { "node": ">=22.0.0", "yarn": "^4.0.0" }, "volta": { "node": "22.18.0", "yarn": "4.9.2" }, "packageManager": "yarn@4.9.2", "scripts": { "dev": "electron-vite dev", "build": "electron-vite build", "package": "electron-vite build && electron-builder", "analyze": "cross-env ANALYZE=true electron-vite build && yarn dlx open-cli dist/stats.html", "format": "prettier --write . --ignore-path .gitignore", "lint": "eslint .", "lint:fix": "eslint . --fix", "compile": "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": "yarn lint && yarn compile && yarn spell-check", "release": "yarn dlx tsx scripts/release.ts", "prepare": "husky" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "eslint --fix", "cspell \"**/*.{ts,tsx,js,jsx,md,json}\" --no-progress", "prettier --write --ignore-path .gitignore" ], "*.{json,css,md}": [ "cspell \"**/*.{ts,tsx,js,jsx,md,json}\" --no-progress", "prettier --write --ignore-path .gitignore" ] }, "keywords": [ "electron", "koboldcpp", "ai", "llm" ], "author": "lone-cloud", "license": "AGPL-3.0-or-later", "devDependencies": { "@cspell/eslint-plugin": "^9.2.0", "@eslint/js": "^9.33.0", "@types/node": "^24.3.0", "@types/react": "^19.1.10", "@types/react-dom": "^19.1.7", "@typescript-eslint/eslint-plugin": "^8.40.0", "@typescript-eslint/parser": "^8.40.0", "@vitejs/plugin-react": "^5.0.1", "cross-env": "^10.0.0", "cspell": "^9.2.0", "electron": "^37.3.1", "electron-builder": "^26.0.12", "electron-vite": "^4.0.0", "eslint": "^9.33.0", "eslint-plugin-import": "^2.32.0", "eslint-plugin-no-comments": "^1.1.10", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.20", "eslint-plugin-sonarjs": "^3.0.4", "globals": "^16.3.0", "husky": "^9.1.7", "jiti": "^2.5.1", "lint-staged": "^16.1.5", "prettier": "^3.6.2", "rollup-plugin-visualizer": "^6.0.3", "typescript": "^5.9.2", "vite": "^7.1.3" }, "dependencies": { "@mantine/core": "^8.2.5", "@mantine/hooks": "^8.2.5", "ansi-to-html": "^0.7.2", "lucide-react": "^0.540.0", "react": "^19.1.1", "react-dom": "^19.1.1", "systeminformation": "^5.27.7", "zustand": "^5.0.8" }, "build": { "appId": "com.friendly-kobold.app", "productName": "Friendly Kobold", "compression": "normal", "icon": "assets/icon.png", "publish": null, "electronLanguages": [ "en-US" ], "directories": { "output": "release" }, "files": [ "out/**/*", "dist/**/*", "assets/**/*" ], "extraResources": [ { "from": "assets", "to": "assets", "filter": [ "**/*" ] }, { "from": "src/main/templates", "to": "templates", "filter": [ "**/*" ] } ], "mac": { "compression": "maximum", "category": "public.app-category.productivity", "hardenedRuntime": true, "gatekeeperAssess": false, "entitlements": "assets/entitlements.mac.plist", "entitlementsInherit": "assets/entitlements.mac.plist", "target": [ { "target": "dmg", "arch": [ "arm64" ] } ] }, "win": { "compression": "maximum", "target": [ { "target": "portable", "arch": [ "x64" ] } ] }, "linux": { "compression": "store", "category": "Development", "desktop": { "entry": { "Name": "Friendly Kobold", "Comment": "A modern Electron shell for KoboldCpp", "Categories": "Development;Utility;", "StartupWMClass": "Friendly Kobold" } }, "target": [ { "target": "AppImage", "arch": [ "x64" ] } ] } } }