Real-time visual monitoring for code-built automations. See your automations glow.
Project description
friedeggjellyfish
Real-time visual monitoring for code-built automations.
When you build automations with AI coding tools, the workflow becomes invisible — no flowchart, no status indicators, no way to see what's running or what failed. friedeggjellyfish gives you that visual layer back.
Add four lines to your script. Open the dashboard. Watch your automation glow.
Install
pip install friedeggjellyfish
Requires Python 3.10+.
Quick start
1. Add monitoring to your script:
from friedeggjellyfish import monitor
monitor.start("Daily Lead Report")
monitor.step("Connect to HubSpot API")
monitor.step("Pull new leads")
monitor.step("Send summary email")
monitor.done()
2. Launch the dashboard in a separate terminal:
friedeggjellyfish dashboard
Your browser opens at http://127.0.0.1:8765. Run your script — each step appears in real time.
Error reporting
try:
pull_leads()
except Exception as e:
monitor.error("Failed to pull leads", details=str(e))
The dashboard displays the error in plain English alongside the failed step.
API reference
monitor.start(workflow_name, description=None, ws_url=...)
Begins a new monitored workflow run. Call this once at the top of your script.
| Parameter | Type | Description |
|---|---|---|
workflow_name |
str |
Name shown in the dashboard header |
description |
str | None |
Optional subtitle |
ws_url |
str |
Dashboard WebSocket URL (default: ws://127.0.0.1:8765/ws/ingest) |
Returns the run_id string (UUID). You can ignore it.
monitor.step(step_name, description=None, metadata=None)
Marks a step in the workflow. Call once per step as it begins.
| Parameter | Type | Description |
|---|---|---|
step_name |
str |
Label shown on the dashboard node |
description |
str | None |
Optional subtitle for the step |
metadata |
dict | None |
Optional key/value pairs attached to the step |
Auto-timing: friedeggjellyfish measures how long each step took and displays the duration.
monitor.warn(message, details=None, step_name=None)
Reports a non-fatal warning on the current or named step. The workflow continues.
| Parameter | Type | Description |
|---|---|---|
message |
str |
Plain-English description of the warning |
details |
str | None |
Extra context |
step_name |
str | None |
Which step (defaults to the last active step) |
monitor.error(message, details=None, step_name=None)
Reports an error on the current or named step. Informational only — your script controls flow.
| Parameter | Type | Description |
|---|---|---|
message |
str |
Plain-English description of what failed |
details |
str | None |
Full traceback or extra context (auto-captured if omitted) |
step_name |
str | None |
Which step failed (defaults to the last active step) |
monitor.done()
Marks the workflow complete. Always call this at the end of your script.
Dashboard CLI
friedeggjellyfish dashboard [--host HOST] [--port PORT] [--no-browser] [--log-level LEVEL]
| Flag | Default | Description |
|---|---|---|
--host |
127.0.0.1 |
Bind address |
--port |
8765 |
Port |
--no-browser |
off | Skip auto-opening the browser |
--log-level |
warning |
Server verbosity (debug, info, warning, error, critical) |
Silent fail
If the dashboard isn't running when your script starts, friedeggjellyfish logs a single warning and your automation continues normally. Nothing breaks.
How it works
your script → WebSocket (localhost) → FEJ server → browser dashboard
All data stays on your machine. Nothing is sent to any external service.
License
MIT. See LICENSE.
Attribution
Built by Kenneth Ebilane / AVI Lane Digital.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file friedeggjellyfish-0.1.0.tar.gz.
File metadata
- Download URL: friedeggjellyfish-0.1.0.tar.gz
- Upload date:
- Size: 37.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
029603a1ab753d622982530aee8d296ee46919683824585b8b022537b73787cf
|
|
| MD5 |
8b1a3e6005f6dfda64a33de6354c29b3
|
|
| BLAKE2b-256 |
4ed4c6b86d3c9be8fa346f7945368fedc05afb65ca50a7b9518f9edef722f1f7
|
File details
Details for the file friedeggjellyfish-0.1.0-py3-none-any.whl.
File metadata
- Download URL: friedeggjellyfish-0.1.0-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f8e3d99a1ce2166c63d3792ac8a2894115fbcab50853507630b1211af47f3ce
|
|
| MD5 |
d247c9494db39ca086cb265d29c1e854
|
|
| BLAKE2b-256 |
10467ed5c086641ba6429ab939c541455738351f6053c1b611f57e73c0293f94
|