Request for OPTIONAL READ-ONLY personal-files (read-only) for pieces-os

name: pieces-os

description: PiecesOS is a local-first workflow memory engine that automatically captures, structures, and resurfaces the context of your work across your entire toolchain.

upstream: https://pieces.app

upstream-relation: official package

interfaces:

  • browser-history-chrome:

    • request-type: manual-connection

    • reasoning: We’re building an agentic search engine for desktops to search memories that are formed on behalf of the user. We need this permission for read-only access to Chrome’s history SQLite databases to index and resurface user browser history. Under strict confinement, the home interface does not permit access to hidden directories (e.g., ~/.config/). Without this, the app encounters sqlite 14 (Permission denied) errors.

  • browser-history-chromium:

    • request-type: manual-connection

    • reasoning: Same as above for Chromium.

  • browser-history-brave:

    • request-type: manual-connection

    • reasoning: Same as above for Brave.

  • browser-history-edge:

    • request-type: manual-connection

    • reasoning: Same as above for Microsoft Edge.

  • browser-history-firefox:

    • request-type: manual-connection

    • reasoning: Same as above for Firefox, which stores its profile under ~/.mozilla/firefox.

Additional notes:

  • Privacy: All access is read-only. Pieces is private by design, performing all indexing and retrieval locally on-device.

  • Consent: We are requesting connection (manual), not auto-connection. This ensures users must explicitly opt-in via our doctor utility or the command line to grant these permissions.

  • Urgency: This request is associated with Revision 114, which addresses critical logging and performance issues for our enterprise users.

Requesting approval for versions 12.3.9 and 12.3.10. Thank you for your review.

2 Likes

This request has been added to the queue for review by the @reviewers team.

Hello @Pieces-Dev!

The request seems reasonable given the snap’s functionality and the fact that it concerns a manual-connection. However, because the personal-files interface is considered super-privileged, a key requirement for granting it is the Snap Publisher Vetting process.

Could you please specify if the upstream repository is public? (#askForInfo) If it is not, there is a slightly different process for vetting (see Verified Accounts).

2 Likes

Hello @yomonokio !

Thanks for the guidance!

Our upstream source is proprietary and not publicly available, so we understand that vetting needs to proceed via the Verified Accounts process. We’ve submitted that request here:

Happy to provide any additional information needed in the meantime.

1 Like

Hello @yomonokio,

Just wanted to follow up and let you know that our Verified Publisher Request has been approved.

We are all set on the vetting front and would love to move forward with the review for these optional, read-only personal-files interfaces for pieces-os.

Thank you!

Hi @Pieces-Dev team,

Could you clarify if you need access to the entire ~/.config directory for the browser, or just their history files? (#askForInfo)

While the interface is named browser-history-*, the current request asks for access to all files within the browser’s config directory.

If you only require the history, please update the file paths to restrict access to those specific files. Otherwise, the interface should be renamed to accurately reflect that users are granting access to the entire config directory for that browser.

Also, Firefox installed as a snap do not have their profiles on ~/.mozilla/firefox.

Hi @shishirsub10, thanks for the review and for the clear guidance!

We’ve addressed both points in a new build (revision 116, version 12.5.0), now in the review queue:

  1. Interface naming vs. scope. We do intend to read from the broader browser config directory (not just the history files) — both for resolving history across per-profile subdirectories today and for additional context we plan to surface over time. Rather than under-scope the request, we’ve taken your second suggestion and renamed the interfaces so they accurately reflect that users are granting read access to each browser’s full config directory:
  • browser-history-chromedot-config-google-chrome → reads $HOME/.config/google-chrome
  • browser-history-chromiumdot-config-chromium → reads $HOME/.config/chromium
  • browser-history-bravedot-config-brave → reads $HOME/.config/BraveSoftware/Brave-Browser
  • browser-history-edgedot-config-microsoft-edge → reads $HOME/.config/microsoft-edge
  • browser-history-firefoxdot-mozilla-firefox → reads $HOME/.mozilla/firefox and $HOME/snap/firefox/common/.mozilla/firefox
  1. Firefox snap profile location. Good catch — thank you. The dot-mozilla-firefox plug now also includes $HOME/snap/firefox/common/.mozilla/firefox to cover Firefox installed as a snap, in addition to the traditional $HOME/.mozilla/firefox path.

As before, all access is read-only and requested as manual-connection (users explicitly opt in via our doctor utility or the command line). Could you take a look at revision 116 when you have a chance?

Thanks again!

Hi @Pieces-Dev,

Thank you for addressing the concerns. +1 from my side to grant manual-connection to the requested interfaces using personal-files:

  • dot-config-google-chrome
  • dot-config-chromium
  • dot-config-brave
  • dot-config-microsoft-edge
  • dot-mozilla-firefox

+2 votes for, 0 votes against. Granting manual-connection to the requested interfaces. The publisher is vetted. This is now live.

1 Like