← Browse

@lukasbach/pensieve

B

MCP server package pensieve

mcp_servermcp

Install

agr install @lukasbach/pensieve --target claude

This artifact does not publish files for Claude.

Document

{ "name": "pensieve", "version": "1.0.20", "description": "Desktop app for recording meetings from locally running apps and transcribing and summarizing them with a local LLM", "author": "Lukas Bach contact@lukasbach.com", "license": "MIT", "main": ".vite/build/main.js", "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make", "publish": "electron-forge publish", "typecheck": "tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage", "lint": "eslint .", "lint:fix": "eslint . --fix", "build:docs": "markbase build ./docs || echo 'markbase not available on this platform'", "start:docs": "markbase watch ./docs || echo 'markbase not available on this platform'", "postinstall": "cpy ./README.md ./docs --rename=index.md && cpy ./images ./docs" }, "dependencies": { "@modelcontextprotocol/sdk": "1.29.0", "@types/node": "20.19.0", "@types/react": "^18.2.69", "@types/react-dom": "^18.2.22", "@vitejs/plugin-react": "^4.2.1", "electron-log": "^5.1.5", "electron-squirrel-startup": "^1.0.0", "get-port": "^7.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", "zod": "^4.3.6" }, "optionalDependencies": { "markbase": "^0.0.6" }, "devDependencies": { "@electron-forge/cli": "^7.3.1", "@electron-forge/maker-appx": "^7.3.1", "@electron-forge/maker-deb": "^7.3.1", "@electron-forge/maker-dmg": "^7.10.2", "@electron-forge/maker-rpm": "^7.3.1", "@electron-forge/maker-squirrel": "^7.3.1", "@electron-forge/maker-zip": "^7.3.1", "@electron-forge/plugin-auto-unpack-natives": "^7.3.1", "@electron-forge/plugin-fuses": "^7.2.0", "@electron-forge/plugin-vite": "^7.3.1", "@electron-forge/publisher-github": "^7.3.1", "@electron/fuses": "^1.7.0", "@internationalized/date": "^3.5.3", "@langchain/classic": "^1.0.27", "@langchain/core": "^1.1.38", "@langchain/ollama": "^1.2.6", "@langchain/openai": "^1.4.1", "@langchain/textsplitters": "^1.0.1", "@lukasbach/eslint-config-deps": "^1.0.7", "@radix-ui/themes": "^3.0.1", "@react-hookz/web": "^24.0.4", "@resvg/resvg-js": "^2.6.2", "@tanstack/react-query": "^5.28.9", "@tanstack/react-router": "^1.26.1", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/deepmerge": "^2.2.0", "@types/electron-squirrel-startup": "^1", "@types/follow-redirects": "^1", "@types/fs-extra": "^11", "@types/humanize-duration": "^3.27.4", "@types/w3c-image-capture": "^1.0.10", "@vitest/coverage-v8": "3.2.4", "cpy-cli": "^5.0.0", "deepmerge": "^4.3.1", "electron": "37.2.4", "eslint": "^8.57.0", "eslint-plugin-import": "^2.25.0", "execa": "^8.0.1", "ffmpeg-static-electron": "^2.0.3", "follow-redirects": "^1.15.6", "fs-extra": "^11.2.0", "handlebars": "^4.7.8", "happy-dom": "^20.8.9", "humanize-duration": "^3.32.0", "png-to-ico": "^2.1.8", "react-aria": "^3.33.0", "react-hook-form": "^7.51.2", "react-icons": "^5.0.1", "react-markdown": "^9.0.1", "react-stately": "^3.31.0", "ts-node": "^10.0.0", "typescript": "^5.4.3", "update-electron-app": "^3.0.0", "vite": "^5.0.12", "vitest": "3.2.4", "whisper-cpp-static": "^0.0.3", "zustand": "^4.5.2" }, "eslintConfig": { "extends": [ "@lukasbach/base/react", "plugin:import/recommended", "plugin:import/electron", "plugin:import/typescript" ], "parserOptions": { "project": "./tsconfig.json" }, "rules": { "import/no-extraneous-dependencies": "off", "no-nested-ternary": "off", "no-shadow": "off", "react/no-array-index-key": "off", "jsx-a11y/label-has-associated-control": "warn" }, "ignorePatterns": [ "lib", "dist", "*.js" ] }, "volta": { "node": "20.11.1", "yarn": "4.1.1" }, "productName": "Pensieve", "funding": "https://github.com/sponsors/lukasbach", "keywords": [ "notes", "notetaker", "pensieve", "meeting", "note", "transcript", "transcribe", "llm", "record", "recorder", "recording", "summarize", "audio", "mp3" ], "repository": "https://github.com/lukasbach/pensieve.git" }

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-f887c5ae03402026-08-06