{% include "_tabler_sprite.html" %} {# Active-session row macros — reused by both the live list and the Recent group so a browser/detached row renders identically wherever it appears (live vs ended). #} {% macro hosted_row() %}
browser orphan {# `:disabled` is coerced with `!!` on every busy-state binding below. These buttons live in an x-for clone and the busy maps (hostedStopping/hostedResuming/ agentStopping) start without the row's key. Alpine 3.15.x renders a bare `:disabled="map[key]"` as DISABLED when that key is absent (an explicit false renders enabled) — so the Stop/Kill/Resume button is stuck un-clickable until the key exists. `!!` yields a concrete false for a missing key, which renders enabled. The sibling `x-text` ternaries are unaffected (undefined → 'Stop'). #} {# Forget only for an ended, non-orphan hosted session (an orphan is a live survivor — Kill it first). `!!` coercion: see the detached-row note. #}
{% endmacro %} {% macro detached_row() %}
detached claude.ai {# `!!` coercion: see the hosted-row note above. Without it, this Stop button is stuck DISABLED on first paint because `agentStopping` has no key for this job yet (Alpine 3.15.x x-for missing-key `:disabled` bug). #}
{% endmacro %}
Lost connection to the server — data may be stale. Retrying…

Before you start a session

Active sessions

what Claude is running for you right now
{% if claustrum_enabled %} {% endif %}
Nothing running yet — launch one from a project below.
{% if claustrum_enabled %} {% endif %}

Projects

a folder Claude works in — launch a session from any of them

https / ssh only · private/LAN hosts blocked unless enabled in config · cloned code runs only when you launch a session.

ships — its code runs when you launch a session here. Review it before starting.
{% if projects %}
{% for p in projects %} {% set idx = loop.index0 %} {% include "_project_row.html" %} {% endfor %}
{% else %}

No projects yet

Clauster runs Claude in a project directory under {{ projects_root }}. Create one or clone a git repo to get started — or drop a directory there and it appears here.

{% endif %}
{% if reaper_ui_enabled %}

Reap ghost environments

Server-side session environments with no live session clutter the claude.ai/code "New session" selector. The cloud Default and any environment backing a live session are never reaped.

Scanning…

{% endif %}
{% include "_dashboard_script.html" %}