{% extends "base.html" %} {% block title %}Connections ยท Memoreei{% endblock %} {% block main %}

Connections

Everything that can read your messages, and how it reaches this computer.

{% if ready %} {% set s = tunnel.state or "connecting" %} {{ {"online": "Online", "connecting": "Connecting", "offline": "Offline", "blocked": "Blocked", "relay": "Retrying", "revoked": "Removed", "replaced": "Stepped aside", "unpaid": "Disconnected"}.get(s, s|capitalize) }} {% elif custom %} Your own setup {% endif %}
{% if message %}

{{ message }}

{% endif %} {% if password_offer and not connecting %}
Manage memoreei and connect chatbots from anywhere. Set a password, and you can open this dashboard from your phone, and approve a chatbot from wherever you add it, instead of coming back to this computer. Optional. Without one, nothing changes.
Set a password
{% elif (device or custom) and account.password_hash and not account.remote %}

This dashboard answers only on this computer. To open it from anywhere, switch that on in Security.

{% endif %} {% if connecting %} {% include "_cloud_connecting.html" %} {% elif custom %}

Your own tunnel or proxy

This memoreei is set up for your own tunnel or proxy (MEMOREEI_PUBLIC_PORT), so Memoreei Cloud isn't used.

Listening on
{{ live.port or "?" }} (loopback unless MEMOREEI_PUBLIC_HOST says otherwise)
Address
{{ live.url or "not set (MEMOREEI_PUBLIC_MCP_URL)" }}
Sign-in
{% if live.issuer %}Chatbots sign in at {{ live.issuer }} and you approve them here{% else %}mem_ keys only: set MEMOREEI_PUBLIC_MCP_URL for chatbots to sign in{% endif %}
{% if live.error %}{% endif %} {% include "_awake.html" %}
{% elif device %}

Memoreei Cloud

{% if billing %}
{{ billing.title }}{% if billing.caption %}{{ billing.caption }}{% endif %}
Manage billing
{% endif %} {% if tunnel.message and tunnel.state not in ("online", "unpaid") %}

{{ tunnel.message }}

{% endif %} {% if not ready %}

It has no certificate yet, so it can't go online.

{% endif %} {% if live.error %}{% endif %}

Add this address as a connector

{{ device.mcp_url }}

In Claude.ai: Customize โ†’ Connectors โ†’ add a custom connector. In ChatGPT: Settings โ†’ Plugins. It asks this computer for permission, with a code: approve it here. Your messages stay on this computer.

Name
{{ device.name }}
Hostname
{{ device.hostname }}
{% if certificate %}
Certificate
Valid until {{ certificate.not_after|date }}; renews itself from {{ certificate.renews_at|date }}{% if live.certificate and live.certificate.last_error %}
Last renewal failed: {{ live.certificate.last_error }}{% endif %}
{% endif %}
Last call
{{ live.last_call_at|ago|capitalize }}
{% include "_awake.html" %}

While this computer sleeps or is offline, chatbots can't reach it, and they'll say so. {% if not billing or not billing.tone %}Thanks for supporting memoreei.{% endif %}{% if not billing %} Manage billing{% endif %}

{% endif %} {% include "_chatbot_requests.html" %} {#- Neither Cloud nor the person's own address yet: offer both, side by side. -#} {% set paths = offer and not (connecting or custom or device) %} {%- macro key_row() -%}
An app on this computer Claude Code, Claude Desktop, a script. One key each; no relay needed. Make a key

Lose a laptop? Revoke its key; nothing else changes.

{%- endmacro %} {% if connections %} {% if paths %}
{% include "_reach.html" %}
{% endif %}

Connected

{% include "_connection_list.html" %} {{ key_row() }} {% else %}

Nothing's connected yet

Your memories are ready. Give a chatbot or an app a way to ask.

{% if paths %}{% include "_reach.html" %}{% endif %} {% set in_empty_card = true %}{% include "_connection_list.html" %} {{ key_row() }} {% endif %} {% if calls %}
The last {{ calls|length }} calls from outside this computer
{% for c in calls %} {% endfor %}
WhenClientWhatFromAnswer
{{ c.at|ago|capitalize }}{{ c.client }}{{ c.tool or c.method or "?" }}{{ c.peer or "?" }}{{ c.status }}
{% endif %}
{% endblock %}