The idea
You ask "how much traffic did we get this week" and the agent answers, because the connection already exists and the agent is allowed to use it.
The alternative, which is what most people do today, is pasting an API key into a chat window. That key is now in a transcript, it is scoped to everything you can do, and nobody can revoke it without noticing it leaked.
Supported services
| Service | Capability |
|---|---|
| Google Analytics | Analytics |
| PostHog | Analytics |
| Google Search Console | Search metrics |
| Stripe | Revenue |
| Vercel | Deployments |
| Supabase | Database |
| Better Stack | Uptime and monitoring |
| Slack | Messaging |
| Linear | Issues |
| Jira | Issues |
Linear and Jira
Both are issue trackers, and both connect at the project.
- Linear. Connect with a personal API key, or have a Linear admin install the Fredrin app. Pick a team, then Import issues files its open issues into Backlog, once each. Fredrin comments on each issue as its ticket starts, opens a pull request, completes or is blocked, and Linear issue updates can also move the issue's status. With the app installed, assigning an issue to Fredrin or @mentioning it files a ticket, and progress shows in the issue's agent activity. Only status, identifiers, titles and links reach Linear, never anything a Worker said.
- Jira. Jira Cloud only. Connect with your site (
acme.atlassian.net), the Atlassian account email, and an API token from id.atlassian.com. Import files the issues a JQL query matches into Backlog as tickets titled with their issue key, and running it again only files what is new. Fredrin only reads from Jira; nothing is written back.
Normalized shapes
Every connector of the same kind returns the same shape. Two analytics providers fill the same normalized metrics object, so a query written against one works against the other.
Where a provider genuinely does not measure something, the field comes back null rather than zero. That distinction matters: a substituted zero is a wrong number that looks like a real one.
Reading a connector
From an agent session, or your own terminal:
fredrin connectors list
fredrin connectors metrics --provider posthog --days 7The same surface is on the REST API under the project's connectors routes.
The important rule: read them through Fredrin, not around it. Do not have an agent mint its own provider key or query the service directly. The connection exists, it is scoped, and it is revocable in one place.
Credentials
Stored encrypted, scoped to the project or workspace that owns them, and never returned to the client. An agent gets query results, never the key.
Revoking a connector revokes it everywhere at once.
Next steps
- Automations - scheduled tasks and webhook runs.
- The CLI - reading connectors from a terminal.
- Privacy - what is stored and where.