Where your ticket and code actually go.
Fleeter is three independent codebases talking to each other and to your tools — not one black box you have to trust blindly. This page walks through exactly what touches your code, what never does, and why it’s built that way.
Desktop does the work. Api only holds the keys.
Fleeter isn’t one server you hand your code to — it’s three independent codebases with their own git history, each doing one narrow job. This is the whole map: solid boxes are ours, dashed boxes are third parties we talk to.
Follow a single ticket through the system.
Not an abstract diagram — the actual sequence of calls behind one ticket going from “assigned to you” to “pull request open”.
Connect once, from your browser
Api: runs the OAuth handshakeYou click “Connect Jira” on your Fleeter account page. Fleeter's Api starts the OAuth handshake, but Atlassian's own consent screen does the actual authorization — your Jira password never touches Fleeter, and the resulting token is stored encrypted.
Desktop asks for a working token
Api: hands back a token, nothing elseBefore every Jira or Bitbucket call, the desktop app asks the Api for the current access token tied to your account. The Api decrypts what it stored and hands back the raw provider token — nothing about the ticket itself.
Desktop talks to Jira directly
Direct — bypasses the ApiThe ticket's title, description, comments and transitions are fetched straight from Atlassian's API into the desktop app, using that token. The Api is out of the loop entirely for this call.
Claude reads the ticket and plans
Sent to Anthropic — session onlyThe desktop app hands the ticket to a local Node process wrapping the Claude Agent SDK, which streams the ticket content straight to Anthropic and proposes a plan before touching a single file.
Work happens in a local git worktree
Stays on your machineOnce you approve the plan, code changes land in an isolated worktree on your disk. The conversation, activity log and file diffs are streamed to Anthropic and snapshotted to a plain JSON file under %LOCALAPPDATA%\Fleeter — no database, no upload.
Opening the pull request
Direct — bypasses the ApiDesktop pushes the branch and calls Bitbucket directly with the title and description Claude wrote — again without routing through the Api.
What the Api actually logs, the whole time
Api: anonymous usage eventA handful of anonymous product events — “session started”, “pull request opened” — tagged with your account and an install id, so we can see the workflow funnel. No ticket text, no code, no diffs are ever included.
Five categories of data. One of them never lands on our servers.
This is the same list as our Privacy Policy, laid out so it’s easy to see which rows the Api actually stores.
Account information
Email, name, password — or your identity from a social login provider.
Integration OAuth tokens
The Jira / Bitbucket access & refresh tokens issued when you connect an integration.
Session cookies
httpOnly cookies that keep your web account signed in.
Product usage events
“App launched”, “pull request opened” — tagged with an install id, never with ticket text.
Ticket text, code & diffs
What Claude actually reads and writes while working your ticket.
Why the Api brokers OAuth instead of Desktop.
The Api’s only job in your integrations is holding the OAuth connection — never proxying your tickets or code. Here’s why that one piece is centralized rather than kept entirely on your machine.
A secret only a server can keep
Jira and Bitbucket's OAuth apps require a client secret at the token exchange. A desktop binary can be decompiled by anyone who installs it — shipping that secret inside Fleeter would hand it to every user. Keeping it only on our server is the only way to keep it secret.
One fixed callback URL
Atlassian and Bitbucket redirect back to a single, pre-registered address after you authorize the connection. That has to be a stable web address, not a listener on whichever laptop happens to be running Fleeter that day.
One place to revoke
The connection lives on your Fleeter account, not on one machine. Disconnect Jira once from your account settings and every install loses access immediately — no per-device cleanup, no orphaned tokens.
Get Fleeter on your desktop.
Install the app, sign in, and connect your ticket tracker. Your first agent session can be running in minutes.