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

Declarative state machines for agent work, with an enforced task board and a live view of every task, workflow run and agent session.

CI status PyPI version Python version License: MIT

Live demo · Documentation · CLI reference · Contributing


StarPulse models each lifecycle in a project (a task board, a delivery pipeline, a skill's steps, a pull request's CI) as a state machine declared in YAML: its states, its transitions, and which writers (the operator, an agent, a named workflow) may make each move. Every move is recorded against its machine in an append-only event store and refused when the machine forbids it, whether it arrives from the CLI, the HTTP API or the web UI. A single page draws every machine live, with tasks, workflow runs and agent sessions moving through it.

Highlights

  • Machines as data. Lifecycles, guards and writer permissions are declared in YAML and validated with starpulse machine validate; a Kanban board is one machine, its states rendered as lanes.
  • Enforced writes. One write path for the CLI, the API and the page; a forbidden transition is refused, not drawn.
  • Event-sourced state. Append-only streams with optimistic concurrency, a transactional outbox and schema upcasters, in a single portable SQLite database.
  • Agent-native CLI. Every verb prints JSON with documented exit codes; starpulse help --agent emits the full verb manifest for an agent's context.
  • Pluggable sources. Adapters for task trackers, workflow schedulers and agent harnesses, plus a CloudEvents ingest (HTTP and gRPC) for anything else.
  • Built-in scheduler. Admission, quiet hours and dispatch of Ready tasks to agent sessions.
  • Observable. Prometheus /metrics, OTLP intake for agent telemetry, and flow and session analytics.

Installation

StarPulse requires Python 3.14 or later.

uv tool install starpulse    # or: pipx install starpulse

Or run it without installing, with uvx starpulse.

Quick start

starpulse init                                  # scaffold starpulse.toml, board.yaml and .starpulse/board/
export STARPULSE_TOKEN=$(openssl rand -hex 16)  # producer token read by the scaffolded config
starpulse serve                                 # open http://localhost:8766
starpulse task create "First task"

init writes a board machine with its roles declared, an example [[board.guards]] rule, a [scheduler] table and Claude Code telemetry export settings (--harness, --dir to change them). It never overwrites an existing file. starpulse doctor checks the config, the server and each adapter.

Using StarPulse with agents

Install the bundled skills into a project:

starpulse skills install --claude --codex

For any other harness, point the agent at the CLI from 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>"`.

The same verbs work by hand, and New task on the Kanban view writes to the same board.

Integrations

Kind Supported
Task trackers Native Markdown board, Backlog.md, Jira
Workflow runs Dagu, GitHub Actions, systemd timers, any scheduler via CloudEvents
Agent sessions Claude Code (OTLP), GitHub Copilot cloud agent and code review

New trackers and producers are written against the board, machine-events and runs contracts; see Adapters.

Views

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

Documentation

Guide Covers
Serve and configure Server, workers, config file, event store, scheduler, releases
Connect sources Agent telemetry, runs adapters, CloudEvents ingest, pull requests
CLI reference Every verb, its arguments, JSON output and exit codes
Write an adapter Board, machine-events and runs contracts, and the adapter kit
Build a consumer Dashboards, alerts and reports built on the event log export
Security Network exposure, request checks and the trust model
Compatibility The public surface and how releases keep it compatible
Development Building and testing StarPulse from source
Development loop How StarPulse fits a workflow with many concurrent agent sessions

Status

StarPulse is pre-1.0 and under active development; minor releases may change the config, CLI and API. The public surface lists what is covered by compatibility guarantees. Known gaps:

  • Parts of the web UI are incomplete.
  • Captured signals are recorded and reported but not yet fed back into scheduling decisions.

Contributing

Bug reports and pull requests are welcome. Open an issue with the command you ran and what you expected, and read CONTRIBUTING.md before sending a change.

License

MIT

Metadata

Release files for starpulse 0.5.1b2139

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.1b2139
File Size Uploaded Provenance Actions
starpulse-0.5.1b2139.tar.gz 2.9 MB Without provenance Details for starpulse-0.5.1b2139.tar.gz

Built distribution (wheel)

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

Total release size: 6.0 MB

Release files / starpulse-0.5.1b2139.tar.gz

Download URL starpulse-0.5.1b2139.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
40d20776328b4f016350cb115f944bdfbd637c36c3aad854d000858b37744ddd
BLAKE2b-256 checksum
How to use checksums
de9682d03e42946c3ab82f9962a7f3ba6e67ea2a1d0f05c3832af3deb5a647d2
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.1b2139-py3-none-any.whl

Download URL starpulse-0.5.1b2139-py3-none-any.whl
Size 3.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
21d21987edaf93e474c0fe1835c11feb8946e7ed642be20eacd32e9e2881030c
BLAKE2b-256 checksum
How to use checksums
04d6f522161b0a5d8c1bcf8e211ea1a2c2fa239575ec3bd01e6b96f1f3fcb448
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.1b2139

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