95,615 people have shared 461,535 documents, viewed 9,802,508 times.

The Linkjar CLI

Send PDFs, Office files, HTML pages and folders as tracked links from your terminal, CI or any AI agent that can run commands, then see who opened them. Node 18+, no dependencies.

Install & log in

npx linkjar login          # opens your browser once
npx linkjar send deck.pdf --for "Sam Lee <[email protected]>"
npx linkjar activity deck

Or install it: npm i -g linkjar. Over SSH use linkjar login --no-browser. For Claude Code, add the agent skills with npx linkjar skills install.

Environment

LINKJAR_API_KEY
An API key from Settings → Claude, CLI & API. Takes precedence over a saved login; use it in CI and agents.
LINKJAR_URL
The server to talk to (default https://linkjar.com).
XDG_CONFIG_HOME
Where the login is saved (linkjar/config.json, readable only by you). Default ~/.config.

Output & exit codes

The first line of normal output is the link, so scripts and agents can take it straight away; notes and warnings go to stderr. Add --json to any command for the raw API response. Exit code 0 on success, 1 when the server says no, 2 for a usage mistake.

Commands

linkjar login

Usage: linkjar login [--key <api key>] [--no-browser]

Logs in through your browser (OAuth). The token is saved to the config file
with owner-only permissions and is never printed.

  --key <key>     Save an API key (starts with lj_) instead of logging in
  --no-browser    Don't try to open a browser; just print the login link

Examples:
  linkjar login
  linkjar login --no-browser       # over SSH: open the printed link anywhere
  LINKJAR_API_KEY=lj_... linkjar whoami   # no login needed with the env var

linkjar logout

Usage: linkjar logout

Deletes the saved login (config file).

linkjar whoami

Usage: linkjar whoami

Shows the account and workspace the CLI is using.

linkjar send

Usage: linkjar send <path|-> [options]

Publishes a file and prints its link (first line of output).
  path: .pdf, .doc(x), .ppt(x), .xls(x), .html/.htm, .zip, or a folder with an
        index.html at its top (sent as a website). "-" reads HTML from stdin.

Options:
  --title <text>          Title shown to viewers (default: file name or <title>)
  --for "Name <email>"    Also make a personal link for this person (repeatable)
  --password <pw>         Visitors need this password to open it
  --email-gate            Ask visitors for their email first (Pro)
  --domains <a.com,b.com> Only allow emails at these company domains
  --expires <YYYY-MM-DD>  Link stops working after this date (paid plans)
  --cta-label <text>      Call-to-action button text, e.g. "Book a call"
  --cta-url <url>         Where the button goes

Examples:
  linkjar send deck.pdf
  linkjar send proposal.html --for "Sam Lee <[email protected]>" --for "[email protected]"
  linkjar send ./site --title "Q4 plan" --email-gate --domains acme.com
  cat page.html | linkjar send - --title "One-pager"

linkjar update

Usage: linkjar update <ref> <path|-> [--title <text>]

Replaces what an existing link shows. Everyone who has the link sees the new
version. Accepts the same kinds of path as send.

Examples:
  linkjar update acme-proposal proposal-v2.html
  linkjar update https://linkjar.com/acme-proposal ./site

linkjar list

Usage: linkjar list [--query <text>] [--limit <n>]

Recent documents with their links and view counts.

Examples:
  linkjar list
  linkjar list --query acme --json

linkjar activity

Usage: linkjar activity <ref> [--days <n>] [--limit <n>]

Who opened it, when, from where; on Pro also time spent, how far they read
and what they clicked. Alias: linkjar views.

Examples:
  linkjar activity acme-proposal
  linkjar activity acme-proposal --days 7 --json

linkjar responses

Usage: linkjar responses <ref> [--limit <n>] [--csv] [--save-signed <dir>]

What people filled in, signed and submitted on a fillable PDF: who, when and
their answers. Signed responses show who signed, when and where.

  --csv                 One row per response (columns: Submitted at, Respondent,
                        Respondent email, the signature columns when anything was
                        signed, then every field), ready for a spreadsheet
  --save-signed <dir>   Download each signed PDF (with its signature certificate)
                        into <dir>

Examples:
  linkjar responses order-form
  linkjar responses order-form --csv > responses.csv
  linkjar responses agreement --save-signed ./signed
  linkjar responses order-form --json

linkjar settings

Usage: linkjar settings <ref> [options]

Changes how a link behaves. Only the options you pass change.

Options:
  --title <text>
  --password <pw>         Visitors need this password to open it
  --email-gate            Ask visitors for their email first (Pro)
  --domains <a.com,b.com> Only allow emails at these company domains
  --expires <YYYY-MM-DD>  Link stops working after this date (paid plans)
  --cta-label <text>      Call-to-action button text, e.g. "Book a call"
  --cta-url <url>         Where the button goes
  --no-email-gate         Turn the email gate off
  --remove-password       Turn password protection off
  --remove-expiry         Remove the expiry date
  --remove-cta            Remove the button

Examples:
  linkjar settings acme-proposal --password hunter22 --expires 2026-12-31
  linkjar settings acme-proposal --remove-password --no-email-gate

linkjar room

Usage: linkjar room <title> <ref...> [--description <text>] [--email-gate]

Puts several documents behind one link (a deal room). Pro.

Examples:
  linkjar room "Acme deal room" acme-proposal case-study security-faq --email-gate

linkjar open

Usage: linkjar open <ref>

Opens the document's settings page in your browser.

linkjar skills

Usage: linkjar skills [list]
       linkjar skills install [name...] [--dir <folder>]

Agent skills teach Claude Code (and other agents) to write proposals, pitch
decks, one-pagers and case studies, send them with this CLI and follow up.
install downloads them into ~/.claude/skills/ (or --dir); with no names it
installs all of them. No login needed.

Examples:
  linkjar skills
  linkjar skills install
  linkjar skills install proposal follow-up
  linkjar skills install --dir ./.claude/skills     # just this project