@levante-hub/levante
BMCP server package levante
Install
agr install @levante-hub/levante --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "levante", "version": "1.8.2", "description": "A friendly, private desktop chat app with AI and MCP integration", "main": ".vite/build/main.js", "homepage": "https://github.com/minte-community/levante", "repository": { "type": "git", "url": "https://github.com/levante-hub/levante.git" }, "author": { "name": "Levante Team", "email": "hello@levanteapp.com" }, "license": "Apache 2.0", "private": true, "scripts": { "dev": "electron-forge start", "typecheck": "tsc --noEmit && tsc --noEmit --project tsconfig.preload.json", "check-types": "tsc --noEmit && tsc --noEmit --project tsconfig.preload.json", "lint": "eslint . --ext .js,.jsx,.ts,.tsx --report-unused-disable-directives --max-warnings 0", "lint:fix": "eslint . --ext .js,.jsx,.ts,.tsx --fix", "test": "vitest", "test:ui": "vitest --ui", "test:e2e": "playwright test", "check:outdated": "pnpm outdated", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", "start": "electron-forge start" }, "dependencies": { "@ai-sdk/anthropic": "^3.0.50", "@ai-sdk/gateway": "^3.0.59", "@ai-sdk/google": "^3.0.34", "@ai-sdk/openai": "^3.0.37", "@ai-sdk/openai-compatible": "^2.0.31", "@ai-sdk/react": "^3.0.107", "@ai-sdk/ui-utils": "^1.2.11", "@codemirror/lang-json": "^6.0.2", "@codemirror/theme-one-dark": "^6.1.3", "@hookform/resolvers": "^5.2.2", "@huggingface/inference": "^4.13.14", "@lexical/react": "^0.41.0", "@libsql/client": "^0.17.0", "@mcp-ui/client": "^6.1.0", "@mcp-ui/server": "^6.1.0", "@modelcontextprotocol/sdk": "^1.27.1", "@openrouter/ai-sdk-provider": "^2.2.3", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-aspect-ratio": "^1.1.8", "@radix-ui/react-avatar": "^1.1.11", "@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-dropdown-menu": "^2.1.16", "@radix-ui/react-hover-card": "^1.1.15", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.8", "@radix-ui/react-menubar": "^1.1.16", "@radix-ui/react-navigation-menu": "^1.2.14", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-radio-group": "^1.3.8", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-switch": "^1.2.6", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-toast": "^1.2.15", "@radix-ui/react-toggle": "^1.1.10", "@radix-ui/react-toggle-group": "^1.1.11", "@radix-ui/react-tooltip": "^1.2.8", "@radix-ui/react-use-controllable-state": "^1.2.2", "@supabase/supabase-js": "^2.98.0", "@uiw/react-codemirror": "^4.25.5", "ai": "^6.0.105", "chokidar": "^5.0.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "diff": "^8.0.3", "dotenv": "^17.3.1", "electron-store": "^11.0.2", "electron-updater": "^6.3.9", "embla-carousel-react": "^8.6.0", "extract-zip": "^2.0.1", "fix-path": "^5.0.0", "i18next": "^25.8.13", "iceberg-js": "^0.8.1", "ignore": "^7.0.5", "input-otp": "^1.4.2", "jwt-decode": "^4.0.0", "katex": "^0.16.33", "langchain": "^1.2.28", "lexical": "^0.41.0", "lucide-react": "^0.541.0", "mcp-use": "^1.20.5", "mermaid": "^11.12.3", "next-themes": "^0.4.6", "path-browserify": "^1.0.1", "pdf-parse": "^2.4.5", "pdfjs-dist": "^5.4.296", "react": "^19.2.4", "react-day-picker": "^9.14.0", "react-dom": "^19.2.4", "react-hook-form": "^7.71.2", "react-i18next": "^16.5.4", "react-markdown": "^10.1.0", "react-resizable-panels": "^4.7.0", "react-syntax-highlighter": "^16.1.1", "recharts": "^3.7.0", "rehype-katex": "^7.0.1", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "sharp": "^0.33.5", "shiki": "^1.0.0", "sonner": "^2.0.7", "streamdown": "^2.3.0", "tailwind-merge": "^3.5.0", "tailwindcss-animate": "^1.0.7", "update-electron-app": "^3.1.2", "use-stick-to-bottom": "^1.1.3", "vaul": "^1.1.2", "winston": "^3.19.0", "winston-daily-rotate-file": "^5.0.0", "zod": "^4.3.6", "zustand": "^5.0.11" }, "devDependencies": { "@electron-forge/cli": "^7.11.1", "@electron-forge/maker-deb": "^7.11.1", "@electron-forge/maker-dmg": "^7.11.1", "@electron-forge/maker-rpm": "^7.11.1", "@electron-forge/maker-zip": "^7.11.1", "@electron-forge/plugin-auto-unpack-natives": "^7.11.1", "@electron-forge/plugin-vite": "^7.11.1", "@electron-forge/publisher-github": "^7.11.1", "@electron/notarize": "^3.1.1", "@electron/osx-sign": "^2.3.0", "@felixrieseberg/electron-forge-maker-nsis": "^7.2.0", "@playwright/test": "^1.58.2", "@reforged/maker-appimage": "^5.2.0", "@types/fs-extra": "^11.0.4", "@types/node": "^24.11.0", "@types/path-browserify": "^1.0.3", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/react-syntax-highlighter": "^15.5.13", "@typescript-eslint/eslint-plugin": "^8.56.1", "@typescript-eslint/parser": "^8.56.1", "@vitejs/plugin-react": "^5.1.4", "autoprefixer": "^10.4.27", "concurrently": "^9.2.1", "electron": "^37.10.3", "eslint": "^9.39.3", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "fs-extra": "^11.3.3", "postcss": "^8.5.6", "tailwindcss": "^3.4.19", "typescript": "^5.9.3", "vite": "^7.3.1", "vitest": "^3.2.4" }, "engines": { "node": ">=24.0.0", "pnpm": ">=8.0.0" }, "packageManager": "pnpm@9.4.0", "pnpm": { "overrides": { "prismjs": "^1.30.0", "tar-fs": "^3.1.1", "tmp": "^0.2.3", "esbuild": "^0.25.0", "@modelcontextprotocol/sdk": "^1.27.1", "@langchain/core": "^1.1.8", "langchain": "^1.2.3", "react-router": ">=7.12.0", "tar": ">=7.5.11", "minimatch": "10.0.1", "@electron/asar>minimatch": "^3.0.4", "rollup": ">=4.59.0", "hono": ">=4.12.7", "serialize-javascript": ">=7.0.5", "flatted": ">=3.4.2", "picomatch": ">=4.0.4", "path-to-regexp": ">=8.4.0", "@xmldom/xmldom": "^0.8.12", "lodash": ">=4.18.0", "lodash-es": ">=4.18.0", "brace-expansion": "^2.0.2", "express-rate-limit": ">=8.2.2", "@hono/node-server": ">=1.19.10", "@tootallnate/once": ">=3.0.1" } } }
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- warnLicenseno SPDX license detected
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-48a7e227a88d2026-08-06