{ "name": "claude-agent-teams-ui", "type": "module", "version": "0.1.0", "description": "Desktop app that visualizes Claude Code session execution — explore conversations, track context usage, and analyze tool calls", "license": "AGPL-3.0", "author": { "name": "Илия (777genius)", "email": "quantjumppro@gmail.com" }, "homepage": "https://github.com/777genius/claude_agent_teams_ui", "repository": { "type": "git", "url": "https://github.com/777genius/claude_agent_teams_ui.git" }, "bugs": { "url": "https://github.com/777genius/claude_agent_teams_ui/issues" }, "main": "dist-electron/main/index.cjs", "scripts": { "dev": "electron-vite dev", "dev:kill": "node bin/kill-dev.js", "prebuild": "tsx scripts/fetch-pricing-data.ts", "build": "electron-vite build", "dist": "electron-builder --mac --win --linux", "dist:mac": "electron-builder --mac --publish always", "dist:mac:arm64": "electron-builder --mac --arm64 --publish always", "dist:mac:x64": "electron-builder --mac --x64 --publish always", "dist:win": "electron-builder --win --publish always", "dist:linux": "electron-builder --linux --publish always", "preview": "electron-vite preview", "typecheck": "tsc --noEmit", "lint": "eslint src/", "lint:fix": "eslint src/ --fix", "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,css}\"", "format:check": "prettier --check \"src/**/*.{ts,tsx,js,jsx,json,css}\"", "check": "pnpm typecheck && pnpm lint && pnpm test && pnpm build", "fix": "pnpm lint:fix && pnpm format", "quality": "pnpm check && pnpm format:check && npx knip", "test:chunks": "tsx test/test-chunk-building.ts", "test:semantic": "tsx test/test-semantic-steps.ts", "test:noise": "tsx test/test-noise-filtering.ts", "test:task-filtering": "tsx test/test-task-filtering.ts", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "test:coverage:critical": "vitest run --coverage --config vitest.critical.config.ts", "standalone": "tsx src/main/standalone.ts", "standalone:build": "electron-vite build && vite build --config docker/vite.standalone.config.ts", "standalone:start": "node dist-standalone/index.cjs", "prepare": "husky", "postinstall": "electron-rebuild -f -o node-pty || echo 'node-pty rebuild failed (terminal will be disabled)'" }, "lint-staged": { "src/**/*.{ts,tsx,js,jsx}": [ "prettier --write" ], "src/**/*.{json,css}": [ "prettier --write" ] }, "dependencies": { "@codemirror/autocomplete": "^6.20.0", "@codemirror/commands": "^6.10.2", "@codemirror/lang-cpp": "^6.0.3", "@codemirror/lang-css": "^6.3.1", "@codemirror/lang-go": "^6.0.1", "@codemirror/lang-html": "^6.4.11", "@codemirror/lang-java": "^6.0.2", "@codemirror/lang-javascript": "^6.2.4", "@codemirror/lang-json": "^6.0.2", "@codemirror/lang-less": "^6.0.2", "@codemirror/lang-markdown": "^6.5.0", "@codemirror/lang-php": "^6.0.2", "@codemirror/lang-python": "^6.2.1", "@codemirror/lang-rust": "^6.0.2", "@codemirror/lang-sass": "^6.0.2", "@codemirror/lang-sql": "^6.10.0", "@codemirror/lang-xml": "^6.1.0", "@codemirror/lang-yaml": "^6.1.2", "@codemirror/language": "^6.12.1", "@codemirror/language-data": "^6.5.2", "@codemirror/merge": "^6.12.0", "@codemirror/search": "^6.6.0", "@codemirror/state": "^6.5.4", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.39.15", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@fastify/cors": "^11.2.0", "@fastify/static": "^9.0.0", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-context-menu": "^2.2.16", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-label": "^2.1.8", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@tanstack/react-virtual": "^3.10.8", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", "chokidar": "^4.0.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "1.0.4", "date-fns": "^3.6.0", "diff": "^8.0.3", "electron-updater": "^6.7.3", "fastify": "^5.7.4", "highlight.js": "^11.11.1", "idb-keyval": "^6.2.2", "isbinaryfile": "^6.0.0", "lucide-react": "^0.562.0", "mdast-util-to-hast": "^13.2.1", "node-diff3": "^3.2.0", "node-pty": "^1.1.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-markdown": "^10.1.0", "rehype-highlight": "^7.0.2", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "simple-git": "^3.32.3", "ssh-config": "^5.0.4", "ssh2": "^1.17.0", "tailwind-merge": "^3.5.0", "tailwindcss-animate": "^1.0.7", "unified": "^11.0.5", "zustand": "^4.5.0" }, "devDependencies": { "@electron/rebuild": "^4.0.3", "@eslint-community/eslint-plugin-eslint-comments": "^4.6.0", "@eslint/js": "^9.39.2", "@tailwindcss/typography": "^0.5.19", "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "@types/node": "^25.0.7", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@types/ssh2": "^1.15.5", "@vitejs/plugin-react": "^4.3.1", "@vitest/coverage-v8": "^3.1.4", "autoprefixer": "^10.4.17", "electron": "^40.3.0", "electron-builder": "^25.1.8", "electron-vite": "^2.3.0", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-boundaries": "^5.3.1", "eslint-plugin-import": "^2.32.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.4.26", "eslint-plugin-security": "^3.0.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-sonarjs": "^3.0.6", "eslint-plugin-tailwindcss": "^3.18.2", "globals": "^17.2.0", "happy-dom": "^20.0.2", "husky": "^9.1.7", "knip": "^5.82.1", "lint-staged": "^16.2.7", "postcss": "^8.4.35", "prettier": "^3.8.1", "prettier-plugin-tailwindcss": "^0.7.2", "tailwindcss": "^3.4.1", "tsx": "^4.21.0", "typescript": "^5.9.3", "typescript-eslint": "^8.54.0", "vite": "^5.4.2", "vitest": "^3.1.4" }, "build": { "appId": "com.claudecode.context", "productName": "Claude Agent Teams UI", "directories": { "output": "release" }, "files": [ "out/renderer/**", "dist-electron/**", "package.json" ], "asar": true, "asarUnpack": [ "out/renderer/**", "**/node_modules/node-pty/**" ], "extraResources": [ { "from": "resources/pricing.json", "to": "pricing.json" } ], "npmRebuild": false, "extraMetadata": { "main": "dist-electron/main/index.cjs" }, "mac": { "category": "public.app-category.developer-tools", "target": [ "dmg", "zip" ], "hardenedRuntime": true, "gatekeeperAssess": false, "notarize": true, "entitlements": "resources/entitlements.mac.plist", "entitlementsInherit": "resources/entitlements.mac.inherit.plist", "icon": "resources/icons/mac/icon.icns" }, "dmg": { "sign": false }, "win": { "target": [ "nsis" ], "icon": "resources/icons/win/icon.ico" }, "linux": { "target": [ "AppImage", "deb", "rpm", "pacman" ], "icon": "resources/icons/png", "category": "Development" }, "deb": { "afterInstall": "resources/afterInstall.sh" }, "nsis": { "oneClick": false, "perMachine": false, "allowToChangeInstallationDirectory": true }, "publish": [ { "provider": "github", "releaseType": "release" } ] }, "packageManager": "pnpm@10.25.0+sha512.5e82639027af37cf832061bcc6d639c219634488e0f2baebe785028a793de7b525ffcd3f7ff574f5e9860654e098fe852ba8ac5dd5cefe1767d23a020a92f501", "pnpm": { "onlyBuiltDependencies": [ "electron", "node-pty" ] }, "knip": { "entry": [ "src/main/index.ts", "src/main/standalone.ts", "src/preload/index.ts", "src/renderer/main.tsx", "electron.vite.config.ts", "docker/vite.standalone.config.ts" ], "project": [ "src/**/*.{ts,tsx}!" ], "ignore": [ "tsconfig*.json" ], "paths": { "@main/*": [ "./src/main/*" ], "@renderer/*": [ "./src/renderer/*" ], "@preload/*": [ "./src/preload/*" ], "@shared/*": [ "./src/shared/*" ] }, "ignoreBinaries": [ "pkg" ] } }