Publish a web page from the terminal

One curl command turns markdown into a live web page at a public URL. No API key, no signup — POST to /api/v1/publish and the response hands you the shareable link.

The one-liner

curl -X POST https://quicky.page/api/v1/publish \
  -H 'content-type: application/json' \
  -d '{ "title": "Hello from my terminal", "content": "# It works\n\nPublished with one curl command." }'

The response is JSON with a public url (share it) and a private editUrl(keep it secret — anyone with it can edit the page). That's the whole flow.

Publish a markdown file

Use jqto JSON-encode a file's contents safely (handles quotes, newlines, and backslashes for you), then print just the URL:

# Publish a markdown file as a page, pull the URL out with jq:
curl -s -X POST https://quicky.page/api/v1/publish \
  -H 'content-type: application/json' \
  -d "$(jq -Rs '{title: "My notes", content: .}' < notes.md)" \
  | jq -r '.url'

A reusable shell function

Drop this into ~/.bashrc or ~/.zshrc and you get a qp command that publishes whatever you pipe into it:

~/.zshrc
# Add to ~/.bashrc or ~/.zshrc:
qp() {
  # Usage: qp "Title" < file.md   |   echo "# Hi" | qp "Title"
  jq -Rs --arg t "${1:-Untitled}" '{title: $t, content: .}' \
    | curl -s -X POST https://quicky.page/api/v1/publish \
        -H 'content-type: application/json' -d @- \
    | jq -r '"Public: \(.url)\nEdit:   \(.editUrl)"'
}

Then:

  • qp "Release notes" < CHANGELOG.md — publish a file.
  • echo "# Quick note" | qp "Note" — publish piped text.
  • my-script --report | qp "Nightly report"— publish a command's output.

Updating from the terminal

Save the id and editKey from the first publish, then POST them back with new content to replace the page in place — the URL stays the same. The full request and response contract, including error codes and the rate limit (30 publishes / 5 minutes per IP), is on the HTTP API page.

No jq?

jq is only used to escape content safely. For simple, single-line content you can inline the JSON directly as in the one-liner above — just remember to escape newlines as \n and quotes inside the body.


See also: the full HTTP API reference, publish AI output to a single URL, and how this compares to a Gist or Pastebin.