diff --git a/.github/social-preview.png b/.github/social-preview.png new file mode 100644 index 00000000..1c92c237 Binary files /dev/null and b/.github/social-preview.png differ diff --git a/README.md b/README.md index 220d8d00..cfc38d5b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # libtmux-mcp + +

+ + + libtmux for Python MCP + +

+ + A [Model Context Protocol](https://modelcontextprotocol.io) server for [tmux](https://github.com/tmux/tmux), built on [libtmux](https://libtmux.git-pull.com). [![Python Version](https://img.shields.io/pypi/pyversions/libtmux-mcp.svg)](https://pypi.org/project/libtmux-mcp/) diff --git a/docs/_static/favicon.ico b/docs/_static/favicon.ico index d38a0a61..8642f3ee 100644 Binary files a/docs/_static/favicon.ico and b/docs/_static/favicon.ico differ diff --git a/docs/_static/img/README.md b/docs/_static/img/README.md new file mode 100644 index 00000000..131148db --- /dev/null +++ b/docs/_static/img/README.md @@ -0,0 +1,16 @@ +# Logo assets + +The documentation and README use the Python palette and MCP overlay from +the libtmux asset kit. `libtmux.svg` is the vector mark; `libtmux.png` is +its transparent 512px fallback. Both sidebar themes use the same mark. + +`icons/` contains the browser and mobile icons listed in +`../../manifest.json`, Apple touch artwork, and the Safari mask. +`../favicon.ico` contains the ICO fallback. `opengraph.png` is the +1200 × 630 social card; `twitter.png` is the 1200 × 600 card. The repository +social preview at `../../../.github/social-preview.png` uses the same MCP +artwork as `opengraph.png`. + +The geometry comes from the project owner’s libtmux and tmuxp SVGs. The palette +uses [GitHub Linguist’s Python color](https://github.com/github-linguist/linguist/blob/538da05f034fa5c83bd81df128d144e208898da3/lib/linguist/languages.yml). +The overlay uses the symbol from the [MCP logo](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/088176704a4e8f20e7f1d237de1de8484aa412fd/docs/logo/light.svg). diff --git a/docs/_static/img/icons/apple-touch-icon.png b/docs/_static/img/icons/apple-touch-icon.png new file mode 100644 index 00000000..c5b6bd86 Binary files /dev/null and b/docs/_static/img/icons/apple-touch-icon.png differ diff --git a/docs/_static/img/icons/icon-1024x1024.png b/docs/_static/img/icons/icon-1024x1024.png new file mode 100644 index 00000000..d1fa0a06 Binary files /dev/null and b/docs/_static/img/icons/icon-1024x1024.png differ diff --git a/docs/_static/img/icons/icon-128x128.png b/docs/_static/img/icons/icon-128x128.png index a7158088..ab377e88 100644 Binary files a/docs/_static/img/icons/icon-128x128.png and b/docs/_static/img/icons/icon-128x128.png differ diff --git a/docs/_static/img/icons/icon-144x144.png b/docs/_static/img/icons/icon-144x144.png index 74cb8a52..10f00f16 100644 Binary files a/docs/_static/img/icons/icon-144x144.png and b/docs/_static/img/icons/icon-144x144.png differ diff --git a/docs/_static/img/icons/icon-152x152.png b/docs/_static/img/icons/icon-152x152.png index b569bfdc..bd73e6be 100644 Binary files a/docs/_static/img/icons/icon-152x152.png and b/docs/_static/img/icons/icon-152x152.png differ diff --git a/docs/_static/img/icons/icon-167x167.png b/docs/_static/img/icons/icon-167x167.png new file mode 100644 index 00000000..b274e160 Binary files /dev/null and b/docs/_static/img/icons/icon-167x167.png differ diff --git a/docs/_static/img/icons/icon-16x16.png b/docs/_static/img/icons/icon-16x16.png new file mode 100644 index 00000000..722009e4 Binary files /dev/null and b/docs/_static/img/icons/icon-16x16.png differ diff --git a/docs/_static/img/icons/icon-180x180.png b/docs/_static/img/icons/icon-180x180.png new file mode 100644 index 00000000..643bdb69 Binary files /dev/null and b/docs/_static/img/icons/icon-180x180.png differ diff --git a/docs/_static/img/icons/icon-192x192.png b/docs/_static/img/icons/icon-192x192.png index 24376411..dbc5371b 100644 Binary files a/docs/_static/img/icons/icon-192x192.png and b/docs/_static/img/icons/icon-192x192.png differ diff --git a/docs/_static/img/icons/icon-256x256.png b/docs/_static/img/icons/icon-256x256.png new file mode 100644 index 00000000..d25a70be Binary files /dev/null and b/docs/_static/img/icons/icon-256x256.png differ diff --git a/docs/_static/img/icons/icon-32x32.png b/docs/_static/img/icons/icon-32x32.png new file mode 100644 index 00000000..c8915dc5 Binary files /dev/null and b/docs/_static/img/icons/icon-32x32.png differ diff --git a/docs/_static/img/icons/icon-384x384.png b/docs/_static/img/icons/icon-384x384.png index 8727cef4..21774686 100644 Binary files a/docs/_static/img/icons/icon-384x384.png and b/docs/_static/img/icons/icon-384x384.png differ diff --git a/docs/_static/img/icons/icon-48x48.png b/docs/_static/img/icons/icon-48x48.png new file mode 100644 index 00000000..83754286 Binary files /dev/null and b/docs/_static/img/icons/icon-48x48.png differ diff --git a/docs/_static/img/icons/icon-512x512.png b/docs/_static/img/icons/icon-512x512.png index 0be877c9..4075f81b 100644 Binary files a/docs/_static/img/icons/icon-512x512.png and b/docs/_static/img/icons/icon-512x512.png differ diff --git a/docs/_static/img/icons/icon-64x64.png b/docs/_static/img/icons/icon-64x64.png new file mode 100644 index 00000000..817f0456 Binary files /dev/null and b/docs/_static/img/icons/icon-64x64.png differ diff --git a/docs/_static/img/icons/icon-72x72.png b/docs/_static/img/icons/icon-72x72.png index 1587d4d7..ebe848a0 100644 Binary files a/docs/_static/img/icons/icon-72x72.png and b/docs/_static/img/icons/icon-72x72.png differ diff --git a/docs/_static/img/icons/icon-96x96.png b/docs/_static/img/icons/icon-96x96.png index 19f4f3d2..cb6c59b0 100644 Binary files a/docs/_static/img/icons/icon-96x96.png and b/docs/_static/img/icons/icon-96x96.png differ diff --git a/docs/_static/img/icons/maskable-192x192.png b/docs/_static/img/icons/maskable-192x192.png new file mode 100644 index 00000000..ae2ea954 Binary files /dev/null and b/docs/_static/img/icons/maskable-192x192.png differ diff --git a/docs/_static/img/icons/maskable-512x512.png b/docs/_static/img/icons/maskable-512x512.png new file mode 100644 index 00000000..b9261b9a Binary files /dev/null and b/docs/_static/img/icons/maskable-512x512.png differ diff --git a/docs/_static/img/icons/safari-pinned-tab.svg b/docs/_static/img/icons/safari-pinned-tab.svg new file mode 100644 index 00000000..f5300a43 --- /dev/null +++ b/docs/_static/img/icons/safari-pinned-tab.svg @@ -0,0 +1,2 @@ + + diff --git a/docs/_static/img/libtmux.png b/docs/_static/img/libtmux.png new file mode 100644 index 00000000..4075f81b Binary files /dev/null and b/docs/_static/img/libtmux.png differ diff --git a/docs/_static/img/libtmux.svg b/docs/_static/img/libtmux.svg index 30f9423a..25bb97ed 100644 --- a/docs/_static/img/libtmux.svg +++ b/docs/_static/img/libtmux.svg @@ -1,191 +1,2 @@ - - - - - libtmux - - - - - - - Blue Square Group object (Shape) - - Blue Square shadow object (Shape) - - - Blue Square object (Shape) - - - - Yellow Square Group object (Shape) - - Yellow Square Shadow object (Shape) - - - Yellow Square object (Shape) - - - - Bottom bar object (Shape) - - - Light Blue Square Group object (Shape) - - Light Blue Square Shadow 1 object (Shape) - - - Light Blue Square object (Shape) - - - Light Blue Square Shadow 2 object (Shape) - - - - Gear object (Group) - - Gear Shadow object (Shape) - - - Gear object (Shape) - - - - - - - libtmux - - - - + + diff --git a/docs/_static/img/opengraph.png b/docs/_static/img/opengraph.png new file mode 100644 index 00000000..1c92c237 Binary files /dev/null and b/docs/_static/img/opengraph.png differ diff --git a/docs/_static/img/twitter.png b/docs/_static/img/twitter.png new file mode 100644 index 00000000..388db3d3 Binary files /dev/null and b/docs/_static/img/twitter.png differ diff --git a/docs/_templates/page.html b/docs/_templates/page.html index 82c26ec3..6de58e9e 100644 --- a/docs/_templates/page.html +++ b/docs/_templates/page.html @@ -9,6 +9,23 @@ #} {% extends "!page.html" %} +{% block extrahead %} +{{ super() }} + + + + + + + + + + + + + +{% endblock %} + {% block logo_prefetch_links %} {%- if logo_url -%} diff --git a/docs/conf.py b/docs/conf.py index 288f705b..ce91f0d7 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -88,6 +88,8 @@ def _patched_tool_collector_tool(self: ToolCollector, **kwargs: t.Any) -> t.Any: ), }, html_favicon="_static/favicon.ico", + ogp_image="_static/img/opengraph.png", + ogp_image_alt="libtmux for Python MCP", html_extra_path=["manifest.json"], rediraffe_redirects="redirects.txt", copybutton_selector="div.highlight pre, div.admonition.prompt > p:last-child", @@ -115,6 +117,11 @@ def _patched_tool_collector_tool(self: ToolCollector, **kwargs: t.Any) -> t.Any: ], ) +conf["html_context"] = { + **conf.get("html_context", {}), + "brand_twitter_image": f"{about['__url__'].rstrip('/')}/_static/img/twitter.png", +} + conf["myst_enable_extensions"] = [*conf["myst_enable_extensions"], "attrs_inline"] conf["exclude_patterns"] = [ *conf.get("exclude_patterns", ()), diff --git a/docs/manifest.json b/docs/manifest.json index 50b1df74..da04a47d 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -2,52 +2,72 @@ "name": "libtmux-mcp", "short_name": "libtmux-mcp", "description": "MCP server for tmux, powered by libtmux", - "theme_color": "#2196f3", - "background_color": "#fff", + "theme_color": "#3572A5", + "background_color": "#F4F4F1", "display": "browser", - "Scope": "https://libtmux-mcp.git-pull.com/", "start_url": "https://libtmux-mcp.git-pull.com/", "icons": [ { "src": "_static/img/icons/icon-72x72.png", "sizes": "72x72", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-96x96.png", "sizes": "96x96", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-128x128.png", "sizes": "128x128", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-144x144.png", "sizes": "144x144", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-152x152.png", "sizes": "152x152", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-192x192.png", "sizes": "192x192", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-384x384.png", "sizes": "384x384", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "_static/img/icons/icon-512x512.png", "sizes": "512x512", - "type": "image/png" + "type": "image/png", + "purpose": "any" + }, + { + "src": "_static/img/icons/maskable-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "_static/img/icons/maskable-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" } ], - "splash_pages": null + "splash_pages": null, + "scope": "/" }