- Add scripts/build.ts: Bun-based build script for generating binaries
- Support macOS (x64, ARM64, Universal), Windows (x64, ARM64), Linux (x64, ARM64)
- Add build:* npm scripts for each platform (build:mac, build:win, build:linux, etc)
- Configure electron-builder with platform-specific settings:
* macOS: DMG + ZIP, Universal binaries, proper icon paths
* Windows: NSIS installer + ZIP, configurable install directory
* Linux: AppImage + DEB + tar.gz packages
- Add BUILD.md: Comprehensive build documentation with examples
- Update README.md: Add build instructions and reference BUILD.md
- Artifacts named: OpenCode Client-{version}-{os}-{arch}.{ext}
- Output directory: release/
Usage:
bun run build:mac # macOS Universal (Intel + Apple Silicon)
bun run build:win # Windows x64
bun run build:linux # Linux x64
bun run build:all # All platforms
151 lines
3.6 KiB
JSON
151 lines
3.6 KiB
JSON
{
|
|
"name": "@opencode-ai/client",
|
|
"version": "0.1.0",
|
|
"description": "OpenCode desktop client - multi-instance, multi-session AI coding interface",
|
|
"type": "module",
|
|
"main": "dist/main/main.js",
|
|
"scripts": {
|
|
"dev": "electron-vite dev",
|
|
"dev:electron": "NODE_ENV=development electron .",
|
|
"build": "electron-vite build",
|
|
"typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.node.json",
|
|
"preview": "electron-vite preview",
|
|
"build:binaries": "bun scripts/build.ts",
|
|
"build:mac": "bun scripts/build.ts mac",
|
|
"build:mac-x64": "bun scripts/build.ts mac-x64",
|
|
"build:mac-arm64": "bun scripts/build.ts mac-arm64",
|
|
"build:win": "bun scripts/build.ts win",
|
|
"build:win-arm64": "bun scripts/build.ts win-arm64",
|
|
"build:linux": "bun scripts/build.ts linux",
|
|
"build:linux-arm64": "bun scripts/build.ts linux-arm64",
|
|
"build:all": "bun scripts/build.ts all",
|
|
"package:mac": "electron-builder --mac",
|
|
"package:win": "electron-builder --win",
|
|
"package:linux": "electron-builder --linux"
|
|
},
|
|
"dependencies": {
|
|
"@kobalte/core": "0.13.11",
|
|
"@opencode-ai/sdk": "0.15.13",
|
|
"@solidjs/router": "^0.13.0",
|
|
"electron": "38.4.0",
|
|
"ignore": "7.0.5",
|
|
"lucide-solid": "^0.300.0",
|
|
"marked": "^12.0.0",
|
|
"shiki": "^3.13.0",
|
|
"solid-js": "^1.8.0"
|
|
},
|
|
"devDependencies": {
|
|
"autoprefixer": "10.4.21",
|
|
"electron-builder": "^24.0.0",
|
|
"electron-vite": "^2.0.0",
|
|
"postcss": "8.5.6",
|
|
"tailwindcss": "3",
|
|
"typescript": "^5.3.0",
|
|
"vite": "^5.0.0",
|
|
"vite-plugin-solid": "^2.10.0"
|
|
},
|
|
"build": {
|
|
"appId": "ai.opencode.client",
|
|
"productName": "OpenCode Client",
|
|
"directories": {
|
|
"output": "release",
|
|
"buildResources": "electron/resources"
|
|
},
|
|
"files": [
|
|
"dist/**/*",
|
|
"package.json"
|
|
],
|
|
"mac": {
|
|
"category": "public.app-category.developer-tools",
|
|
"target": [
|
|
{
|
|
"target": "dmg",
|
|
"arch": [
|
|
"x64",
|
|
"arm64",
|
|
"universal"
|
|
]
|
|
},
|
|
{
|
|
"target": "zip",
|
|
"arch": [
|
|
"x64",
|
|
"arm64",
|
|
"universal"
|
|
]
|
|
}
|
|
],
|
|
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}",
|
|
"icon": "electron/resources/icon.icns"
|
|
},
|
|
"dmg": {
|
|
"contents": [
|
|
{
|
|
"x": 130,
|
|
"y": 220
|
|
},
|
|
{
|
|
"x": 410,
|
|
"y": 220,
|
|
"type": "link",
|
|
"path": "/Applications"
|
|
}
|
|
]
|
|
},
|
|
"win": {
|
|
"target": [
|
|
{
|
|
"target": "nsis",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
},
|
|
{
|
|
"target": "zip",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
}
|
|
],
|
|
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}",
|
|
"icon": "electron/resources/icon.ico"
|
|
},
|
|
"nsis": {
|
|
"oneClick": false,
|
|
"allowToChangeInstallationDirectory": true,
|
|
"createDesktopShortcut": true,
|
|
"createStartMenuShortcut": true
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
{
|
|
"target": "AppImage",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
},
|
|
{
|
|
"target": "deb",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
},
|
|
{
|
|
"target": "tar.gz",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
}
|
|
],
|
|
"artifactName": "${productName}-${version}-${os}-${arch}.${ext}",
|
|
"category": "Development",
|
|
"icon": "electron/resources/icon.png"
|
|
}
|
|
}
|
|
}
|