
Your team's throughput, queue health, and active cycle progress visible on your iPhone home screen, without opening Linear.
Team Pulse tracks seven metrics for any Linear team: total open issues, work in progress, triage queue depth, completed issues in the last 24 hours and 7 days, new issues created in the last 24 hours, and items open for more than 30 days. Each number answers a specific question engineering leaders ask every morning. Is work-in-flight growing unchecked? Is the triage queue clearing or backing up? Did the team ship anything yesterday? Stale open issues older than 30 days are a backlog hygiene signal, visible before they compound into a retro finding.
Cycle Pulse shows the active cycle's completion percentage, current scope, completed and remaining issue counts, and net scope change since the cycle started. Scope change is the metric that earns its place on a home screen: a positive delta means work was added mid-cycle. Seeing that number climb on day three of a two-week sprint is a signal to act, not a post-mortem data point. When a team has no active cycle, the widget surfaces a clear message rather than showing empty data, so you always know where you stand.
Linear answers whether the team is working on the right things. GitHub answers whether that work is shipping as code. PulseKit runs both side by side, connected with the same API-key pattern: install once, see metrics immediately. Each module is independently configured with a team picker, so you can track the Mobile team's cycle progress while watching the Platform team's triage queue on the same screen. Metrics are fetched on demand and the last 30 days of history is retained for trend charts.
Generate a Personal API Key in Linear:
The key is full-workspace-scope, but PulseKit only reads issues, cycles, and teams. It never writes.
Security
Your Linear API key is sealed on this device with AES-256-GCM before it ever leaves your iPhone. Only your device holds the unwrap secret, stored in the iOS Keychain. The PulseKit backend wraps that already-encrypted payload again with its STORAGE_SECRET and writes the double-envelope blob to Postgres, so the server never sees your plaintext key at rest. Each fetch request includes a one-time unwrap secret that decrypts the inner envelope only long enough to call Linear. The key is scoped to this device, can be revoked from PulseKit at any time, and is never written to logs.
Pick the metrics you care about and pin them as widgets.
Open / in-progress / triage / throughput counts and stale-item health for a team
Active cycle progress %, scope, completed, remaining, and scope change
Numbers shown are illustrative — your widgets show your live data.
CTOs and VP Engs overseeing multiple teams can add one Team Pulse widget per team to compare throughput, in-progress counts, and triage queue depth side by side on the home screen. A growing triage queue or a stale-issue spike on one team stands out immediately against a healthier team's numbers.
Staff engineers and tech leads who own a single team's delivery use Cycle Pulse to answer the question 'are we on track?' before standup starts. Completion percentage and remaining issue count are visible the moment you unlock your phone, without navigating to the active cycle in Linear.
EMs running biweekly cycles watch the Scope Change metric for early warning on mid-cycle additions. A rising positive delta in the first few days of a sprint is a process signal worth raising before it affects delivery, and seeing it on the home screen means it will not be missed until the retro.
Founders who manage engineering directly and want a quick read on team health without the overhead of daily Linear check-ins. Team Pulse condenses open queue, daily throughput, and stale issues into a single widget that replaces the morning habit of scanning the issue tracker.
Open Linear and go to Settings > Account > Security & access. Under Personal API Keys, click New API key, label it "PulseKit", and copy the key (it is shown only once). Paste it into PulseKit's Linear setup screen. The key starts with lin_api_ and PulseKit validates that prefix before submission to catch paste errors.
Team Pulse shows open issues, work in progress, triage queue size, completions in the last 24 hours and 7 days, new issues in the last 24 hours, and items open longer than 30 days. Cycle Pulse shows the active cycle's completion percentage, total scope, completed count, remaining issues, and net scope change since the cycle began.
No. PulseKit only reads from Linear's GraphQL API using read-only queries. It fetches issues, cycles, and teams and never executes mutations. Your Personal API key has full-workspace scope by Linear's design, but PulseKit's fetcher contains no write calls.
The Cycle Pulse widget displays a message telling you the selected team has no active cycle and prompting you to start one in Linear. It does not show broken or empty data without explanation. Team Pulse is unaffected and continues showing all seven throughput and queue metrics regardless of whether the team uses cycles.
PulseKit uses iOS's widget timeline system, which triggers a fetch roughly once every five minutes per widget. Each fetch sends two HTTP requests to Linear's GraphQL API: one for Team Pulse and one for Cycle Pulse. Both fit well within Linear's limit of 2,500 requests per hour per user, leaving headroom for many active widgets.
Yes. Each Team Pulse and Cycle Pulse widget is independently configured with a team picker. Add one widget per team to track throughput, queue health, or cycle progress for as many teams as you need. Widgets update independently and do not share configuration or cached state with each other.
Your key is sealed on-device with AES-256-GCM before it leaves your iPhone, with the unwrap secret stored in the iOS Keychain. The PulseKit server stores only a double-encrypted envelope and never sees your plaintext key at rest. You can revoke the key from Linear at any time without affecting other PulseKit integrations.

Install PulseKit, paste your credentials, pick a widget.