npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

claude-tempo

v0.21.0

Published

MCP server for multi-session Claude Code coordination via Temporal

Downloads

4,609

Readme

Multiple Claude Code sessions discover each other, exchange messages in real time, and coordinate work — across machines, not just localhost.

Why claude-tempo?

  • Crash-safe durability — Sessions are Temporal workflows. Crashes, restarts, and network blips don't lose messages or drop coordination state. Dead sessions are detected automatically and the conductor is notified.
  • Instant signaling — Temporal signals deliver messages with no polling. Players receive cues the moment they're sent, regardless of which machine they're on.
  • Built-in scheduling — Set up one-shot or recurring message schedules without any external infrastructure. Fan-out to all players at once for periodic status checks.
  • Extensible agent types — Define reusable player roles as .md files. Ship lineups that assemble entire teams in one command. Mix Claude Code and Copilot CLI sessions in the same ensemble.

Installation

npm install -g claude-tempo

Prerequisites: Node.js 18+, Temporal CLI, Claude Code

Quick Start

One command handles everything:

cd your-project
claude-tempo up

This starts the Temporal dev server, registers the MCP server globally, starts the worker daemon, and launches a conductor session in a new terminal.

Then add players:

claude-tempo start          # open a player session
claude-tempo status         # see who's active

Or ask the conductor to recruit players for you from inside Claude Code.

Manual setup

For more control, run each step individually:

claude-tempo server         # start Temporal dev server (keep running)
claude-tempo init           # register MCP server globally
claude-tempo preflight      # verify environment
claude-tempo conduct        # start a conductor
claude-tempo start          # add players

Basic MCP usage

Inside any Claude Code session connected to claude-tempo:

  • "Show me the ensemble" — discover other sessions
  • "Set your name to 'frontend'" — set a human-readable name
  • "Cue backend: what are you working on?" — send a message to another player
  • "Recruit a soloist in /repos/api" — spawn a new player session

📖 Full documentation

Core Concepts

Each Claude Code session registers as a player in Temporal. Players discover each other with ensemble, exchange messages with cue, and coordinate work across machines. An optional conductor orchestrates the group and connects to external interfaces. All players in the same ensemble can see and message each other; ensembles are isolated from each other.

claude-tempo conduct frontend   # conduct the "frontend" ensemble
claude-tempo start backend      # join the "backend" ensemble

What You Can Do

Terminal UI

Run claude-tempo (no arguments) to launch the built-in TUI — a chat-focused shell for managing your ensemble without leaving the terminal.

claude-tempo                        # launch TUI (multi-ensemble view)
claude-tempo tui --ensemble myteam  # connect directly to an ensemble

Inside the TUI, type /help to see all available slash commands: /cue, /broadcast, /recruit, /stop, /encore, /recall, /search, /players, /schedule, /gates, /stages, /worktree, and more. See docs/dashboard.md for the full TUI reference.

Scheduling

Send messages on a delay, at a fixed time, on a recurring interval, or via cron expression:

# From inside Claude Code (via MCP tools)
schedule: { name: "standup", cron: "0 9 * * 1-5", target: "conductor", message: "Daily standup" }

Supports delay, at, every, and cron with optional IANA timezone. See docs/scheduling.md.

Lineups

Define your entire ensemble as a YAML file and bootstrap it in one command:

claude-tempo up --lineup lineups/dev-team.yml

Shipped lineups: tempo-big-band (full lifecycle), tempo-dev-team (feature work), tempo-review-squad (parallel review), tempo-jam-session (exploration). See docs/ensembles.md.

Orchestration

Conductors can track parallel work with Quality Gates, Pipeline Stages, and Git Worktrees:

  • Quality Gates — named checklists of criteria; auto-aggregate to passed/failed/open
  • Pipeline Stages — fan-out/fan-in tracking; conductor is notified when all players report
  • Git Worktrees — provision isolated branches for players; clean up when done

See docs/orchestration.md.

Command Discovery

claude-tempo --help          # all CLI commands
claude-tempo <command> --help # flags for a specific command

Inside the TUI, type /help for slash commands. Inside Claude Code, use the ensemble tool to see who's active and explore from there.

Key commands

Session management | Command | Description | |---------|-------------| | claude-tempo up | Start everything (Temporal + daemon + conductor) | | claude-tempo start [ensemble] | Open a player session | | claude-tempo conduct [ensemble] | Start a conductor session | | claude-tempo status | Show active sessions | | claude-tempo stop [ensemble] | Stop sessions (recoverable via encore) | | claude-tempo down | Full teardown — sessions, daemon, and Temporal |

Lineups | Command | Description | |---------|-------------| | claude-tempo up --lineup <file> | Bootstrap from a lineup YAML | | claude-tempo ensemble save <name> | Save current ensemble as a lineup | | claude-tempo ensemble list | List saved lineups |

Player types | Command | Description | |---------|-------------| | claude-tempo agent-types list | List available player types | | claude-tempo agent-types show <name> | Show a player type definition | | claude-tempo agent-types init <name> | Create a new player type |

Infrastructure | Command | Description | |---------|-------------| | claude-tempo daemon start\|stop\|status\|logs | Manage the worker daemon | | claude-tempo upgrade [version] | Graceful self-update (stops daemon, installs, restarts) | | claude-tempo config | Configure env vars interactively | | claude-tempo preflight | Verify environment |

See docs/cli.md for the full CLI reference including all flags and examples.

Maestro Dashboard

The Maestro dashboard is a web UI that connects to your Temporal server and provides a live view of your ensemble — player status, event log, and command input. See docs/dashboard.md.

Development

git clone https://github.com/vinceblank/claude-tempo.git
cd claude-tempo && npm install

npm run build        # compile TypeScript + pre-bundle workflows
npm test             # run tests
npm link             # link CLI for local testing

Important: Run npm run build after changing workflow code (src/workflows/). The build pre-bundles workflows into workflow-bundle.js so all workers use identical code.

Contributing

See CLAUDE.md for project structure, key concepts, and development setup. Pull requests are welcome — please run npm test before submitting.

License

MIT