<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gloss</title><link>https://nimblemarkets.github.io/gloss/docs/</link><description>Recent content on gloss</description><generator>Hugo</generator><language>en</language><atom:link href="https://nimblemarkets.github.io/gloss/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Install</title><link>https://nimblemarkets.github.io/gloss/docs/guide/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/install/</guid><description>&lt;h1 id="install"&gt;Install&lt;a class="anchor" href="#install"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;With &lt;a href="https://brew.sh"&gt;Homebrew&lt;/a&gt;, on macOS or Linux:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;brew install --cask nimblemarkets/tap/gloss&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On Debian or Ubuntu, download the &lt;code&gt;.deb&lt;/code&gt; for your machine from the&#10;&lt;a href="https://github.com/NimbleMarkets/gloss/releases/latest"&gt;latest release&lt;/a&gt; and install it:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install ./gloss_*_linux_amd64.deb &lt;span style="color:#75715e"&gt;# or _arm64&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The release also has archives for macOS, Linux, and Windows (amd64 and arm64),&#10;each a single binary with nothing else to install. With Go, &lt;code&gt;go install github.com/NimbleMarkets/gloss/cmd/gloss@latest&lt;/code&gt; builds it from source.&lt;/p&gt;&#10;&lt;h2 id="for-agents"&gt;For agents&lt;a class="anchor" href="#for-agents"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;If you are installing gloss for an AI agent, also install its skill, which&#10;teaches the agent the headless interface (&lt;code&gt;--text&lt;/code&gt;, &lt;code&gt;--output&lt;/code&gt;, &lt;code&gt;--info&lt;/code&gt;,&#10;&lt;code&gt;--pick&lt;/code&gt;, &lt;code&gt;--serve&lt;/code&gt;):&lt;/p&gt;</description></item><item><title>Using gloss</title><link>https://nimblemarkets.github.io/gloss/docs/guide/using/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/using/</guid><description>&lt;h1 id="using-gloss"&gt;Using gloss&lt;a class="anchor" href="#using-gloss"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;gloss shows the files you name, or the contents of a folder, or what you pipe into it. With no file it opens empty: drop files on it, or press &lt;code&gt;o&lt;/code&gt; to browse.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss photo.png drawing.svg report.pdf model.stl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --menu photo.png report.pdf model.stl &lt;span style="color:#75715e"&gt;# a menu to choose among them&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --preview photo.png report.pdf model.stl &lt;span style="color:#75715e"&gt;# the menu, with a preview pane&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Kitty graphics are selected automatically on supporting terminals, with colored&#10;half-block glyphs as a fallback. The program uses the alternate screen and&#10;restores the terminal on exit. With &lt;code&gt;-X&lt;/code&gt; (&lt;code&gt;--no-alt-screen&lt;/code&gt;, as in &lt;code&gt;less&lt;/code&gt;) it&#10;draws on the main screen instead: the scrollback is left alone, and the last&#10;view stays where it was drawn when you quit. The choice can wait until you&#10;quit: &lt;code&gt;q&lt;/code&gt; quits as launched, and &lt;code&gt;Q&lt;/code&gt; quits leaving the last view in the&#10;scrollback either way, so a picture worth keeping beside the next command&#10;stays, and one that is not does not. Direct PNG transport works over SSH; no shared&#10;filesystem or external converter is needed. In tmux, enable passthrough with&#10;&lt;code&gt;set -g allow-passthrough on&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Controls</title><link>https://nimblemarkets.github.io/gloss/docs/guide/controls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/controls/</guid><description>&lt;h1 id="controls"&gt;Controls&lt;a class="anchor" href="#controls"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Key&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Action&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;q&lt;/code&gt;, &lt;code&gt;Ctrl-C&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Quit&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;q&lt;/code&gt;, &lt;code&gt;Q&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Quit / quit leaving the last view in the scrollback, whatever &lt;code&gt;-X&lt;/code&gt; said&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;?&lt;/code&gt;, &lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Show help / dismiss help&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Back to the file list, with previews, from a document&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;In the file list, show the files as a grid of thumbnails, and back&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;m&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Open the file-selection menu&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;o&lt;/code&gt;, &lt;code&gt;O&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Browse folders for a file to open&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;]&lt;/code&gt;, &lt;code&gt;Tab&lt;/code&gt; / &lt;code&gt;[&lt;/code&gt;, &lt;code&gt;Shift-Tab&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Next / previous file&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;n&lt;/code&gt;, &lt;code&gt;Space&lt;/code&gt;, &lt;code&gt;PageDown&lt;/code&gt; / &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;PageUp&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Next / previous PDF page, sheet, or Grist table; next / previous file for other formats&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Search text in the current document; &lt;code&gt;Enter&lt;/code&gt; submits, &lt;code&gt;Esc&lt;/code&gt; cancels editing&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;n&lt;/code&gt; / &lt;code&gt;N&lt;/code&gt;, while searching&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Next / previous result, wrapping at the ends; &lt;code&gt;Esc&lt;/code&gt; clears the search&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Home&lt;/code&gt; / &lt;code&gt;End&lt;/code&gt;, &lt;code&gt;G&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;First / last PDF page&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Arrows, &lt;code&gt;h j k l&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Move about a spreadsheet by row and column&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;x&lt;/code&gt;, &lt;code&gt;X&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Hide the column under the cursor / show every column&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List the columns, to show and hide them: &lt;code&gt;Space&lt;/code&gt; toggles, &lt;code&gt;a&lt;/code&gt; all, &lt;code&gt;n&lt;/code&gt; none&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Enter&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;With &lt;code&gt;--fetch&lt;/code&gt;, open the web address under the cursor&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;u&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Show a QR code for the selected table URL; &lt;code&gt;Esc&lt;/code&gt; or &lt;code&gt;u&lt;/code&gt; closes it, &lt;code&gt;g&lt;/code&gt; switches graphics, &lt;code&gt;e&lt;/code&gt; exports the QR&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Close a fetched file and return to its cell&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Zoom in / out&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Arrows, &lt;code&gt;h j k l&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Pan zoomed images; orbit meshes&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;f&lt;/code&gt;, &lt;code&gt;0&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fit image / reset camera&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;g&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Toggle Kitty / glyph output when Kitty is supported&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;R&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Reload file from disk&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Export the current page as a PNG in the working directory (a download in a browser)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Show or hide a box of details about the current file and the terminal&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Toggle mesh auto-rotation; reload other formats&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Toggle mesh orthographic / perspective projection&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;List the parts of a 3MF: &lt;code&gt;Space&lt;/code&gt; shows or hides one, &lt;code&gt;Enter&lt;/code&gt; focuses on it, &lt;code&gt;a&lt;/code&gt; all, &lt;code&gt;n&lt;/code&gt; only it&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;X&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Show every part of a 3MF again&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;C&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Pick a color for a mesh: &lt;code&gt;Tab&lt;/code&gt; between palette, sliders, and hex; &lt;code&gt;Space&lt;/code&gt; applies the swatch, &lt;code&gt;Enter&lt;/code&gt; chooses the swatch you have moved to and closes, &lt;code&gt;r&lt;/code&gt; (the Reset button) restores the file&amp;rsquo;s colors, &lt;code&gt;s&lt;/code&gt; paints all faces or only plain ones, &lt;code&gt;Esc&lt;/code&gt; undoes&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;B&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Pick the background color behind a mesh, with the same picker as &lt;code&gt;C&lt;/code&gt;: &lt;code&gt;r&lt;/code&gt; restores the default, &lt;code&gt;Enter&lt;/code&gt; chooses the swatch you have moved to and closes, &lt;code&gt;Esc&lt;/code&gt; undoes&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Click, in the &lt;code&gt;C&lt;/code&gt; / &lt;code&gt;B&lt;/code&gt; picker&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Click a tab, swatch, or slider bar; a swatch applies at once and a second click on it chooses it and closes; drag along a slider&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Drag / Shift-drag / wheel&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Mesh (STL, 3MF) orbit / pan / zoom&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Drop files, or paste their paths&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Add files to the list; one opens at once, several open the menu&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;At a PDF boundary, page navigation stays on that page. Use &lt;code&gt;[&lt;/code&gt; and &lt;code&gt;]&lt;/code&gt; to change&#10;files. Loading and rendering run asynchronously; errors appear in the viewer&#10;with retry and next-file controls.&lt;/p&gt;</description></item><item><title>Opening and viewing</title><link>https://nimblemarkets.github.io/gloss/docs/command/view/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/view/</guid><description>&lt;h1 id="opening-and-viewing"&gt;Opening and viewing&lt;a class="anchor" href="#opening-and-viewing"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;How gloss starts and what it draws with: the file menu and preview pane, terminal graphics, the screen it uses, which files it finds, and what it may fetch. gloss never fetches the network on its own.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Option&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Argument&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-m&lt;/code&gt;, &lt;code&gt;--menu&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;start with the file-selection menu&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-P&lt;/code&gt;, &lt;code&gt;--preview&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;start with the file menu and a preview pane&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-r&lt;/code&gt;, &lt;code&gt;--render&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;terminal graphics: auto, kitty, glyph&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-X&lt;/code&gt;, &lt;code&gt;--no-alt-screen&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;draw on the main screen: scrollback is kept, and the last view stays after quitting&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-t&lt;/code&gt;, &lt;code&gt;--type&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;force input type: image, svg, pdf, stl, 3mf, docx, xlsx, grist, csv, json, ipynb, html, text, markdown (or md)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--glob&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;stringArray&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;search the folders named, or the current one, for files: a glob, an extension, or a kind such as images (repeatable)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--fetch&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;allow opening a dropped URL or a table address with Enter; gloss never fetches on its own&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Look at some files, with a menu to choose among them&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --menu photo.png report.pdf model.stl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# A menu with a preview pane&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --preview *.png&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Every image under the current folder&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --glob images&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# A file whose name does not say what it is&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --type markdown notes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Documents, pages and tables</title><link>https://nimblemarkets.github.io/gloss/docs/command/documents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/documents/</guid><description>&lt;h1 id="documents-pages-and-tables"&gt;Documents, pages and tables&lt;a class="anchor" href="#documents-pages-and-tables"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Choosing the page of a PDF or the sheet of a workbook, how finely a PDF is drawn, and which columns of a table to show.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Option&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Argument&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-p&lt;/code&gt;, &lt;code&gt;--page&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;1&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;PDF page or workbook sheet, from 1; for an export or text into a folder, a range such as 2-5, or all&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-d&lt;/code&gt;, &lt;code&gt;--dpi&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;150&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;PDF rasterization DPI (36–600)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--cols&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;show only these columns of a table, by header or letter: name,name&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--coln&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;show only these columns of a table, counted from 1: 2,4-6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# The third page of a PDF&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --page &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; report.pdf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Sharper pages&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --dpi &lt;span style="color:#ae81ff"&gt;300&lt;/span&gt; report.pdf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Only some columns of a sheet, by header or by number&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --cols name,total sales.xlsx&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --coln 2,4-6 sales.csv&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Meshes: STL and 3MF</title><link>https://nimblemarkets.github.io/gloss/docs/command/mesh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/mesh/</guid><description>&lt;h1 id="meshes-stl-and-3mf"&gt;Meshes: STL and 3MF&lt;a class="anchor" href="#meshes-stl-and-3mf"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;How a model is drawn and posed: the renderer, the camera or a named view, the projection, its paint, and which parts of a 3MF are shown. These apply to exports as well as to the viewer.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Option&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Argument&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--3d&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;auto&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;mesh renderer for STL and 3MF: auto, software, wireframe&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--view&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;views of a mesh: front, back, left, right, top, bottom, iso, all; several, as front,top, export as one sheet&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--camera&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;camera for a mesh, as elevation,azimuth or elevation,azimuth,distance in degrees&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--projection&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;&amp;quot;ortho&amp;quot;&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;projection of a mesh: ortho, perspective&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--color&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;paint the faces of a mesh its file left plain: #rrggbb or a name such as orange&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--parts&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;show only these parts of a 3MF, by name: name,name&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--partn&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;show only these parts of a 3MF, counted from 1: 2,4-6&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Start from the front, in perspective&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --view front --projection perspective model.stl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Paint the faces the file left plain&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --color orange model.stl&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Two parts of a 3MF, by name or by number&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --parts lid,base lantern.3mf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --partn 1,3 lantern.3mf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Exporting images</title><link>https://nimblemarkets.github.io/gloss/docs/command/export/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/export/</guid><description>&lt;h1 id="exporting-images"&gt;Exporting images&lt;a class="anchor" href="#exporting-images"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Writing PNGs without a terminal, sized for the vision models that will read them. Export never overwrites a file; it numbers the name instead. &lt;code&gt;--max-edge&lt;/code&gt; is the stable way to size an image; &lt;code&gt;--vision-profile&lt;/code&gt; is only an alias for one.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Option&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Argument&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-o&lt;/code&gt;, &lt;code&gt;--output&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;export one input as PNG; &amp;lsquo;-&amp;rsquo; writes PNG to stdout&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-O&lt;/code&gt;, &lt;code&gt;--output-dir&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;export each input as a numbered PNG in this directory&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-s&lt;/code&gt;, &lt;code&gt;--max-edge&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;1536&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;maximum exported image edge in pixels (1–4096)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;--vision-profile&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;string&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;alias for a &amp;ndash;max-edge, which is stable where these go stale: claude-high, claude-standard, openai-high&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# One page, as a PNG&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --page &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; --output page2.png report.pdf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Every page, into a folder&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --page all --output-dir pages report.pdf&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# A contact sheet of a model&amp;#39;s views, to a pipe&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --view front,top,iso --output - model.stl &amp;gt; sheet.png&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Text and details</title><link>https://nimblemarkets.github.io/gloss/docs/command/extract/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/extract/</guid><description>&lt;h1 id="text-and-details"&gt;Text and details&lt;a class="anchor" href="#text-and-details"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Reading a file without drawing it: its text, or what it says about itself, or where a PDF says something. All work without a terminal and write only the answer to standard output. With &lt;code&gt;--json&lt;/code&gt;, a PDF page&amp;rsquo;s text comes with &lt;code&gt;chars&lt;/code&gt; and &lt;code&gt;images&lt;/code&gt;, and &lt;code&gt;sparse&lt;/code&gt; when it is a picture with next to no text, better exported with &lt;code&gt;--output&lt;/code&gt;. &lt;code&gt;--grep&lt;/code&gt; prints each match&amp;rsquo;s page and a line around it, not the document.&lt;/p&gt;</description></item><item><title>Handing files over, and showing them</title><link>https://nimblemarkets.github.io/gloss/docs/command/handoff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/handoff/</guid><description>&lt;h1 id="handing-files-over-and-showing-them"&gt;Handing files over, and showing them&lt;a class="anchor" href="#handing-files-over-and-showing-them"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Asking the user for a file, or showing them one, when the caller has no terminal of its own: an agent, for instance. &lt;code&gt;--pick&lt;/code&gt; prints the paths the user sends; &lt;code&gt;--serve&lt;/code&gt; shows them a page. Without a terminal on standard input both detach, print one line of JSON, and are answered later with &lt;code&gt;--resume&lt;/code&gt;, which waits for the answer. &lt;code&gt;--status&lt;/code&gt; asks at once, as JSON, how the pick stands, and changes nothing; it still answers after &lt;code&gt;--resume&lt;/code&gt;. &lt;code&gt;--cancel&lt;/code&gt; ends the session, deleting its folder. All three take the resume token, not the one in the page&amp;rsquo;s address.&lt;/p&gt;</description></item><item><title>The file browser</title><link>https://nimblemarkets.github.io/gloss/docs/guide/browser/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/browser/</guid><description>&lt;h1 id="the-file-browser"&gt;The file browser&lt;a class="anchor" href="#the-file-browser"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The file browser is how you find a file to open without leaving gloss. It is a&#10;fast, keyboard-first chooser with a mouse as well: it filters as you type,&#10;completes paths with &lt;code&gt;Tab&lt;/code&gt;, lays folders out in columns like a file manager, and&#10;keeps a sidebar of places. Everything it offers has a key, and none of it changes&#10;a file: it only looks, and hands back what you choose.&lt;/p&gt;</description></item><item><title>Teaching agents: gloss skill</title><link>https://nimblemarkets.github.io/gloss/docs/command/agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/agents/</guid><description>&lt;h1 id="teaching-agents-gloss-skill"&gt;Teaching agents: gloss skill&lt;a class="anchor" href="#teaching-agents-gloss-skill"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;code&gt;gloss skill&lt;/code&gt; has no options of its own. gloss carries a skill that teaches an agent its headless surface, so it always matches the flags this binary has. &lt;code&gt;gloss skill&lt;/code&gt; prints it, as &lt;code&gt;gloss skill show&lt;/code&gt; does; &lt;code&gt;gloss skill install&lt;/code&gt; writes it where the agents on this machine look, or into the skills folder named.&lt;/p&gt;&#10;&lt;h2 id="examples"&gt;Examples&lt;a class="anchor" href="#examples"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Install it for the agents found on this machine&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill install&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Or into the skills folder named&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill install ~/.claude/skills&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Print it, to place by hand&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>General</title><link>https://nimblemarkets.github.io/gloss/docs/command/general/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/command/general/</guid><description>&lt;h1 id="general"&gt;General&lt;a class="anchor" href="#general"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Help and version. &lt;code&gt;gloss help&lt;/code&gt; is the usage, and &lt;code&gt;gloss help skill&lt;/code&gt; that of a command.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Option&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Argument&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Default&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-h&lt;/code&gt;, &lt;code&gt;--help&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;show help&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;-V&lt;/code&gt;, &lt;code&gt;--version&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;print version&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>Asking for a file</title><link>https://nimblemarkets.github.io/gloss/docs/guide/handoff/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/handoff/</guid><description>&lt;h1 id="asking-for-a-file"&gt;Asking for a file&lt;a class="anchor" href="#asking-for-a-file"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;A program that cannot show a terminal, such as an agent working for you, can&#10;still ask you for a file, or show you one:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --serve --pick &lt;span style="color:#75715e"&gt;# prints the paths you send, one to a line&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --serve report.pdf &lt;span style="color:#75715e"&gt;# shows you the file; prints nothing&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --pick &lt;span style="color:#75715e"&gt;# the same question, asked in the terminal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;--serve&lt;/code&gt; starts a temporary server on this machine, opens the viewer on a page&#10;in your browser, and ends when you quit the viewer or close the tab. The page is&#10;the native viewer, not the demo: &lt;code&gt;o&lt;/code&gt; browses your own folders, and a pasted path&#10;is read from your disk. Files dropped on the page are handed to gloss.&lt;/p&gt;</description></item><item><title>Markdown</title><link>https://nimblemarkets.github.io/gloss/docs/guide/markdown/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/markdown/</guid><description>&lt;h1 id="markdown"&gt;Markdown&lt;a class="anchor" href="#markdown"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Open &lt;code&gt;.md&lt;/code&gt;, &lt;code&gt;.markdown&lt;/code&gt;, or &lt;code&gt;.mdown&lt;/code&gt; files, or pipe text with &lt;code&gt;--type markdown&lt;/code&gt;.&#10;Glamour renders headings, lists, tables, and syntax-highlighted code. Local&#10;Markdown image references (including reference-style links) use the existing&#10;raster and SVG renderers, shown as block figures following their text line.&#10;Paths resolve relative to the Markdown file, or the working directory for stdin.&#10;Missing and remote images show placeholders; HTML image tags are not rendered.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss examples/readme.md&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss --preview examples/readme.md examples/shapes.svg&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat README.md | gloss --type markdown -&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use &lt;code&gt;j&lt;/code&gt;/&lt;code&gt;k&lt;/code&gt;, arrows, or the mouse wheel to scroll; &lt;code&gt;Space&lt;/code&gt;/&lt;code&gt;b&lt;/code&gt; page down/up;&#10;&lt;code&gt;Ctrl-D&lt;/code&gt;/&lt;code&gt;Ctrl-U&lt;/code&gt; move half a page; &lt;code&gt;Home&lt;/code&gt;/&lt;code&gt;End&lt;/code&gt; jump to the ends. Press &lt;code&gt;s&lt;/code&gt; to&#10;switch between rendered Markdown and source. File navigation remains &lt;code&gt;[&lt;/code&gt;/&lt;code&gt;]&lt;/code&gt;.&#10;Documents are limited to 2 MiB of UTF-8 and 32 image references, with a combined&#10;16-megapixel decoded image budget after resizing. Embedded images fit within&#10;1600 pixels. Markdown PNG export is not supported: send Markdown text directly&#10;to a model and export individual images when needed.&lt;/p&gt;</description></item><item><title>For agents</title><link>https://nimblemarkets.github.io/gloss/docs/guide/agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/agents/</guid><description>&lt;h1 id="for-agents"&gt;For agents&lt;a class="anchor" href="#for-agents"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;a href="../for-llms/"&gt;&lt;code&gt;skills/gloss/SKILL.md&lt;/code&gt;&lt;/a&gt; teaches an agent gloss&amp;rsquo;s&#10;headless surface, in the order an agent needs it: &lt;code&gt;--text&lt;/code&gt;, a sized PNG export,&#10;&lt;code&gt;--info --json&lt;/code&gt;, then &lt;code&gt;--pick&lt;/code&gt; or &lt;code&gt;--serve&lt;/code&gt;. The&#10;binary carries it, so it always matches the flags it was built with:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill install &lt;span style="color:#75715e"&gt;# install it for the agents found on this machine&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill install ~/.claude/skills &lt;span style="color:#75715e"&gt;# or into the skills folder named&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gloss skill &lt;span style="color:#75715e"&gt;# print it, to place it by hand&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Or, with Node, the &lt;a href="https://github.com/vercel-labs/skills"&gt;skills CLI&lt;/a&gt; installs&#10;it from the repository for every agent it finds:&lt;/p&gt;</description></item><item><title>Formats and limits</title><link>https://nimblemarkets.github.io/gloss/docs/guide/formats/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/formats/</guid><description>&lt;h1 id="formats-and-limits"&gt;Formats and limits&lt;a class="anchor" href="#formats-and-limits"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;PNG, JPEG, WebP, BMP, TIFF: first frame/page, up to 32 megapixels.&#10;Animated WebP and AVIF aren&amp;rsquo;t supported.&lt;/li&gt;&#10;&lt;li&gt;GIF: automatic playback with transparency, partial frames, disposal, and the&#10;file&amp;rsquo;s loop count. &lt;strong&gt;Space&lt;/strong&gt; pauses/resumes (or restarts after the last loop);&#10;&lt;code&gt;&amp;lt;&lt;/code&gt;/&lt;code&gt;&amp;gt;&lt;/code&gt; select 0.25×, 0.5×, 1×, 2×, or 4× speed; Backspace restores 1×.&#10;&lt;code&gt;r&lt;/code&gt; reloads from the beginning at 1×. The status bar shows the frame, speed,&#10;and playback state. &lt;code&gt;e&lt;/code&gt; exports the current full frame as PNG; zoom/pan still work.&#10;Canvas size is limited to 32 MP, animation to 1,000 frames and 64 Mi decoded&#10;frame pixels in total. Limits are checked before decoding all frames.&#10;Delays below 20 ms use 100 ms before the speed multiplier is applied; other&#10;delays are scaled directly (minimum 5 ms at 4×). Rendering can&#10;slow playback on large images or slow terminals; frames are not queued up.&#10;File-list previews, inline Markdown/notebook images, and headless &lt;code&gt;--output&lt;/code&gt;&#10;use the first frame on the full logical canvas. GIF frames are not &lt;code&gt;--page&lt;/code&gt;s.&lt;/li&gt;&#10;&lt;li&gt;HEIC/HEIF: primary still image, up to 32 megapixels, with container rotation&#10;and mirroring. Uses the &lt;a href="https://github.com/gen2brain/h265"&gt;pure-Go h265 decoder&lt;/a&gt;,&#10;without CGO or external converters. Unsupported HEVC features report decoder&#10;errors. HEIC works in Markdown, previews, PNG exports, and the browser demo.&lt;/li&gt;&#10;&lt;li&gt;SVG: NTCharts&amp;rsquo; pure-Go SVG renderer, rasterized to a 2400-pixel maximum edge.&#10;SVG support follows the underlying oksvg renderer, not a full browser engine.&lt;/li&gt;&#10;&lt;li&gt;PDF: PDFium via embedded WebAssembly; no Poppler, MuPDF, CGO, or external&#10;runtime installation. Pages render at 150 DPI by default (&lt;code&gt;--dpi 36..600&lt;/code&gt;),&#10;with a 32-megapixel raster budget and a 10,000-page limit. Password-protected&#10;PDFs aren&amp;rsquo;t supported. &lt;code&gt;/&lt;/code&gt; searches the text layer and jumps to matching&#10;pages with excerpts; it does not highlight the raster or perform OCR.&lt;/li&gt;&#10;&lt;li&gt;STL: ASCII and binary, flat-shaded triangles, up to 932,067 faces: as many as&#10;NTCharts3d draws, which is as many as any GPU is sure to hold. Normals are recomputed from vertex winding. GPU&#10;rendering falls back to software and then wireframe. Software draws at full&#10;size for Kitty output, smaller only while its frames are slow, and samples&#10;meshes above 20,000 triangles; wireframe samples above 2,000 triangles, so&#10;large models can lose detail in fallback modes.&lt;/li&gt;&#10;&lt;li&gt;Mesh color: an STL, and the faces of a 3MF its file leaves plain, are drawn&#10;in one default blue. &lt;code&gt;C&lt;/code&gt; opens a color picker over the mesh: a palette of&#10;swatches, one slider per channel, or a hex number typed in, each change&#10;painted as it is made; &lt;code&gt;Enter&lt;/code&gt; chooses the swatch you have moved to (or keeps&#10;the color set) and closes, changing nothing if you have not moved; &lt;code&gt;Esc&lt;/code&gt;&#10;undoes it. A 3MF with colors of its own is recolored whole, and the picker&amp;rsquo;s&#10;Reset button (or &lt;code&gt;r&lt;/code&gt;) gives its colors back; &lt;code&gt;s&lt;/code&gt; limits the paint to the faces&#10;its file left plain. &lt;code&gt;--color #rrggbb&lt;/code&gt;, or a name such as &lt;code&gt;orange&lt;/code&gt;,&#10;paints the viewer and exports alike.&lt;/li&gt;&#10;&lt;li&gt;3MF parts: what the build places is listed by name, from the model or the&#10;slicer&amp;rsquo;s settings, and &lt;code&gt;c&lt;/code&gt; opens that list over the mesh: &lt;code&gt;Space&lt;/code&gt; shows or&#10;hides a part, &lt;code&gt;Enter&lt;/code&gt; shows it alone with the camera fitted to it, &lt;code&gt;n&lt;/code&gt; keeps&#10;only it, &lt;code&gt;a&lt;/code&gt; and &lt;code&gt;X&lt;/code&gt; bring all back. &lt;code&gt;--parts name,name&lt;/code&gt; and &lt;code&gt;--partn 2,4-6&lt;/code&gt;&#10;choose parts for the viewer, an export, or &lt;code&gt;--info&lt;/code&gt;, so an agent can pose&#10;one part of an assembly. The triangle limit applies to the parts shown, so a&#10;project too large to draw whole can be seen part by part.&lt;/li&gt;&#10;&lt;li&gt;3MF: the core specification&amp;rsquo;s meshes, components, and build transforms;&#10;colors from base materials and color groups; objects kept in separate parts&#10;of the package, as slicers write them. Projects from Bambu Studio and its&#10;relatives are drawn in their filament colors, which those programs keep in&#10;settings of their own; colors painted onto faces are not read. Textures, beam lattices, slices, and&#10;encrypted content are not read. The same 932,067-face limit applies: a larger&#10;model is shown by its embedded thumbnail, and described by &lt;code&gt;i&lt;/code&gt;. A package may&#10;hold 4,096 entries and unpack to 128 MiB; one that unpacks to more is shown&#10;by its thumbnail too, and described by what its root model says.&lt;/li&gt;&#10;&lt;li&gt;Plain text (&lt;code&gt;.txt&lt;/code&gt;, &lt;code&gt;.text&lt;/code&gt;, &lt;code&gt;.log&lt;/code&gt;, and any file that is not binary):&#10;shown as it is, in the document view, so that no line of it is read as a&#10;heading, a list, or emphasis. Returns and a byte order mark are dropped,&#10;bytes that are not UTF-8 stand as �, and a file longer than 2 MiB is cut.&#10;A file of no known kind is read as text when its first 8 KiB hold no NUL&#10;byte, are UTF-8, and are mostly printable, as &lt;code&gt;less&lt;/code&gt; would show it; source&#10;code and configuration open that way, highlighted by&#10;&lt;a href="https://github.com/alecthomas/chroma"&gt;chroma&lt;/a&gt; in the language its name or&#10;first line says. Only binary files are unsupported.&lt;/li&gt;&#10;&lt;li&gt;JSON (&lt;code&gt;.json&lt;/code&gt;, &lt;code&gt;.jsonl&lt;/code&gt;, &lt;code&gt;.ndjson&lt;/code&gt;): pretty-printed and highlighted as a&#10;fenced block; &lt;code&gt;s&lt;/code&gt; shows it as it is in the file. A file with one value to a&#10;line, such as a training set, a batch request, or a log export, is shown as&#10;numbered records, whatever its name. Malformed JSON is refused with the line&#10;it fails on. Extensionless JSON and stdin are recognised by parsing. The&#10;view is cut at 2 MiB of pretty-printed text; &lt;code&gt;i&lt;/code&gt; says how many records&#10;there are.&lt;/li&gt;&#10;&lt;li&gt;Jupyter notebooks (&lt;code&gt;.ipynb&lt;/code&gt;, nbformat 4): Markdown cells as they are, code&#10;cells fenced in the kernel&amp;rsquo;s language after their &lt;code&gt;In [n]&lt;/code&gt; count, and each&#10;output after its cell: text as it was printed, errors without their colour&#10;codes, and PNG, JPEG, GIF, and SVG outputs as pictures. Widgets, HTML, and&#10;LaTeX outputs fall back to their text.&lt;/li&gt;&#10;&lt;li&gt;HTML (&lt;code&gt;.html&lt;/code&gt;, &lt;code&gt;.htm&lt;/code&gt;): converted to Markdown with&#10;&lt;a href="https://github.com/JohannesKaufmann/html-to-markdown"&gt;html-to-markdown&lt;/a&gt;, so&#10;saved pages and wiki exports read as documents: headings, lists, tables,&#10;links, code, and pictures beside the file are kept; scripts, styles, and&#10;layout are not. Nothing is fetched. A page may be 8 MiB.&lt;/li&gt;&#10;&lt;li&gt;Word (&lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.docm&lt;/code&gt;): turned into Markdown and shown as such, so &lt;code&gt;s&lt;/code&gt; shows&#10;the Markdown. Headings, lists, tables, links, pictures, and bold, italic, and&#10;struck text are kept; page layout, headers and footers, footnotes, comments,&#10;and text boxes are not. A document longer than 2 MiB of Markdown is cut.&lt;/li&gt;&#10;&lt;li&gt;Excel (&lt;code&gt;.xlsx&lt;/code&gt;, &lt;code&gt;.xlsm&lt;/code&gt;): each sheet is a grid that scrolls by row and column,&#10;with &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; turning between sheets. Cells show their values, formulas&#10;by their last result, and dates and times where a cell&amp;rsquo;s style says so. Up to&#10;100,000 rows and 1,024 columns of a sheet are read; the rest are counted.&#10;Formatting, merged cells, charts, and pictures are not shown.&lt;/li&gt;&#10;&lt;li&gt;Grist (&lt;code&gt;.grist&lt;/code&gt;): a Grist document is a SQLite database, and each of its&#10;tables is shown as a sheet is, with &lt;code&gt;n&lt;/code&gt; and &lt;code&gt;p&lt;/code&gt; turning between tables. The&#10;first row holds the columns&amp;rsquo; labels, and rows and columns stand in the order&#10;Grist keeps them in; summary tables come after the others, titled as Grist&#10;titles them (&lt;code&gt;Sightings [by Site]&lt;/code&gt;), what they group by shown as the table&#10;summed shows it. Cells show what&#10;is stored: formulas by their last result, as Grist saved it, and an error&#10;by its name (&lt;code&gt;#TypeError&lt;/code&gt;). Dates and times are written out, a reference&#10;shows what Grist shows for it, or &lt;code&gt;Table[row]&lt;/code&gt; where it shows the row,&#10;lists are joined with commas, and attachments are named, not opened. A&#10;hyperlink cell shows its words and leads to its address, as an Excel link&#10;does. Row&#10;ids, the positions rows are sorted by, Grist&amp;rsquo;s helper columns, and a&#10;summary&amp;rsquo;s list of the rows behind each line are left out. Nothing is worked out anew: no formulas, access rules, widgets, or&#10;number formats, and nothing is written. Up to 100,000 rows and 1,024&#10;columns of a table are read. A document in SQLite&amp;rsquo;s WAL mode is not read,&#10;nor is any other SQLite database: gloss is not a database browser.&lt;/li&gt;&#10;&lt;li&gt;CSV (&lt;code&gt;.csv&lt;/code&gt;, &lt;code&gt;.tsv&lt;/code&gt;): shown as a sheet is. The separator is read from the&#10;file: a comma, tab, semicolon, or pipe, whichever the first lines agree on;&#10;a &lt;code&gt;.tsv&lt;/code&gt; is read as tabs. Quoted values may hold the separator and line&#10;breaks. Only the file&amp;rsquo;s name says it is a table: text is not sniffed.&lt;/li&gt;&#10;&lt;li&gt;Columns of a table: &lt;code&gt;x&lt;/code&gt; hides the one under the cursor, &lt;code&gt;X&lt;/code&gt; brings them all&#10;back, and &lt;code&gt;c&lt;/code&gt; lists them to tick and untick. Hidden columns keep their&#10;letters, and one column always stays. &lt;code&gt;--cols Name,City&lt;/code&gt; shows only the&#10;columns with those headers (or letters), and &lt;code&gt;--coln 2,4-6&lt;/code&gt; those numbered&#10;so, in every table opened; a table with none of them is shown whole.&lt;/li&gt;&#10;&lt;li&gt;Web addresses in tables: a cell that holds an address or, in Excel and&#10;Grist, links to one is marked 🔗, and is a link to the terminal as well:&#10;click it as your terminal has links clicked (often with Cmd, Ctrl, or&#10;Shift held, since gloss takes plain clicks) and the terminal opens it in&#10;your browser. gloss itself starts no browser. A sheet has a cursor, and the&#10;status bar shows the address under it. With &lt;code&gt;--fetch&lt;/code&gt;, &lt;code&gt;Enter&lt;/code&gt; on such&#10;a cell downloads what it names and opens it like a dropped file; a picture&#10;is shown as one, and &lt;code&gt;Esc&lt;/code&gt; closes it and returns to the cell. Only http and&#10;https are fetched, of no more than 128 MiB, and only on &lt;code&gt;Enter&lt;/code&gt; or a URL drop/paste: gloss never&#10;fetches on its own. Fetched files are removed when closed or when gloss&#10;exits, unless they were picked.&lt;/li&gt;&#10;&lt;li&gt;Input files and stdin are limited to 128 MiB. One active document and, when&#10;enabled, one independent preview are kept open.&#10;Images, SVGs, and PDF pages zoom by cropping the existing raster, up to 64×;&#10;use a higher PDF DPI for more detail. There is no file watching, and no&#10;fetching unless &lt;code&gt;--fetch&lt;/code&gt; is given; even then only &lt;code&gt;Enter&lt;/code&gt; on a cell or an explicit URL drop/paste fetches.&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Development</title><link>https://nimblemarkets.github.io/gloss/docs/guide/development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/development/</guid><description>&lt;!-- Generated from DEVELOP.md by internal/tools/docsite: edit that, not this. --&gt;&#10;&lt;h1 id="development"&gt;Development&lt;a class="anchor" href="#development"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;gloss is written in Go on &lt;a href="https://github.com/charmbracelet/bubbletea"&gt;Bubble Tea&lt;/a&gt;&#10;and &lt;a href="https://github.com/NimbleMarkets/ntcharts"&gt;NTCharts&lt;/a&gt;, with&#10;&lt;a href="https://github.com/NimbleMarkets/ntcharts-svg"&gt;NTCharts SVG&lt;/a&gt;,&#10;&lt;a href="https://github.com/NimbleMarkets/ntcharts-pdf"&gt;NTCharts PDF&lt;/a&gt;, and&#10;&lt;a href="https://github.com/NimbleMarkets/ntcharts3d"&gt;NTCharts3d&lt;/a&gt;. The user&#10;documentation is on the &lt;a href="https://nimblemarkets.github.io/gloss/docs/"&gt;documentation site&lt;/a&gt;;&#10;this file is for working on gloss itself. &lt;a href="https://github.com/NimbleMarkets/gloss/blob/main/AGENTS.md"&gt;AGENTS.md&lt;/a&gt; is the same&#10;ground for coding agents.&lt;/p&gt;&#10;&lt;h2 id="build-and-run"&gt;Build and run&lt;a class="anchor" href="#build-and-run"&gt;#&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Requires Go &lt;strong&gt;1.26.8+&lt;/strong&gt; and &lt;a href="https://taskfile.dev/"&gt;Task&lt;/a&gt; for the development&#10;commands. Without Task, build with &lt;code&gt;go build -o gloss ./cmd/gloss&lt;/code&gt;. Go&amp;rsquo;s&#10;automatic toolchain selection can download that version. Dependencies are&#10;pinned in &lt;code&gt;go.mod&lt;/code&gt;; sibling checkouts aren&amp;rsquo;t needed. Clone with&#10;&lt;code&gt;--recurse-submodules&lt;/code&gt; (or run &lt;code&gt;git submodule update --init&lt;/code&gt;) to get the&#10;documentation theme.&lt;/p&gt;</description></item><item><title>For LLMs</title><link>https://nimblemarkets.github.io/gloss/docs/guide/for-llms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nimblemarkets.github.io/gloss/docs/guide/for-llms/</guid><description>&lt;!-- Generated from skills/gloss/SKILL.md by internal/tools/docsite: edit that, not this. --&gt;&#10;&lt;h1 id="for-llms"&gt;For LLMs&lt;a class="anchor" href="#for-llms"&gt;#&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;This is the skill gloss carries for agents. The binary prints it with &lt;code&gt;gloss skill&lt;/code&gt;, and &lt;code&gt;gloss skill install&lt;/code&gt; puts it where the agents on a machine look, so it always matches the flags that binary has.&lt;/p&gt;&#10;&lt;blockquote class='book-hint '&gt;&#10;&lt;p&gt;&amp;ldquo;Inspect local files with gloss: extract document text and tables, export images, PDF pages, SVG, and meshes as PNGs for vision, read metadata, or ask a human to choose or view files. Use for file inspection and local file handoffs, not document creation or editing.&amp;rdquo;&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item></channel></rss>