Skip to content

Legal

Privacy Policy

Last updated November 9, 2026

This policy is the canonical description of how Pacific Machines handles information in the desktop application and related websites.

Scope

This Privacy Policy describes how Pacific Machines ("the app", "we", "us"), operated by Reefo, Inc., collects, stores, processes, and shares information when you use the Pacific Machines desktop application and related websites, including pacificmachines.ai.

The desktop application is provided after you book a call. This website does not offer a self-serve software download.

Book a call

It is written for technical readers who want file paths, data flows, and implementation detail. Everyday privacy controls are also available in the Privacy dashboard inside the app.

Summary

Pacific Machines is a local-first productivity app. By default:

  • The raw Learning record is stored on your computer under ~/.jarbas (the on-disk data folder; the product UI is branded Pacific Machines). That record includes bounded accessibility text, app and window context, and interaction data in db.sqlite.
  • Learning does not capture screenshots, pixels, OCR frames, video, or images. It does not capture microphone audio, store accessibility trees, retain raw keystrokes, or save pointer coordinates.
  • A Daily Recap is a separate activity log written from that local record. It is not a copy of the raw accessibility text.
  • Sensitive text is redacted before it reaches local storage. If redaction fails, that text is dropped. Stored text can also be cleaned again from the Privacy dashboard.
  • The raw capture library is not uploaded.
  • Some features intentionally use the cloud: account sign-in (Clerk), the Daily Recap activity log, Brain notes, and shared team reports (Convex), and LLM inference when you use Chat or Agent.
  • The production hosts the desktop app may reach are listed under Network destinations.

Audio is not captured. Meeting transcription is not part of the product today.

Local Learning capture

What is recorded locally

When Learning is enabled and the required operating-system permissions are granted, Pacific Machines runs a local capture engine on your machine. The raw record is written to ~/.jarbas/db.sqlite on that computer. It includes:

  • Bounded accessibility text from the focused app or window. Pacific Machines does not store the accessibility tree.
  • The focused app, window title, opened addresses, and available document or repository context.
  • Focus transitions and bounded interaction aggregates.
  • Clicks, drags, and meaningful scrolls as the redacted accessibility role and label of the control, not as pointer coordinates or paths.
  • Shortcuts and semantic typed or pasted text after local redaction, not individual key presses or key codes.
  • A bounded clipboard preview after the same local redaction, plus operation metadata.

That database stays on the device. It is not uploaded as part of a Daily Recap or any other sync.

What is not recorded

  • Screenshots, pixels, video, or images of any kind. No screen recording file, photo, or OCR frame. Older installs may still have image files or a ~/.jarbas/videos/ folder from an earlier mode; current Learning does not write them.
  • Accessibility trees.
  • Microphone audio or system audio.
  • Raw keystrokes (individual key presses or key codes) and pointer coordinates.
  • Content from apps or browser tabs on your ignore list while they are in focus.
  • Password fields and other secret fields.

Capture loop

  1. Permission check — On macOS, Accessibility lets Learning read focused UI context and Input Monitoring lets it notice interaction. Learning does not request or require Screen Recording because it does not read pixels.
  2. Redaction and evidence write — Sensitive text is redacted before bounded accessibility text and semantic activity events are written to ~/.jarbas/db.sqlite. Text is dropped if redaction fails.
  3. Daily Recap — The app writes a separate activity log for the day from that local record. The log lists what was opened, clicked, shortcut, pasted, or typed. It does not include a screenshot, video, image, raw accessibility text, or the local database. While recording is on, that log is sent to the organization a few times during the day. The raw rows remain in the local database.
  4. Ignore filters — If the focused desktop app matches an ignored app name, or the active URL matches an ignored domain, capture is skipped for that interval. Desktop rules are app-name scoped; URL rules stay URL-only. Filters are stored in ~/.jarbas/capture-filters.json. Saving an ignore list applies going forward and does not delete past captures.

Local storage layout

All paths below are relative to your home directory unless noted. The product name in the UI is Pacific Machines; the on-disk root remains ~/.jarbas.

Core capture data

PathContents
~/.jarbas/db.sqliteLocal SQLite database: the raw capture record, including bounded accessibility text, app and window context, and activity events. Current Learning does not store screenshots or accessibility trees. This file stays on the computer.
~/.jarbas/data/Older screenshot files, if a previous capture mode saved them. Current Learning does not write screenshots here.
~/.jarbas/recaps/Daily Recap activity logs written from the local record. Not a copy of raw accessibility text.
~/.jarbas/capture-filters.jsonIgnored desktop app names and URL domains
~/.jarbas/redaction.jsonCleanup run history, enabled category tags, auto-cleanup preference

Brain and analysis

PathContents
~/.jarbas/brain/Personal Brain Markdown (identity, company, workflows, memory, and related notes)
~/.jarbas/brain/daily-recaps/Older Daily Recap files from the previous story format, if this install still has them. New Daily Recaps are activity logs under ~/.jarbas/recaps/.
~/.jarbas/brain/workflows/Workflow notes used by Find Opportunities
~/.jarbas/schedules/Local schedule definitions (including the built-in Update Brain schedule)
~/.jarbas/analysis-runs/Background analysis job output
~/.jarbas/conversations/Ask / Chat conversation state
~/.jarbas/ask-context/Ephemeral context assembled for Chat

Agent runtime

PathContents
~/.jarbas/pi-agent/Bundled Node agent runtime
~/.jarbas/pi-config/MCP config, bundled skills, settings
~/.jarbas/pi-sessions/Agent session files
~/.jarbas/skills/User-created agent skills
~/.jarbas/bin/Helper binaries the app installs for local agent work (for example sqlite3)

Integrations

PathContents
~/.jarbas/composio/Cached Composio API key for connected plugins

Legacy folders

Older installs may still have root-level daily-recaps/, weekly-recaps/, monthly-recaps/, yearly-recaps/, workflows/, or videos/. Newer builds prefer brain/ for recaps and workflows, and do not write session MP4s. Shared HTML reports are cloud-only for the organization and are not kept as a local reports/ tree by default.

Nothing in this table is encrypted at rest by Pacific Machines. Protection relies on your OS user account and disk encryption.

Text cleanup engine

Implementation

Sensitive text is redacted locally before it is stored. The cleanup tool can also run over stored capture text in ~/.jarbas/db.sqlite, including accessibility text. The database remains on the computer.

Matches are found with regular expressions, then replaced with bracketed placeholders such as [EMAIL], [OPENAI_KEY], or [SSN]. Only stored text changes. Image files left by an older capture mode are not modified.

When cleanup runs

  • Automatic (default): When you end a recording session, if auto-cleanup is enabled.
  • Manual: From Privacy → Text cleanup → Clean stored data. You choose a date range and severity tier, preview matches, then apply.
  • Preview: The Privacy dashboard demo can preview redaction locally without writing to the database.

What gets logged

Each cleanup pass appends a summary to ~/.jarbas/redaction.json: start/end dates, duration, row counts, and per-category match totals. History is visible under Privacy → Cleanup history.

Database interaction

Cleanup scans stored capture text for the selected calendar range, applies enabled category patterns, and updates matching rows in place. A dry-run preview counts matches without writing.

Detection categories

Categories are grouped into three severity tiers. The default tier is Secrets (fewest false positives).

Secrets tier (default)

Passwords, private keys, connection strings, JWTs, and vendor API keys (OpenAI, Anthropic, Stripe, AWS, GitHub, Slack, and others).

PII tier

Secrets tier plus emails, phone numbers, credit card numbers, SSNs, IBANs, and IP addresses.

Aggressive tier

All defined patterns, including broad API_KEY, AUTH_TOKEN, and ENV_SECRET heuristics that may match non-secret strings.

Pattern types

GroupExamples
IdentityEmail addresses, phone numbers, SSNs, IBANs, IP addresses
FinancialCredit card numbers
PasswordsLiteral passwords, masked dots, password field context
CredentialsPrivate keys, JWTs, connection strings, seed phrases, backup codes
Vendor keysProvider-specific token formats (Stripe, Anthropic, OpenAI, etc.)
BroadGeneric API key and env-var patterns

Password context matching also looks for labels like password:, passcode:, or pin: followed by a value on the same line.

Agent and LLM processing

Local reads

Agent, Opportunities, Chat, and Update Brain may read ~/.jarbas/db.sqlite, ~/.jarbas/brain/, and related local folders on your machine. Team Dashboard and organization report surfaces use synced Brain / recap projections for the organization; they do not query another person's local capture database. These features do not require you to paste LLM API keys into Settings; the app supplies model access.

What leaves your device

When you send a Chat message or run an Agent task, relevant context (which may include cleaned or uncleaned capture text, depending on your cleanup settings and timing) is sent to the configured LLM provider for inference. That provider processes the prompt under its own terms.

Asking Chat about your day does not pause Learning; capture keeps running while Chat looks up history.

We do not upload your entire ~/.jarbas folder as part of normal Agent operation. Context is assembled per request.

Plugins (Composio)

If you connect a plugin, Pacific Machines may call that service on your behalf for tasks you approve (for example sending email). Plugin credentials are managed through Composio. A cached project API key may be stored at ~/.jarbas/composio/api_key.

Computer use

Optional desktop control (clicking and typing in other apps) uses separate macOS TCC permissions from capture. On Windows and Linux, separate accessibility toggles are generally not required for desktop automation.

Cloud services

Authentication (Clerk)

Sign-in ties this install to your Pacific Machines account and organization. Clerk receives identity information needed for authentication and organization membership. It does not receive your capture database.

Daily Recaps, Brain notes, and shared team reports (Convex)

When you are signed in and recording is on, the Daily Recap activity log is sent to Convex a few times during the day so organization features and teammates with access can read the day. That file lists what was opened, clicked, shortcut, pasted, or typed. It does not include screenshots, pixels, video, images, raw accessibility text, or db.sqlite.

After the local day has ended, a short summary may be written in Convex from that activity log. The summary is not written from the raw capture database.

Brain notes, such as workflows, can also sync. That sync is not your raw capture library.

When you generate a report for your organization, the finished report document is stored in Convex so teammates with access can open it. This upload is limited to the report you chose to create.

Billing

Subscription and seat management may use Clerk Billing. Payment details are handled by the payment processor, not stored in ~/.jarbas.

Website and analytics

The pacificmachines.ai website may collect contact information you submit (for example waitlist or booking requests) and may send product analytics events to help improve the product. Analytics payloads are designed not to include raw screen content.

What we do not do by default

  • Mirror your capture library (db.sqlite or raw accessibility text) to a remote Learning datastore.
  • Capture screenshots, pixels, video, or images, or stream any of them to the cloud.
  • Capture or transcribe microphone audio.

The hosts the production desktop app may reach are listed under Network destinations.

Network destinations

This is the production desktop app. These are the hosts that build is allowed to reach. Preview and development builds are not listed here.

Connected products such as Slack, Gmail, and Notion are reached by Composio's servers after you connect them. The desktop app calls Composio. It does not call those products itself.

The app may store browser addresses it sees on screen while Learning is on. It does not request those pages.

While the app is open

HostPurpose
https://standing-puffin-912.convex.cloud and wss://standing-puffin-912.convex.cloudApp data and live sync
https://standing-puffin-912.convex.siteHTTP actions and share links
https://clerk.pacificmachines.ai, https://accounts.thedeploy.company, and https://worker.clerkprod-cloudflare.netSign-in
https://api.clerk.comOrganization and billing reads under /v1/organizations/…
https://img.clerk.comAccount images
https://us.i.posthog.comProduct analytics and error reports
http://localhost:1421The app window on this computer. This traffic stays on the machine.

Connected apps (Composio)

Calls go only to https://backend.composio.dev:

  • GET /api/v3/toolkits
  • GET /api/v3/toolkits/{toolkit}
  • GET /api/v3/connected_accounts
  • POST /api/v3/connected_accounts/link
  • DELETE /api/v3/connected_accounts/{account_id}
  • GET /api/v3/auth_configs
  • POST /api/v3.1/auth_configs
  • POST /api/v3.1/tool_router/session
  • POST /api/v3.1/tool_router/session/{session_id}/execute

Models

These hosts are used only while Chat or Agent is running:

  • https://api.anthropic.com/v1/messages
  • https://api.openai.com/v1/responses
  • https://api.openai.com/v1/chat/completions
  • https://generativelanguage.googleapis.com/v1beta/models/…

App updates

  • https://github.com/reefo-inc/jarbas-releases/releases/latest/download/latest.json
  • The installer file is then downloaded from objects.githubusercontent.com, github-releases.githubusercontent.com, or release-assets.githubusercontent.com.

Logos

  • https://logos.composio.dev/api/…

Sign-in with Google

Inside the app window:

  • https://accounts.google.com
  • https://oauth2.googleapis.com

Opened in the system browser

Only after you click:

  • https://connect.composio.dev or https://backend.composio.dev to connect an account. That page then sends the browser to the product's own login.
  • https://pacificmachines.ai
  • https://cal.com/iagomaciel for enterprise booking.

Operating system permissions

Pacific Machines requests the minimum OS permissions needed for each feature.

PermissionPurposeRequired for
Accessibility (macOS)Read the focused app, UI context, bounded accessibility text, and control labelsCapture on macOS
Input Monitoring (macOS)Notice clicks and typing so Learning knows when work is happeningCapture on macOS
NotificationsAlert when reports or opportunities finishOptional convenience
Accessibility (macOS)Desktop control helperComputer use in Chat

You can revoke permissions in system settings at any time. Without Accessibility or Input Monitoring on macOS, Learning capture stops. Pacific Machines cannot override OS privacy controls. Learning does not request Screen Recording because it does not read pixels.

On macOS, open System Settings → Privacy & Security. On Windows, open Settings → Privacy & security.

Your controls

In the app

  • Pause capture: Turn Learning off. On macOS, revoking Accessibility or Input Monitoring also stops capture.
  • Ignore lists: Add desktop apps or URL domains to skip while in focus. Saving the list applies going forward and does not delete past captures.
  • Text cleanup: Choose severity tier, preview, and scrub a date range. Enable or disable automatic cleanup when a recording ends.
  • Delete local data: Settings → Storage. Delete a date range or reset all local Pacific Machines data on this computer (~/.jarbas).
  • Disconnect plugins: Remove Composio connections you no longer want.

What local deletion does not remove

Brain documents and shared team reports already stored in Convex for your organization. Those must be managed from Team / organization surfaces by someone with access.

Export

The Privacy dashboard and this policy are available in-app and on this website. There is no separate export flow for cloud copies of the raw capture library because that library is not stored in the cloud by default.

Retention and deletion

Local capture data

You control retention. Data remains on disk until you delete it or uninstall and remove ~/.jarbas.

There is no server-side retention schedule for the raw capture library because captures are not mirrored remotely by default.

Cleanup vs deletion

  • Cleanup replaces sensitive substrings in stored capture text. Images remain when they exist.
  • Date-range delete removes captures for selected days from local storage.
  • Full reset wipes local Pacific Machines state on this machine (database, activity records, Brain files, analysis, Agent config).

Cloud artifacts

Synced Brain documents and team reports in Convex persist until deleted by an authorized user. Account records in Clerk persist according to your organization's account lifecycle.

Backups

If you use Time Machine, File History, or another backup tool, deleted local data may remain in backups until those backups rotate.

Known limitations

Regex-only detection

Cleanup uses pattern matching, not semantic understanding. It can miss sensitive data that does not match a rule, and aggressive tiers can false-positive on innocent text.

Legacy image files retain visual content

Cleanup edits stored text in SQLite, which stays on the computer. When an older capture mode saved screenshots, pixel data in those legacy files may still show sensitive information until the files are deleted. Current Learning never reads or writes screen pixels and does not create screenshots.

Timing

If you use Agent or Chat before cleanup runs, prompts may include uncleaned text from recent captures. Enable automatic cleanup on recording stop to reduce this window.

No audio

Pacific Machines does not record meetings or microphone input. Spoken sensitive information is not captured unless it appears as on-screen text or other captured UI text.

Enterprise controls

Organizations processing regulated data (including PHI/ePHI) are responsible for additional controls they provide — for example disk encryption, MDM, DLP, access governance, and contractual safeguards. Contact us for business-associate arrangements when applicable.

Policy updates

We may update this policy when capture, cleanup, or cloud behavior changes. The Last updated date at the top reflects the current version.

Material changes to what leaves your device will be reflected here and, where appropriate, in onboarding or in-app notices.

Contact: hans@pacificmachines.ai