Skip to main content
Glama
samuelloranger

glim

Publish a self-contained HTML file or directory (or a Markdown, text, JSON or image file, rendered to a styled page) and get a short, readable link to show someone — from the command line or from a coding agent via MCP. glim runs its own server; put it behind a reverse proxy for a public URL, or use --local for a loopback link with no proxy at all.

Self-host the HTML artifacts a coding agent produces. Instead of a preview that lives on a vendor's servers, glim keeps every agent-generated page on your own infrastructure, at your own domain, under your own access controls.

Install

curl -fsSL https://raw.githubusercontent.com/samuelloranger/glim/main/install.sh | sh

Or build from source: go build -o glim .

Related MCP server: agent-html-drop

Quick start

glim config --domain https://glim.example.com    # optional; omit for localhost links
glim serve &                                     # run the preview server
glim report.html --title "Diff review"           # -> https://glim.example.com/diff-review-a1b2/

Without a domain, links are http://127.0.0.1:PORT/.... --local auto-starts the server and returns a loopback link:

glim report.html --title "Quick look" --local

Dashboard

glim serve also serves a private dashboard at /. It shows live thumbnails of every preview, a countdown and a seen count for each one, and lets you extend, pin or remove them. It updates in real time. The first visit creates the account with an email and password, so do that before exposing the server. See docs/dashboard.md.

Commands

glim <entry.html|dir> [--title T] [--project P] [--ttl 6h] [--name SLUG] [--local] [--qr]  publish, print URL
glim serve [--bind ADDR] [--port N] [--root DIR]                       run the preview server
glim config [--domain URL --bind ADDR --port N --root DIR --ttl 6h --live-reload true|false]  show or set config
glim caddy                                                             print a reverse-proxy vhost
glim ls | rm <name>... | gc                                           manage previews
glim extend <name> <ttl> | pin <name>                                 change a preview's lifetime
glim <entry> --password | lock <name> | unlock <name>                 password-protect a preview
glim open <name> | status                                             open a link / show status
glim mcp                                                              run as an MCP server
glim install [--skill] <claude|codex|cursor>                          wire into an agent
glim uninstall <claude|codex|cursor>                                  undo install
glim user ls | passwd <email> | rm <email>                            manage dashboard accounts
glim version

Config

~/.glim/config.json (overridable by GLIM_DOMAIN, GLIM_BIND, GLIM_PORT, GLIM_ROOT, GLIM_TTL, GLIM_LIVE_RELOAD). A published preview lives under root until its TTL elapses; expired previews are pruned on the next command and by glim gc.

Agent integration (MCP)

glim install <agent> registers glim's MCP server (tools: present, list, revoke, pin, extend) and writes a steering rule so the agent prefers glim for previews. Supported: Claude, Codex, Cursor. glim install --skill <agent> writes a SKILL.md instead (no MCP server), and glim uninstall <agent> removes either setup.

Behind a reverse proxy

Run glim serve bound where your proxy can reach it (--bind 0.0.0.0), point the proxy at HOST:PORT, and set --domain so links use the public URL. glim caddy prints a ready Caddy vhost. Keep it behind your usual access controls; a link's readable slug carries a short random suffix but is not a secret.

Run as a service

contrib/glim.service is a systemd user unit:

mkdir -p ~/.config/systemd/user
cp contrib/glim.service ~/.config/systemd/user/
systemctl --user enable --now glim
loginctl enable-linger "$USER"   # survive logout/reboot

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to upload, list, delete, and retrieve public URLs for self-contained HTML files on a remote nginx server via MCP, with a management page for browsing and previewing.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables publishing sanitized static HTML pages from an MCP agent and receiving shareable URLs, with tools for updating, listing, publishing, and deleting pages.
    12
    7 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to publish live, stateful HTML pages over MCP, providing shareable URLs, per-viewer data, and version history.
    MIT