This is a follow-up to our pieces-os request (thread). pieces-for-developers is the desktop client app for Pieces (companion to the already-approved pieces-os snap). Our Verified Publisher status (Mesh Intelligent Technologies Inc., development@pieces.app) is already approved, and that vetting request listed both pieces-os and pieces-for-developers.
This request is associated with revision 105 (version 6.0.2). The package passes all automated checks (69 passes, 0 warnings); the only items flagged for manual review are the 7 personal-files plug declarations below.
These interfaces are entirely OPTIONAL for the user. The core app (recalling and searching your long-term workflow memory) is fully functional with none of them connected. They exist solely to power the optional MCP integration feature, and each is requested as a manual connection so the user must explicitly opt in per client.
-
name: pieces-for-developers
-
description: Pieces for Developers is the desktop client app for Pieces — a local-first, long-term memory engine for your workflow. It automatically captures and resurfaces the context of your work (code, docs, chats, links and more) across your toolchain, lets you recall and search those memories using natural-language and time-based queries, and connects that personal context to AI tools (Cursor, Claude, Codex, Gemini, VS Code/GitHub Copilot, Antigravity) over MCP. Private by design and local by default.
-
snapcraft: PRIVATE
-
upstream: PRIVATE
-
upstream-relation: official package
-
interfaces:
-
mcp-cursor-config(personal-files — write$HOME/.cursor/mcp.json)- request-type: manual-connection
- reasoning: On user request, the app writes the Pieces MCP server entry into Cursor’s MCP config file so Cursor can connect to the user’s local memory. Scoped to the single config file (least-privilege). Manual / opt-in only.
-
mcp-claude-desktop-config(personal-files — write$HOME/.config/Claude/claude_desktop_config.json)- request-type: manual-connection
- reasoning: Writes the Pieces MCP server entry into Claude Desktop’s config file. Scoped to the single config file. Manual / opt-in only.
-
mcp-claude-code-config(personal-files — write$HOME/.claude.json)- request-type: manual-connection
- reasoning: Claude Code stores user-scope MCP servers in
~/.claude.json; the app writes the Pieces MCP server entry there. Scoped to the single config file. Manual / opt-in only.
-
mcp-gemini-config(personal-files — write$HOME/.gemini/settings.json)- request-type: manual-connection
- reasoning: Writes the Pieces MCP server entry into the Google Gemini CLI settings file. Scoped to the single config file. Manual / opt-in only.
-
mcp-vscode-config(personal-files — write$HOME/.config/Code/User/mcp.json+ read$HOME/.config/Code/User)- request-type: manual-connection
- reasoning: Writes the Pieces MCP server entry into the VS Code (GitHub Copilot) user-profile
mcp.json. This is the only plug that also requests directory read: unlike the other clients, VS Code does not createmcp.jsonuntil the user adds their first MCP server, so we detect whether VS Code is installed by checking for the existence of the~/.config/Code/Userprofile directory, which under strict confinement requires read access to it. The app only ever writes tomcp.jsonitself. Manual / opt-in only.
-
mcp-antigravity-config(personal-files — write$HOME/.gemini/antigravity/mcp_config.json)- request-type: manual-connection
- reasoning: Antigravity (Google’s IDE) keeps MCP servers in its own subdir under
~/.gemini; the app writes the Pieces MCP server entry there. Scoped to the single config file. Manual / opt-in only.
-
mcp-codex-config(personal-files — write$HOME/.codex/config.toml)- request-type: manual-connection
- reasoning: Writes the Pieces MCP server entry into Codex’s config file. Scoped to the single config file. Manual / opt-in only.
-
Privacy & consent: Every one of these interfaces is optional — the app works fully without any of them, and none is auto-connected. Users explicitly enable a given client from the in-app MCP settings UI or via our bundled pieces-for-developers.doctor utility, and no file is written without an explicit user action. Each plug is deliberately scoped to a single config file per client (rather than the whole client config directory) to follow least-privilege; the one exception is the read-only directory check for VS Code described above. Thank you for the review!