Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

StarPulse's star map: tasks, workflow runs and agents moving live

StarPulse

State machines for agent work: declare the lifecycle, and every task, workflow run and agent moves through it on one live page.

CI status PyPI version Python version License: MIT

Live demo · Configure · Sources · Agent CLI · Adapters · Consumers · Security · Compatibility · Development loop · Contributing

What it is and why

I wanted to see where my agents were in their sessions and which skills they were using. Then I watched a video that mapped agent actions onto state machines, and I wanted to map the whole agent lifecycle and pair it with the Dagu workflows I already run, so scripts and DAGs could take over manual AI commands and cut the step count.

StarPulse is what I built: a state-machine tool for agent work. You declare each lifecycle as a machine, as data: its states, its transitions and who may make each move (the operator, an agent or a named workflow). StarPulse records every move against its machine and draws the machines live, with tasks, workflow runs and agents moving through them on one page. The board's writer refuses a move its machine forbids, the same way for the command line and the page.

A Kanban board is one shape a machine takes, not what StarPulse is. The Board machine's states become the lanes, and its transitions and writers decide which moves are offered, and to whom. Every other machine, such as a task's delivery phases, a skill's steps or a pull request's CI, is drawn as a flow beside it. StarPulse is not tied to one agent harness or one lifecycle, and it produces data and leaves what to do with that data to you.

Quick start

uvx starpulse init    # writes starpulse.toml, board.yaml, .starpulse/board/ and .claude/settings.json (--harness, --dir)
export STARPULSE_TOKEN=$(openssl rand -hex 16)
uvx starpulse serve   # then open http://localhost:8766

init scaffolds a board machine with its roles declared, a [[board.guards]] rule, a [scheduler] table, a producer whose token is read from STARPULSE_TOKEN, and the Claude Code telemetry export settings; it refuses to overwrite an existing file. The board starts empty, with the lanes the machine's states name, ready for uvx starpulse task create.

Working with AI agents

An agent works the board through the starpulse CLI, every verb printing JSON (Agent CLI). uvx starpulse skills install --claude --codex copies the bundled skills into the project. For any other agent, add a section to AGENTS.md or CLAUDE.md:

## Tasks

This project tracks work on a StarPulse board. Run `uvx starpulse help --agent` for every verb, its
arguments and exit codes. Read the board with `uvx starpulse board` and open a task with
`uvx starpulse task create "<title>"`.

Working without AI agents

The same verbs work typed by hand, and New task on the Kanban adds a task from the page. Both write the same board.

Views

Kanban Star Map Workflow runs
Kanban view Star Map view Workflow runs view

Reads tasks from its own Markdown board, Backlog.md or Jira; runs from Dagu, GitHub Actions or systemd; agents from Claude Code and Copilot.

Status

StarPulse is early. This is my first open source project, and I am still learning how to run one. What is rough today:

  • The UI is messy and not fully implemented.
  • The data it captures is not yet acted on in full; the feedback loop from captured signal to changed behavior is incomplete.
  • Performance is good but could be better.

Feedback

Something broke, confused you or is missing? Open an issue. Say what you ran and what you expected. A confusing first run is a bug I want to hear about.

MIT licensed.

Metadata

Release files for starpulse 0.5.1b2013

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for starpulse 0.5.1b2013
File Size Uploaded Provenance Actions
starpulse-0.5.1b2013.tar.gz 2.8 MB Without provenance Details for starpulse-0.5.1b2013.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for starpulse 0.5.1b2013
File Interpreter ABI Platform Actions
starpulse-0.5.1b2013-py3-none-any.whl Python 3 none any Details for starpulse-0.5.1b2013-py3-none-any.whl

Total release size: 5.8 MB

Release files / starpulse-0.5.1b2013.tar.gz

Download URL starpulse-0.5.1b2013.tar.gz
Size 2.8 MB
Tags Source
SHA-256 checksum
How to use checksums
cef12e7b76dea1080c0d57a780976bc77a3446689ba5bd7806eaedd40c016efd
BLAKE2b-256 checksum
How to use checksums
ed6e21c3728807f6aa09a80a33278e4816b8cb74ee489aeed82d65a23f0e925a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / starpulse-0.5.1b2013-py3-none-any.whl

Download URL starpulse-0.5.1b2013-py3-none-any.whl
Size 3.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b6f1a12c2454aa6a621d82b6661430b6bc0c8d9f3cc5cd0b0a3dc40b47318b7c
BLAKE2b-256 checksum
How to use checksums
368ac62a77ea8367d5d4633f2b3a15a86ab85762a7c86a766853354c586c6f9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for starpulse 0.5.1b2013

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page