{#- mooring landing page — OpenAfterHours "night sky" theme. Custom homepage: replaces the header with a bespoke nav, fills the hero block with an animated night-sea scene (crescent moon, water, and a boat that sails in, moors, then sails on), followed by the feature shelf and start-here grid, hides the empty docs shell, and renders a custom footer. Inner pages use the standard theme. The boat voyage + starfield are wired up as progressive enhancement in landing.js; the hero copy stands alone without JavaScript. -#} {% extends "main.html" %} {% set gh = config.repo_url | default("https://github.com/OpenAfterHours/mooring", true) %} {% set anchor_svg %} {% endset %} {% set arrow_svg %} {% endset %} {% block extrahead %} {{ super() }} {% endblock %} {% block header %}
{{ anchor_svg }} mooring OpenAfterHours
{% endblock %} {% block hero %} {#- id="mooring" matches the slug of index.md's H1 so the base theme's "Skip to content" link (href="#mooring") lands on the hero copy, even though this template empties the docs container. -#}
{#- Night sky: deterministic starfield (landing.js) + crescent moon. -#} {#- Hero copy: left-aligned within the page gutter, capped narrow. -#}

Schema-only AI for data teams · git-free notebook sharing

Analyse your data with AI — without your data ever leaving your machine.

Mooring's copilot is sent only your schema — column names and types — and your notebook source. It has no tool that can read a data file, a cell output, or a single value, and mooring never sends those anywhere. Around it, share and pick up marimo notebooks across your team over GitHub, with no git and no tokens to manage. Just Python 3.12+.

$ uvx mooring
{#- The sea: water band, shimmering moon reflection, two wave hairlines. -#} {#- The boat that moors. landing.js sails it in, drops the anchor, holds, then sails on — looping. Static-moored under reduced motion / on mobile. -#} {#- Hints there's more below the fold; jumps to the feature shelf and smooth-scrolls there when JS is available (landing.js). -#}
{#- Visually-hidden so the four feature

s nest under a level-2 heading (keeps the h1 → h2 → h3 outline valid for screen-reader navigation). -#}

Why mooring

AI that can't see your data

Ask the copilot to write and edit cells against your real datasets. By design it gets only schema and source — never a value, a cell output, or a data file. It proposes cells you review and Apply.

GitHub with no git, no tokens

Pull, edit, and push a shared repo's notebooks with nothing but Python 3.12+. Sign in once with a device code — no tokens to create, paste, or rotate.

Share in one team repo

One repo holds the team's notebooks. Push to share; everyone else pulls. Conflicts are always flagged and resolved per file, never silently clobbered.

Pick up a teammate's notebook

Pull the repo, open someone else's notebook, and start working — in the same locked environment they used. No setup, no “works on my machine”.

{% endblock %} {% block container %}{% endblock %} {% block footer %} {% endblock %}