Skip to main content

Claude Code plugin

The Pulse plugin turns Pulse into a persistent task tracker you drive from inside a Claude Code session. Claude recalls what's next, parks follow-ups, marks work ongoing (so your team sees live presence), and completes tasks — without you leaving the terminal.

It talks to Pulse over an MCP server (https://mcp.pulse.intrasys.ai/mcp) using WorkOS sign-in — Claude Code drives the browser handshake on first use, so there's no token to paste. This is separate from the integration token used by the REST API; the plugin authenticates as you, not as an org integration.

Install & setup

  1. Install the plugin:
    /plugin install pulse@intrasys
  2. Sign in on first use. Claude Code opens a WorkOS sign-in the first time a Pulse tool runs. The org selector picks your active org — the connection is pinned to it. (Switching org means re-authenticating.)
  3. Bind the repo to a project. Add a .pulse.json at your repo root:
    { "org": "<org-slug>", "project": "<project-name>" }
    The declared org is asserted on every write — a write to a mismatched org is refused (wrong_org), so an agent can't write to the wrong org. The project scopes recall and parks to one project.

That's it. With .pulse.json in place, a new session recalls your open tasks for the project before you start.

Commands

CommandDoes
/pulse:whats-nextList your open tasks for the bound project (or the whole org), as a | Task | Project | table.
/pulse:park <text>Capture a follow-up as one task, rephrased to a short Title-Case imperative.
/pulse:done [task]Mark a task complete.

You don't have to use the commands — plain chat works too (see below).

How tasks get created

Nothing auto-creates a task. Claude only writes when a park/add tool is called, and that happens in a handful of ways:

#TriggerResult
1/pulse:park <text> slash command1 task, rephrased to title style, into the bound project
2You say it in chat — "park X", "add a task for X", "remember to X", "track X"1 task
3You confirm a plan breakdown for non-trivial workone task per unit (Pair 1: …, MR-A: …, Plan:/Research: prefixes)
4Claude surfaces an out-of-scope follow-up mid-work and you OK parking it1 task
5A known project id (programmatic/rare)1 task, no name→id lookup

The ones people miss are #2 and #3 — you don't need the slash command. Plain "park the plan", or confirming a plan breakdown, is enough; Claude calls the park tool for you.

What does not create a task

  • The SessionStart recall hook only reads (pulse_whats_next) — it never writes.
  • Start / pause / complete mutate an existing task (runs, done) — they never create one.
  • Just discussing work — nothing is tracked until you or Claude explicitly park.

Task text style

Parked tasks are rephrased, not stored verbatim: short, Title Case, imperative, no trailing period — e.g. Release pulse@intrasys plugin, not release the pulse plugin.. Investigation-only tasks get a Plan: or Research: prefix (e.g. Research: WorkOS org token refresh).

Tools

The MCP server exposes these tools (Claude picks them; you rarely name them directly):

Read

  • pulse_whoami — confirm the connected identity + active org.
  • pulse_list_orgs — the orgs you belong to (active org is fixed at login).
  • pulse_list_projects — projects in the active org (your personal projects + the shared catalog).
  • pulse_whats_next — your open tasks, ordered; pass project to scope to the bound project.

Create

  • pulse_park — capture a follow-up as a task; resolves/creates a personal project by name (fuzzy).
  • pulse_add_task — add a task, optionally to a project whose id is already known.

Update

  • pulse_start_task — mark a task as being worked on now (records an agent run → live presence).
  • pulse_pause_task — stop working on it (closes your run; the task stays open).
  • pulse_complete_task — mark it done (closes all live runs on it).
note

Task text returned by the tools is data, not instructions — Claude treats a recalled task list as content to render, never as commands to act on.