Skip to main content

lsspy

Real-time visualization dashboard for Lodestar-managed repositories.

PyPI version Python 3.12+ License: MIT

Overview

lsspy provides a web-based dashboard for monitoring and visualizing Lodestar-managed repositories in real-time. It offers live updates on tasks, agents, leases, messages, and events through a modern, interactive UI.

Features

  • 📊 Real-time Monitoring: Live updates of tasks, agents, leases, and events
  • 🔌 WebSocket Support: Instant notifications of state changes
  • 🌐 REST API: Full API access for programmatic integration
  • 💻 Interactive Dashboard: Modern UI built with React and TypeScript
  • 📈 Statistics & Analytics: Task completion rates, agent activity, and more
  • 🔍 Dependency Visualization: Interactive graph of task dependencies

Installation

pip install lsspy-cli

Quick Start

Navigate to your Lodestar-managed project and start the dashboard:

cd /path/to/your/project
lsspy start

The dashboard will automatically detect the .lodestar directory and open in your browser at http://localhost:8000.

CLI Reference

start

Start the LSSPY dashboard server.

lsspy start [PATH] [OPTIONS]

Arguments:

  • PATH (optional): Path to the .lodestar directory or parent directory. If not provided, auto-detects .lodestar in the current directory.

Options:

  • -p, --port INTEGER: Port to run the web server on (default: 8000)
  • -h, --host TEXT: Host address to bind to (default: 127.0.0.1)
  • --no-open: Don't automatically open browser
  • --poll-interval INTEGER: File polling interval in seconds (default: 1)
  • --debug: Enable debug logging
  • -v, --version: Show version and exit

Examples:

# Start with auto-detection
lsspy start

# Specify .lodestar directory
lsspy start /path/to/.lodestar

# Specify parent directory (will find .lodestar inside)
lsspy start /path/to/project

# Custom port and host
lsspy start --port 9000 --host 0.0.0.0

# Don't open browser automatically
lsspy start --no-open

# Enable debug logging
lsspy start --debug

Architecture

Overview

┌──────────────────────────────────────────────────────────────┐
│                     Browser / Client                          │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐ │
│  │  React UI      │  │  WebSocket     │  │  REST API      │ │
│  │  Components    │  │  Client        │  │  Client        │ │
│  └────────┬───────┘  └────────┬───────┘  └────────┬───────┘ │
└───────────┼──────────────────┼──────────────────┼───────────┘
            │                  │                  │
            └──────────────────┼──────────────────┘
                              │
                    ┌─────────▼─────────┐
                    │   FastAPI Server  │
                    │   (lsspy.server)  │
                    └─────────┬─────────┘
                              │
            ┌─────────────────┼─────────────────┐
            │                 │                 │
    ┌───────▼────────┐ ┌──────▼──────┐ ┌───────▼────────┐
    │  RuntimeReader │ │  SpecReader │ │ ConnectionMgr  │
    │   (SQLite)     │ │   (YAML)    │ │  (WebSocket)   │
    └───────┬────────┘ └──────┬──────┘ └───────┬────────┘
            │                 │                 │
            │                 │                 │
    ┌───────▼─────────────────▼─────────────────▼────────┐
    │          .lodestar/ Directory                       │
    │  ┌──────────────────┐  ┌──────────────────┐        │
    │  │  runtime.sqlite  │  │    spec.yaml     │        │
    │  │  (runtime state) │  │  (task specs)    │        │
    │  └──────────────────┘  └──────────────────┘        │
    └─────────────────────────────────────────────────────┘

Components

Frontend (React + TypeScript + Vite)

  • Modern, responsive UI components
  • Real-time updates via WebSocket
  • Task board, agent panel, event timeline
  • Dependency graph visualization

Backend (FastAPI + Python)

  • RESTful API endpoints for data access
  • WebSocket server for real-time notifications
  • File watching for automatic updates
  • SQLite and YAML readers for Lodestar data

Data Sources

  • runtime.sqlite: Dynamic state (agents, leases, messages, events)
  • spec.yaml: Static task specifications and dependencies

Data Flow

  1. Initial Load: Client requests dashboard data via REST API
  2. WebSocket Connection: Client establishes WebSocket connection
  3. Subscriptions: Client subscribes to specific data scopes (tasks, agents, etc.)
  4. File Watching: Server monitors .lodestar directory for changes
  5. Change Detection: File changes trigger data refresh
  6. Broadcast: Server broadcasts updates to subscribed WebSocket clients
  7. UI Update: Client receives updates and refreshes UI components

Configuration

Environment Variables

  • LSSPY_HOST: Default host address (default: 127.0.0.1)
  • LSSPY_PORT: Default port number (default: 8000)
  • LSSPY_DEBUG: Enable debug mode (true or false)

Specify Lodestar Directory

lsspy start --port 9000 --host 0.0.0.0

Specify Lodestar Directory

lsspy start /path/to/.lodestar --port 8080

Requirements

  • Python 3.12 or higher
  • A Lodestar-managed repository with .lodestar directory

Development

Setup

# Clone the repository
git clone https://github.com/ThomasRohde/lsspy.git
cd lsspy

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

Frontend Development

The frontend is built with Vite + React + TypeScript:

cd frontend
npm install
npm run dev      # Development server
npm run build    # Production build

API Endpoints

  • GET /api/health - Server health check
  • GET /api/dashboard - Complete dashboard data
  • GET /api/tasks - List all tasks
  • GET /api/agents - List all agents
  • GET /api/leases - List active leases
  • GET /api/messages - List recent messages
  • GET /api/events - List recent events
  • WS /ws - WebSocket connection for real-time updates

WebSocket Subscriptions

Connect to /ws and subscribe to specific data streams:

{
  "type": "subscribe",
  "scopes": ["tasks", "agents", "events"]
}

Available scopes: tasks, agents, leases, messages, events, all

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details.

Links

Metadata

Release files for lsspy-cli 0.3.0

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

Source distribution (sdist)

Source distribution for lsspy-cli 0.3.0
File Size Uploaded
lsspy_cli-0.3.0.tar.gz 344.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lsspy-cli 0.3.0
File Interpreter ABI Platform
lsspy_cli-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 627.2 kB

Release files / lsspy_cli-0.3.0.tar.gz

Download URL lsspy_cli-0.3.0.tar.gz
Size 344.7 kB
Tags Source
SHA-256 checksum
How to use checksums
bcfa87110ccdd179eaa4bc2f06f805c88344c2cda68eddff3d008e47bf16d2db
BLAKE2b-256 checksum
How to use checksums
ff4a19462651a89eb101e3671a1bf2ddd74aea88192034012feb40e60a5c63a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 4, 2026.

Transparency log

Release files / lsspy_cli-0.3.0-py3-none-any.whl

Download URL lsspy_cli-0.3.0-py3-none-any.whl
Size 282.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fba5b1ec2d8d400c6a5d30f98cdae1f45239e6de6805209d30be51a7b3e37738
BLAKE2b-256 checksum
How to use checksums
3deba558481e901b096ed0861b6f04d449ffed2a0dfd33684391143adfdbf7a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

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