product spec · illustrativescreamingface SDK — notebook widgets, rendered interactivenotebooks →
😱 ScreamingFace /widgets-view
what the widgets should feel like

The SDK widgets, rendered & alive.

Each widget from the tutorial notebooks, built as a working prototype in the brand system — filters filter, selections select, the url4 recipe updates as you edit. This is the target behavior and look for eng, not the SDK itself.

These are mock prototypes — no backend, no real inference (consistent with the SDK's “simulated but honest” stance). Every widget mounts from data-widget="…" via SFWidgets.mount(), so any one is liftable into another page. The .value line under each is the real object it produces.

01 · Authentication

Plug in providers before you compose. Keys stay in memory; grading is simulated.

In [1]
sf.setup()               # interactive panel — connect providers
Out
In [2]
sf.connections()         # live status; click a row to authenticate
Out

02 · Models

The catalog service — search, sort, filter down to provider/model ids.

In [3]
b = sf.models.browse()      # search + sort + price filter; click to add
b
Out
In [4]
sf.models.get("anthropic/claude-opus-4.8")   # a Model card
Out

03 · Fusions

Compose, cost, run, then read the result. The recipe is the identity.

In [5]
c = fusion.compose(options=sf.models.list(max_price=20))
c    # add/remove members, reduce, judge, prompts; url4 updates live
Out
In [6]
r = fusion.run()             # configure + watch: cost, progress, score
r
Out
In [7]
run.stats()             # which models carried the fusion
Out
In [8]
i = run.inspect()        # master/detail, wrong-only, per-participant reasoning
i
Out

04 · Custom scripts

Write your own reduce/loop logic — it runs for real. Attach with reduce_with / loop_with.

In [9]
reducer = sf.script(reduce)     # from a function, a .py path, or a code string
reducer
Out

05 · Leaderboard

One board: compare against baselines and other fusions, fork the recipe.

In [10]
board = sf.leaderboard("GPQA Diamond")
board   # benchmark switch, mine-only, fork; .to_frame() for a table
Out