{ "name": "markuprplus", "productName": "MarkuprPlus", "version": "3.1.2", "description": "Record your screen, narrate feedback, get structured Markdown with screenshots. Desktop app, CLI, and MCP server for AI coding agents like Claude Code, Cursor, and Windsurf.", "type": "module", "main": "dist/main/index.mjs", "bin": { "markuprplus": "dist/cli/index.mjs", "markuprplus-mcp": "dist/mcp/index.mjs" }, "files": [ "dist/cli", "dist/mcp", "scripts/postinstall.mjs" ], "author": "Eddie San Juan", "license": "MIT", "homepage": "https://markuprplus.com", "repository": { "type": "git", "url": "git+https://github.com/hashfunction/MarkuprPlus.git" }, "bugs": { "url": "https://github.com/hashfunction/MarkuprPlus/issues" }, "mcpName": "io.github.hashfunction/markuprplus", "keywords": [ "mcp", "mcp-server", "model-context-protocol", "screen-recording", "screenshot", "developer-tools", "ai-agent", "claude-code", "cursor", "windsurf", "ai-coding", "feedback", "visual-feedback", "bug-reporting", "bug-report", "markdown", "transcription", "whisper", "voice", "voice-recording", "code-review", "developer-experience", "devtools", "cli", "electron", "menu-bar", "macos", "windows", "markuprplus", "github-action" ], "engines": { "node": ">=20.9.0" }, "publishConfig": { "access": "public" }, "scripts": { "postinstall": "node scripts/postinstall.mjs", "rebuild": "electron-rebuild", "dev": "electron-vite dev", "build": "node scripts/build.mjs", "start": "node site/server.js", "build:desktop": "electron-vite build", "build:mas": "MARKUPRPLUS_DISTRIBUTION=mas node scripts/build.mjs", "preview": "electron-vite preview", "package": "electron-builder --config electron-builder.yml && npm run verify:package", "package:mac": "electron-builder --mac --config electron-builder.yml && npm run verify:package", "package:mas": "npm run generate:mas-icon && npm run build:mas && node scripts/package-mas.mjs && npm run verify:mas", "package:mac:unsigned": "CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --mac --config electron-builder.yml && npm run verify:package", "package:win": "electron-builder --win --config electron-builder.yml && npm run verify:package", "dist:mac": "npm run build && electron-builder --mac --config electron-builder.yml && npm run verify:package", "dist:mac:universal": "npm run build && electron-builder --mac --universal --config electron-builder.yml && npm run verify:package", "dist:mac:x64": "npm run build && electron-builder --mac --x64 --config electron-builder.yml && npm run verify:package", "dist:mac:arm64": "npm run build && electron-builder --mac --arm64 --config electron-builder.yml && npm run verify:package", "dist:win": "electron-builder --win && npm run verify:package", "dist:win:portable": "electron-builder --win portable && npm run verify:package", "dist:win:nsis": "electron-builder --win nsis && npm run verify:package", "package:linux": "electron-builder --linux --config electron-builder.yml && npm run verify:package", "notarize:dmg": "node scripts/notarize-dmg.mjs", "verify:signing": "node scripts/verify-signing.mjs", "release:mac": "MARKUPRX_REQUIRE_NOTARIZATION=1 npm run build && MARKUPRX_REQUIRE_NOTARIZATION=1 electron-builder --mac --config electron-builder.yml && npm run verify:package && MARKUPRX_REQUIRE_NOTARIZATION=1 npm run notarize:dmg && npm run verify:signing", "test": "vitest", "test:unit": "vitest tests/unit", "test:integration": "vitest tests/integration", "test:e2e": "vitest tests/e2e", "test:ci": "vitest run --coverage", "test:coverage": "vitest --coverage", "test:watch": "vitest --watch", "test:ui": "vitest --ui", "test:ui-electron": "playwright test", "test:mcp:package": "node scripts/smoke-npm-package.mjs", "test:package-smoke": "node scripts/smoke-packaged-app.mjs", "test:all": "npm run test:ci && npm run build:desktop && npm run test:ui-electron", "lint": "eslint src --ext .ts,.tsx", "lint:fix": "eslint src --ext .ts,.tsx --fix", "verify:brand": "node scripts/verify-brand.mjs", "verify:ci": "node scripts/verify-ci.mjs", "verify:source": "npm run verify:brand && npm run lint && npm run typecheck && npm run test:ci && npm run build:desktop", "verify:package": "node scripts/verify-package.mjs", "verify:mas": "node scripts/verify-package.mjs --dir-only release-mas && node scripts/verify-mas-package.mjs release-mas", "audit": "npm audit --omit=dev --audit-level=high", "audit:prod": "npm audit --omit=dev --audit-level=high", "setup:markuprx": "bash ./scripts/setup-markuprx.sh", "typecheck": "tsc --noEmit", "generate:icons": "node scripts/generate-icons.mjs && node scripts/generate-tray-icons.mjs", "generate:mas-icon": "node scripts/generate-mas-icons.mjs", "generate:tray-icons": "node scripts/generate-tray-icons.mjs", "generate:installer-images": "node scripts/generate-installer-images.cjs", "prebuild:win": "npm run generate:installer-images", "build:cli": "node scripts/build-cli.mjs", "build:mcp": "node scripts/build-mcp.mjs", "prepublishOnly": "npm run build:cli && npm run build:mcp" }, "devDependencies": { "@electron/notarize": "^3.1.1", "@electron/rebuild": "^4.2.0", "@playwright/test": "^1.62.1", "@types/node": "^20.10.0", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.0", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "@vitejs/plugin-react": "^5.1.3", "@vitest/coverage-v8": "^1.6.1", "axe-core": "^4.13.0", "electron": "^28.0.0", "electron-builder": "^24.0.0", "electron-vite": "^2.0.0", "esbuild": "^0.28.2", "eslint": "^8.0.0", "eslint-plugin-react": "^7.0.0", "eslint-plugin-react-hooks": "^4.0.0", "js-yaml": "^5.4.1", "png2icons": "^2.0.1", "typescript": "^5.3.0", "vite": "^5.0.0", "vitest": "^1.0.0" }, "dependencies": { "@anthropic-ai/sdk": "^0.122.0", "@modelcontextprotocol/sdk": "^1.30.0", "commander": "^14.0.3", "electron-log": "^5.4.4", "electron-store": "^11.0.2", "electron-updater": "^6.7.3", "json5": "^2.2.3", "keytar": "^7.9.0", "react": "^18.2.0", "react-dom": "^18.2.0", "sharp": "^0.35.4", "whisper-node": "^1.1.1", "zod": "^4.4.3" }, "build": { "extends": null } }