Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Epic PulseNew to Visual Studio Code? Get it now.
Epic Pulse

Epic Pulse

takauztovies

| (0) | Free
GitHub epic progress for Claude Code sessions
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Epic Pulse

See how far the GitHub epics behind your Claude Code sessions have got, without leaving the editor.

Epic Pulse puts the epic your sessions are working on in the status bar, as #1 20% · 1/5, and lists every epic in an Epics view in the activity bar: its progress, its sub-issues grouped by status (Todo, In progress, In review, Done, Dropped), and how many live sessions are on each issue. Click an epic or an issue to open it on GitHub.

Progress is done / (total − dropped): an issue closed as not planned or as a duplicate leaves the count. An epic that tracks its work in a task list instead of sub-issues counts its checked boxes. Statuses come from GitHub itself: a closed issue is done, or dropped when it was closed as not planned or a duplicate; an open pull request that will close it puts it in review, or in progress while the pull request is a draft; an assignee puts it in progress; anything else is todo.

How sessions bind to issues

Epic Pulse shows what the epic-pulse Claude Code plugin records. The plugin's hook notes, for each session, the issues it works on:

  • a gh issue command that changes an issue (gh issue view, list and search never bind);
  • closing keywords such as Fixes #4 in a git commit message or a gh pr create body;
  • edits in a worktree whose branch name carries the issue number;
  • epic-pulse track <N>, which pins an issue or an epic.

That registry lives inside the repository's git directory, so every worktree of a repository shares it and it never shows up in git status. Without the plugin the view says Hook inactive.

Every state says what it is

In the tree and the status bar Meaning
#1 20% · 1/5 Fresh data for the epics of your live sessions, and for pinned ones.
Stale Data over ten minutes old, or from before a failed refresh. It stays on screen.
No epic No live session is on an issue that belongs to an epic, and nothing is pinned.
Loading… Waiting for the first refresh.
Refresh failed GitHub could not be read. A code such as network or rate_limited says why.
Hook inactive No Claude Code session has reported to this repository in the last week.
Unsupported host A GitHub Enterprise Server without sub-issues.
Sign in to GitHub No working token was found. Click it to sign in.

Epic Pulse: Show status details prints, for each repository, where its registry is, whether the hook has written there, how the last refresh went and where its token came from. It also lists each entry of EPIC_PULSE_HOSTS that is not a host and is therefore ignored, with the reason.

Signing in

Epic Pulse uses VS Code's GitHub sign-in, and the GitHub Enterprise one when github-enterprise.uri is set. It asks for the repo scope because GitHub has no read-only scope that reaches private repositories. Epic Pulse only ever sends GraphQL queries; it never changes anything on GitHub.

VS Code signs in to one GitHub Enterprise server only, the one github-enterprise.uri names. For a repository on any other host, Sign in to GitHub says so and opens that setting instead of signing you in to github.com, which would leave the repository signed out.

You do not have to sign in. Without a VS Code sign-in it uses GH_TOKEN or GITHUB_TOKEN, then gh auth token, exactly like the epic-pulse CLI. An Enterprise host takes GH_ENTERPRISE_TOKEN only when GH_HOST or EPIC_PULSE_HOSTS names it, and otherwise only your gh auth login for that host. Only when none of these yields a token GitHub accepts does the view offer Sign in to GitHub.

Privacy

  • Network. Only the GitHub GraphQL API of the host your issues live on: api.github.com, or your Enterprise server. No telemetry and no other service.
  • Your token is held in memory for one refresh. It is never written to disk, logged or put in an error. A token from VS Code goes only to the host it belongs to: the GitHub sign-in's to github.com, the GitHub Enterprise one's to the server github-enterprise.uri names. Any other host the repository names gets a token the way the CLI finds one, never one from VS Code.
  • Stored in the repository, in epic-pulse/ inside its git directory (created owner-only on macOS and Linux):
    • sessions/*.jsonl, written by the plugin's hook: issue references and timestamps for each session. No command text, file paths or file contents. Files untouched for a week are deleted.
    • pins.json: issues pinned with epic-pulse track.
    • snapshot.json: what was fetched from GitHub (epic and sub-issue titles, numbers, URLs and statuses), when, the hour's rate-limit counters, and the code of the last failure.
    • refresh.lock, while a refresh runs.
  • Stored for your user, in the epic-pulse cache directory (~/Library/Caches/epic-pulse on macOS, $XDG_CACHE_HOME/epic-pulse or ~/.cache/epic-pulse on Linux, %LOCALAPPDATA%\epic-pulse on Windows): usage.jsonl, the GitHub points each request cost, with its time, its host and a hash of the repository, so that everything refreshing on your machine shares one budget of 300 points an hour; and usage.lock while it is written.
  • Nothing else. The extension never creates a registry: a repository the plugin has not written to is only read. VS Code keeps a log of the Epic Pulse output channel, which holds refresh outcomes, codes and local paths, never a token or an issue title.

Settings

Setting Default
epicPulse.refreshSeconds 60 How often to refresh while the window has focus, and to read what is on disk again while it has not, from 30 to 86400.
epicPulse.statusBar.enabled true Show the current epic in the status bar.

A window refreshes once when it opens, then only while it has focus, and whenever you come back to it, click Refresh, sign in or change its folders. Without focus it asks GitHub for nothing, but on the same interval it reads the files again and redraws, so the status bar and the Epics view keep their ages and the stale marker right and show what a hook or another refresher has written. In a multi-root workspace every folder's repository is in the one view. Every window, the plugin and the CLI share one lock per repository and one hourly budget, so more windows do not mean more requests to GitHub.

Requirements

  • VS Code 1.90 or newer, on a trusted folder on disk: Restricted Mode and virtual workspaces are not supported.
  • A git repository whose issues are on GitHub.
  • The epic-pulse Claude Code plugin, for sessions to bind on their own.

Licence

MIT. Source, issues and the plugin: https://github.com/takauztovies/epic-pulse.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft