The default
Agent conversation content does not leave your machine. The setting that would change that, per project, is off unless you turn it on.
With it off, Fredrin's servers see metadata about a run and nothing else.
What counts as content
Gated. Stays local unless you opt in.
- Terminal output and the scrollback buffer.
- The chat transcript: your prompts and the agent's replies.
- Screenshots and screen recordings of your running app.
- The raw output tail of an acceptance-check command.
- The agent's replies on the ticket timeline.
What counts as metadata
Ungated. Always flows, because the board cannot work without it.
- Status, exit code, timestamps, heartbeats.
- Token usage.
- Lifecycle and column events.
- The paths of project-context files a Worker read. Paths only, never bodies.
The line is drawn at anything that could carry your code or your conversation. Metadata is what the board needs to know a ticket is running; content is what was said and written while it ran.
Turning it on is consent to share
If you enable conversation sync for a project, two things happen, and the second one surprises people.
- Content is persisted to Fredrin's servers, after secret redaction, so the chat thread, scrollback replay and previews survive a restart.
- Project teammates can read it. Read-only, live and after the session ends.
Sync on is consent to share with the project, not merely consent to store. That is usually what a team wants and almost never what a solo developer wants, which is why the default is off.
The one carve-out
Remote agents always mirror. A job dispatched to a paired remote machine sends its conversation through the server, because that is the only way the transcript can reach the app you are watching it from.
If you need a run to stay entirely on one machine, run it on the machine you are sitting at. The gate governs local desktop sessions; it cannot govern a session that is by definition somewhere else.
Secret redaction
Separate from the gate, and unconditional. Secrets are scrubbed from agent output on the way out, both at capture and again server-side at ingest.
This applies whether or not conversation sync is on, because redaction and the gate solve different problems: the gate decides whether content leaves, redaction decides what is stripped from it if it does.
Erasure
Turning the flag off stops future writes. To remove what was already stored, Delete stored history purges the project's persisted conversation content, including agent-captured screenshots and recordings.
Artifacts you attached yourself are treated as yours and stay, which is why automated captures carry a marker distinguishing them from things you uploaded on purpose.
Your code
Worth stating separately, because it is the question people actually mean.
Fredrin does not upload your repository. Workers run on your machine, in a worktree on your disk, against a git remote you control. Fredrin holds tickets, plans, and board state, not your source.
Next steps
- Security and data handling - the trust boundaries.
- Project memory - what does live in your repository.
- Remote agents - the carve-out, in context.