Data we store
Workers run on your machine, each ticket in its own git worktree on your disk. Agent traffic goes straight from your machine to your AI provider. Fredrin's servers hold board state and run metadata only.
Stored by Fredrin
- Tickets, plans and comments
- Run status and activity
- Branch names and pull request links
- If a project turns on Struggles: each struggle's kind, timing and briefs
Stays on your machine by default
- Your source code and diffs
- Prompts, replies and terminal output
- Your AI subscription login
The diff lives on your git host. Fredrin does not train on your code. Struggles, below, is the one per-project opt-in that sends content off the machine.
Conversations
Prompts, replies, terminal output and screenshots of your running app stay on your machine. A session on your desktop sends metadata only, and there is no project-wide switch that uploads it.
- Metadata only
- A session on your machine sends run status, exit codes and token counts, never its content.
- Secrets redacted
- Removed from agent output when it is captured, and again when it reaches the server.
- Remote and hosted runs
- A run on a paired remote machine or on Cloud streams its terminal through Fredrin so you can watch it.
- Struggles, if a project turns it on
- Secret-scrubbed excerpts of Worker steps, which can include code, go to a third-party classifier with zero data retention. Fredrin stores none of the excerpts, only each struggle's kind, timing and the root-problem briefs.
- Erasable
- History stored before September 25, 2026 can be erased with Delete stored history in Project settings.
Credentials and keys
- AI subscription
- Not held by Fredrin. Claude Code and Codex use their own login on your machine.
- Pasted API keys
- Encrypted at rest, and only given to the agent session that needs them.
- Connector credentials
- Encrypted, scoped to the project or workspace that owns them, and never returned to the browser. Agents receive results, never the key.
- GitHub
- A GitHub App with short-lived tokens, limited to the repositories you select. No long-lived personal access tokens.
- Fredrin API keys
- Hashed at rest, scoped to one workspace, and limited to the role of the member who created them.
Access control
Every request is checked against the project it touches. When a request names a resource, Fredrin checks the project that resource belongs to, not the one the caller claims, so a borrowed id is refused.
An API key bound to one project cannot reach another, even if the person behind it could. Workspaces, members and roles
The desktop app
The Fredrin app runs only in the desktop shell. Public pages, the API and invites are an explicit allowlist. Server-side authorization is the same either way, and nothing depends on the client being trusted.
Running agents elsewhere
Some teams choose to run work off their own machine. A remote agent runs on another machine you control, and a cloud agent runs on a hosted instance. Either one needs a checkout of your repository to do the work, and its terminal streams through Fredrin so you can watch it from the board. Both are your choice, per run.
Reporting a vulnerability
If you believe you have found a security issue, contact us with the details and steps to reproduce. Please give us time to investigate before sharing it publicly.