lsspy
Real-time visualization dashboard for Lodestar-managed repositories.
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.lodestardirectory or parent directory. If not provided, auto-detects.lodestarin 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
- Initial Load: Client requests dashboard data via REST API
- WebSocket Connection: Client establishes WebSocket connection
- Subscriptions: Client subscribes to specific data scopes (tasks, agents, etc.)
- File Watching: Server monitors
.lodestardirectory for changes - Change Detection: File changes trigger data refresh
- Broadcast: Server broadcasts updates to subscribed WebSocket clients
- 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 (trueorfalse)
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
.lodestardirectory
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 checkGET /api/dashboard- Complete dashboard dataGET /api/tasks- List all tasksGET /api/agents- List all agentsGET /api/leases- List active leasesGET /api/messages- List recent messagesGET /api/events- List recent eventsWS /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
- Homepage: https://github.com/ThomasRohde/lsspy
- Documentation: https://github.com/ThomasRohde/lsspy
- Issue Tracker: https://github.com/ThomasRohde/lsspy/issues
- Lodestar CLI: https://github.com/lodestar-cli/lodestar
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)
| File | Size | Uploaded | |
|---|---|---|---|
| lsspy_cli-0.3.0.tar.gz | 344.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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