{% extends "base.html" %} {% block title %}Your hub β€” CareAgents{% endblock %} {% block bodyclass %}page-home{% endblock %} {% block head %}{% endblock %} {% block content %} {% include "_beta_banner.html" %}

Welcome back

{{ me.email }} {% if not has_passkey %}Β· add a passkey{% endif %}

{% if not connections %}

Two quick steps: connect your health records, then spin up an agent that can read them.

{% endif %}

Your agents

{% for a in agents %} {{ personas[a.persona].emoji if a.persona in personas else '🌿' }}
{{ a.name }}
{{ personas[a.persona].name if a.persona in personas else 'Care agent' }}
Open chat β†’
{% endfor %} {% if not agents %} {% if connections %}
Records connected.
{% else %}
Step 2. Once your records are connected below, create your first agent here.
{% endif %} {% endif %}

Your connections

{% if not connections %}Step 1{% endif %}
{% for c in connections %}
{{ c.label }}
{{ c.provider or c.kind }}
{{ c.status }} {% if c.kind == 'direct' and c.status != 'revoked' %} {% elif c.kind != 'sample' %} {% endif %} {% if c.status != 'revoked' %} {% endif %}
{% endfor %}

Connect records

{% for m in catalog %} {% endfor %}
{# The only channel for a refusal: tap a closed tile and this paragraph is the whole of what the deployment says back. Same live-region treatment as .conn-refresh-msg above; say() shows it before writing into it. #} {# True, and worth keeping β€” but only where the logins it describes are open. Under three "not open in this beta" tiles it contradicted the screen it sat on. #} {% if catalog | selectattr('id', 'in', ['fasten', 'wearable']) | rejectattr('tier', 'equalto', 'soon') | list %}

Verified provider & wearable logins happen on the provider’s own site β€” we never see your password.

{% endif %}

Where you can reach your agent

Webalways on
{# Not serviced in the beta (#536, D6): no webhook, no poller. No id, so home.js has nothing to bind β€” the tile is a label, not a control. #}
Telegramcoming soon
{% if imessage_handle %}
iMessage connect β†’
{% else %}
iMessagecoming soon
{% endif %}
Phone appinstall from browser
{# The refusal for these surfaces, and the words explaining every section flash, arrive here. Same live-region treatment as #connect-msg and .conn-refresh-msg; announce() shows it before writing into it. #}
{# `window.CARE = {telegramBot: ...}` used to be emitted here. Nothing reads it (home.js builds the deep link from the server response), and with the Telegram tile out of service for the beta (#536, D6) it only put the bot handle in the page source. #} {% endblock %}