# What PrismaLens reads and never does

> What the AI coding agent can reach when PrismaLens runs it, what leaves your machine, and where PrismaLens keeps your data.

PrismaLens puts a coding agent next to your code. This page says what that agent can reach, what leaves your machine, and where PrismaLens keeps its data.

## The short version

* The agent works in a **git worktree** at the service’s last commit, never in your checkout. Uncommitted changes aren’t read.
* The agent runs **as your user, with no sandbox**. Your [permission level](/coding-agents/#what-the-agent-may-do) decides what it may do without asking.
* PrismaLens **never calls a model**. Your agent sends what it reads to **its** model provider.
* PrismaLens sends **usage counts** after telling you, and you can turn them off. It never sends your code, alerts or reports.
* Everything PrismaLens keeps is in **one folder**, `~/.prismalens`.

## What the agent can reach

The agent runs as your user, so it can reach what your user can. PrismaLens limits which of its requests run without you through the permission level. It adds no wall at the operating-system level. For a real boundary, run PrismaLens under a user or in a VM that can read only what it should, and give the agent read-only credentials for anything outside the repository.

The agent gets the environment your terminal has, minus PrismaLens’s own secrets, so its own `git` and `gh` work. **Settings → Agent → Only pass named variables** limits it to the basics, the agent’s provider keys and the variables you set.

## What leaves your machine

* **From your agent:** what it reads, including source code, command output and the alert, goes to its model provider, as it would if you used the agent directly.
* **Usage counts:** on by default, after a notice. The first start prints the notice and sends nothing. From the next start, PrismaLens counts feature use under a random install id. It never sends your code, a repository, an alert or a report. Events go to PostHog Cloud EU. **Settings → Usage data** turns it off and shows what was recently sent. So do `PRISMALENS_TELEMETRY=off` and `DO_NOT_TRACK=1`, and it is always off when `CI` is set. The exact list of what is sent is in [the source](https://github.com/prismalens/prismalens/blob/main/packages/api/src/core/telemetry/telemetry.service.ts).
* **Update check:** once a day PrismaLens asks GitHub Releases whether a newer version exists, with no identifier. `PRISMALENS_UPDATE_CHECK=off` or `DO_NOT_TRACK=1` turns it off.
* **From git:** fetching a repository by URL contacts that host with your git credentials.

## Who can open it

There are no accounts. A browser gets in only by opening a one-time link that `pl up` or `pl pair` prints on this machine. No address grants access by itself, `localhost` included. Revoke a paired device under **Settings → Devices**.

> **Caution**
>
> PrismaLens is built for one person’s machine. It has no users or roles. Pair only devices you control.

## Where your data lives

Everything is under `~/.prismalens`, or the folder you pass to `--workspace`.

| Path            | Contents                                                             |
| --------------- | -------------------------------------------------------------------- |
| `prismalens.db` | Incidents, alerts, services, runs and reports                        |
| `runs/<id>/`    | Each run’s events and report                                         |
| `worktrees/`    | The worktrees runs read, kept until the incident resolves by default |
| `repos/`        | Copies of repositories added by URL                                  |
| `logs/`         | App logs                                                             |

To remove everything, stop PrismaLens and run `pl reset`.

## These websites

prismalens.io and docs.prismalens.io count visits with PostHog Cloud EU, without cookies or browser storage. They record which pages are opened and when a download link or install command is used, how fast pages load, and JavaScript errors a page hits. The landing site also records where on the page people click, as a heatmap. Requests for the install scripts are counted, with no IP address or other identifier stored. Nothing typed into a page is recorded, IP addresses are not stored, and a visit is never linked to an install of PrismaLens.