Thanks to visit codestin.com
Credit goes to github.com

Skip to content

davehughes/observe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Observe

Local OBS overlay server with code-based widget definitions.

Quickstart

# Install dependencies
uv sync

# Run the server (hot-reload enabled by default)
uv run observe

Open http://localhost:8000 to see available widgets and layouts.

Defining Widgets

Edit widgets.py to define your overlays:

from server import Widget, Layout, LayoutWidget

WIDGETS = {
    "live-indicator": Widget(
        type="text",
        content="LIVE",
        css_class="hud pulse",
        style={"color": "#ff0000"},
    ),
    "logo": Widget(
        type="image",
        content="/static/images/logo.png",
    ),
}

LAYOUTS = {
    "stream-overlay": Layout(
        width=1920,
        height=1080,
        widgets=[
            LayoutWidget(widget_id="live-indicator", css_class="top-right"),
            LayoutWidget(widget_id="logo", css_class="bottom-left"),
        ],
    ),
}

Changes hot-reload automatically.

Using in OBS

Add a Browser Source with one of these URLs:

  • Single widget: http://localhost:8000/widgets/live-indicator
  • Full layout: http://localhost:8000/layouts/stream-overlay

Set the browser source dimensions to match your layout (e.g., 1920x1080).

Widget Types

Type Content
text Plain text
image Image URL
html Raw HTML

Built-in CSS Classes

Positions: top-left, top-right, bottom-left, bottom-right, center

Styles: hud, log-line, alert-box

Animations: fade-in, fade-out, slide-in-left, slide-in-right, slide-in-top, slide-in-bottom, pop-in, bounce-in, pulse, glow, shake

CLI Options

uv run observe [options]

  -p, --port PORT   Port (default: 8000)
  --host HOST       Host (default: 127.0.0.1)
  --no-reload       Disable hot-reload

About

OBS widget server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published