{# CLI install widget: server-rendered method × cooldown matrix. Mirrors the mcp-install widget's structure — same cooldown control row, same settings sub-view, same prehydrate-driven panel visibility. Each code block runs through the `highlight` filter (defined in docs._ext.widgets._base.make_highlight_filter) which wraps Sphinx's PygmentsBridge — so the output is byte-identical to a native ``.. code-block::`` block, meaning sphinx-copybutton + its prompt-strip regex work automatically. The output is then run through ``cooldown_days_slot`` (defined in docs._ext.widgets._base.make_cooldown_days_slot_filter) which swaps ``<COOLDOWN_DURATION>`` / ``<COOLDOWN_DATE>`` for ```` spans. widget.js updates both kinds' textContent on every cooldown-days input change. #}
{% for method in methods %} {% endfor %}
{% for panel in panels %}
{% if panel.method.doc_url %}

With {{ panel.method.label }} installed:

{% endif %} {{ (panel.install_body | highlight("console")) | cooldown_days_slot }}

Then run it from the terminal:

{% for cmd in panel.usage_commands %} {{ (cmd | highlight("console")) | cooldown_days_slot }} {% endfor %} {% if panel.note %}

{{ panel.note }}

{% endif %}
{% endfor %}