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.1b2141

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

Built distribution (wheel)

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

Total release size: 6.0 MB

Release files / starpulse-0.5.1b2141.tar.gz

Download URL starpulse-0.5.1b2141.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
62e9a0e6f064977ca7cd388ae561e1b492c062c3d224fed55b2340b13696d3fb
BLAKE2b-256 checksum
How to use checksums
06d1c0235737dcda611e913967d686071226bf21b40abf63b269b9de76dc75b6
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.1b2141-py3-none-any.whl

Download URL starpulse-0.5.1b2141-py3-none-any.whl
Size 3.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c303fd5c5a0e5c87709cf05d7a6d3cdf7d7b75e23f8a8676d0ef1d1d13782101
BLAKE2b-256 checksum
How to use checksums
32449ee8083f19be43b96ac2f28bfbf0cd0eeb9759f7cd1d94cc9bcbc8adceab
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.1b2141

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