seedyn
v0.1.0
Published
Upload any file to Seedyn and receive its durable URL.
Readme
Seedyn CLI
Upload any file to Seedyn and print its permanent public URL. The package has no runtime dependencies and requires Node.js 22.12 or newer.
Setup
Create an API key in Seedyn with the scopes needed for the files you plan to upload, then save it using a hidden terminal prompt:
npx seedyn auth setCredentials are written to $XDG_CONFIG_HOME/seedyn/config.json, or
~/.config/seedyn/config.json when XDG_CONFIG_HOME is unset. The directory is
mode 0700 and the file is mode 0600. SEEDYN_CONFIG_PATH can select a
different absolute file.
For CI, keep credentials outside the repository:
export SEEDYN_API_KEY='sdn_live_…'Authentication precedence is --api-key, then SEEDYN_API_KEY, then the
owner-only config file. API URL precedence is --api-url, then
SEEDYN_API_URL, then the config file, then https://seedyn.dave.tips.
Passing a secret on the command line can expose it to shell history and process
inspection; prefer the environment or seedyn auth set.
Upload
The shortest form treats the first argument as a file:
npx seedyn ./report.pdfThe explicit form exposes all upload controls:
npx seedyn upload ./report.pdf --copy
npx seedyn upload ./page.html --render-html --open
npx seedyn upload ./image.png --slug launch-shot --domain gurt--render-html is an explicit opt-in. Seedyn verifies a non-empty UTF-8 HTML
document, stores it as text/html, and serves it inline only on a configured
public media domain. Uploaded scripts, forms, frames, embedded objects, and
network requests remain disabled by the response sandbox. Without the flag,
HTML is an ordinary attachment.
Agents can upload stdin by naming the resulting file:
generate-report | npx seedyn upload - --filename report.html --render-htmlUseful options:
--copycopies the URL using the operating system clipboard command.--openopens the URL using the operating system URL handler.--jsonprints a machine-readable response.--quietprints only the URL.--slug <slug>requests a readable public slug.--domain <id>chooses a configured media-domain identifier.--kind <auto|image|file|text>supplies the server classification hint.--language <language>supplies the text-language hint.--api-url <origin>targets a local or custom Seedyn instance.
The server always classifies the uploaded bytes and enforces the API key scope. Files are limited to 64 MiB; rendered HTML, images, and text are limited to 16 MiB.
Attribution
The command workflow is inspired by the MIT-licensed
[email protected]. See
THIRD_PARTY_NOTICES.md for attribution and the
retained license.
