Publish a note

Sign up for gno.sh, import an exported artifact, and publish a versioned reading-first snapshot.

Export a local note or collection with gno publish export, import the artifact in Studio, and publish a versioned snapshot at a gno.sh URL.

1. Create an account

Open the signup page and create a free account. No credit card. You’ll get a verification email and land on your dashboard.

2. Open the publish studio

Go to the publish studio. The library shows content items, note and asset counts, access, and publication status. Open an item for history and advanced operations; use Publish to prepare a new upload.

3. Drop or import a file

Canonical path: export from local GNO first, then upload the artifact.

gno publish export atlas --out ~/Downloads/atlas.json

Then open /studio and drop that compiled GNO artifact JSON into the import zone. Selecting a file prepares a draft; review and press Publish before anything becomes readable. Validation failures keep the draft available for correction. Dropping a single Markdown file works for a quick one-note share; use the exported artifact JSON for collections.

Local PNG, JPEG, GIF, WebP, and AVIF images your notes reference travel inside the artifact, stored once even when several notes use them. Every image request checks current access and is never cached, so rotating or revoking access also stops the images. Encrypted exports keep images inside the ciphertext, and only the reader’s browser decrypts them. gno.sh rejects AVIF files it cannot decode. Invite-only shares cannot show bundled images yet; use an invite without images, a secret link, or an encrypted share when you need local images.

Choose a new publication, explicitly select an existing publication to update, or publish a separate copy. A matching filename or slug does not authorize replacement. Supported append operations are under advanced options and require a selected target and preview. Encrypted shares update only through a fresh encrypted artifact.

4. Review access and audience

Uploaded artifacts keep their declared access. Review the effective mode and audience before publishing; supported overrides are explicit. New Markdown or source content starts with secret-link access when your plan allows private publishing, and public otherwise. An unavailable mode requires a supported choice or upgrade, never an automatic change to public. Check pricing for current availability; encrypted publishing has its own entitlement.

5. Press publish

A receipt appears with the share URL. Open the share URL to see typography, outline, scoped search, and keyboard navigation.

Reading and copying a note

The reader estimates reading time from the current note at 200 words per minute, rounded up. Empty notes omit the estimate. Code blocks, image data, metadata, and URLs do not count; link labels and table text do. This uses word-like text groups, so estimates are less useful for languages without spaces. Encrypted notes calculate the estimate in your browser after unlock.

Views means page opens, not unique people or completed reads. Refreshing or returning to a note counts again. Totals are approximate and first appear about five seconds after opening a note. Leaving sooner cancels that total request. Blocked requests or outages can lose increments, and automated visits can inflate them. Counting started on September 6, 2026; earlier views are not included. Essential sign-in cookies still authorize private access, but are not used to identify or count visitors.

Current GNO exports assign random note IDs saved privately in your local configuration directory. Updating content or published slugs keeps the same counter within the same publication. A new independent publication starts at zero. Moving a source file or collection root creates a new identity; keep the local identity registry when moving your configuration. Older plain exports use the note slug instead.

Encrypted exports include only an opaque note-ID roster outside the ciphertext. After unlock, the browser checks that this roster matches the decrypted notes before sending the current note ID. The roster reveals note count and identity continuity, never note titles, paths, text, or the passphrase. Older encrypted exports remain readable but need re-exporting with current GNO to display views.

Use Copy Markdown or Shift+Y to copy only the current note, including its title once, headings, tables, lists, code, and meaningful links. Protected images become descriptive placeholders; image bytes and access credentials are not copied. Encrypted copying happens only in your browser after unlock. Nothing is automatically sent to an agent. If clipboard access is denied, select and copy the Markdown shown below the button.

Y still copies the current link. Shortcuts ignore typing and modified or repeating keypresses. Turn off single-character shortcuts with the control at the bottom of the reader; the buttons remain usable.

Agent-readable public spaces

Public artifacts exported with GNO’s agent manifest keep the human reader and add deterministic, no-JavaScript resources for agents:

/share/<owner>/<space>/llms.txt
/share/<owner>/<space>/manifest.json
/share/<owner>/<space>/<document>.md

The manifest lists only the imported public projection. Every document includes a content hash and an exact line-range evidence locator. Secret-link, invite-only, and encrypted spaces never expose these endpoints.

Update, copy, or change access

A content-only update preserves the selected publication’s active URL and access. Publish a copy creates a separate publication with a distinct route. Public, secret-link, and invite-only access can change after review; the old access path or token stops working. A previously withdrawn public URL is not reused when you later make the content public again. Reload and review again if another operation changed the item before your request completed.

Converting into or out of encrypted mode requires a new local export in the desired mode. gno.sh cannot decrypt an existing share. Unsupported multi-space imports or updates are rejected before activation; export one space and review it separately.

Unpublish or delete permanently

Unpublish stops hosted access in every mode, including public, and retains the source and publication history. The library shows Unpublished; you can explicitly publish that source again. Draft, Published, Restricted, Expired, Deleting, and Cleanup failed identify other states.

Delete permanently names the item and affected publications, snapshots, and assets before confirmation. Access stops first; background cleanup then removes the selected hosted source, history, and unreferenced payloads. Cleanup failed keeps access denied and exposes a retry action; refresh or restart does not discard the job. While an item shows Deleting, cleanup is still running.

Your local vault files, independently published notes or copies, and assets still used elsewhere remain. Already downloaded copies and third-party caches cannot be recalled, and deletion does not promise instant backup erasure. See Privacy and Terms for retention boundaries.

Reports and publication restrictions

Use Report this page on a public reader to open a contextual email draft, or visit Report Abuse to copy the address and template. You send the report yourself; opening a draft does not submit it. Reports are reviewed manually.

A policy restriction appears as Restricted in Studio with an explanation and a review contact at abuse@gno.sh. You can still delete the hosted source. Renaming or importing an exact content copy under the same owner does not remove the block. Reinstatement after review clears only moderation; independently unpublished, expired, revoked, or deleted content stays unavailable. See Acceptable Use, Terms, and Privacy for the process and retention.