Step 1
Tell your agent to use Linky
Copy one instruction for your agent. That setup tells it how to bundle multiple URLs into a single Linky launch link.
Open source · Agent-first · MIT
One short link that opens every tab — for humans or agents alike.
Paste your list, share the link. Works the same in any browser, CLI, or agent prompt.
No signup, no credit card. MIT-licensed — self-host anytime.
How it works
Tell your agent to use Linky once. After that, whenever it needs to send you multiple URLs, it sends one Linky link instead.
Step 1
Copy one instruction for your agent. That setup tells it how to bundle multiple URLs into a single Linky launch link.
Step 2
Every time your agent would normally send you a pile of links, it sends one Linky URL instead. Open that one link and launch the full bundle from there.
Example reply
https://getalinky.com/l/abc123One short Linky instead of docs + PRs + issues + dashboards.
Try it now
Anonymous, free, and live — no signup, no credit card. Create a Linky right here and see how quickly many links turn into one launch URL you can share anywhere.
This form creates a simple, public Linky. Need the same Linky to open different tabs per viewer? Author a policy from the Personalize panel in the dashboard, or attach one at create time with --policy (CLI) or resolutionPolicy (API / SDK). See /docs for the policy shape.
One click to create your Linky. The backend normalizes and de-dupes URL entries.
CLI preview
npx getalinky create 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' 'https://www.youtube.com/watch?v=G7RgN9ijwE4' 'https://www.youtube.com/watch?v=_OBlgSz8sSM' --base-url 'https://getalinky.com' --jsoncurl preview
curl -X POST 'https://getalinky.com/api/links' \
-H 'content-type: application/json' \
--data-binary '{"urls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/watch?v=G7RgN9ijwE4","https://www.youtube.com/watch?v=_OBlgSz8sSM"],"source":"agent"}'With a policy at create time
linky create https://acme.com/docs https://acme.com/status \
--policy ./acme-team.policy.json \
--title "Acme standup"Agent-first path (Sprint 2.5). The Linky is locked down from the first click — no public window. Anonymous creates stay immutable until claimed.
Agent tools and developer IDEs
Who it's for
Hand off full context packs between agents and teammates — one URL replaces a wall of links.
Package a research session for a demo, a client, or an async update. Send the URL, skip the screenshots.
Give every agent task a clean ending: one Linky instead of 10+ URLs in chat.
Launch PR review bundles for standups and release trains.
Run incident-response checklists from one shareable URL — no hunting for tabs.
Ship a single team standup Linky — each teammate opens their own queue, drafts, and inbox from the same URL.
Route signed-in partners to partner-scoped URLs while staff open internal runbooks from the same Linky.
See which personalized rule your audience actually matched — owner-side insights with zero viewer tracking.
FAQ
Any valid http or https URL. Paste links from docs, dashboards, tickets, repos, and runbooks. The backend normalizes and de-dupes them for you.
No. Anonymous creation is free and frictionless — every create call returns a claim URL so you can bind the Linky to an account later. Accounts unlock editing, renaming, team workspaces, and version history. If you'd rather own the whole thing end-to-end, the repo is MIT-licensed — clone it, self-host on Vercel + Neon, and run your own Linky instance.
They land on the launcher page, click Open All, and every saved tab fires. If the browser blocks popups, manual fallback links are right there — nobody gets stranded.
Yes — four paths. Drop the Linky MCP into Cursor, Claude Desktop, Codex, Continue, or Cline with a paste-ready mcp.json and your agent can call create, update, list, insights, and key management as first-class tools. Or use the public HTTP API, the CLI, or the npm SDK directly — every surface shares one service layer, so the shapes match. See /docs/mcp for the MCP config snippets.
Attach a resolution policy to any Linky. On every click, rules evaluate the viewer's signed-in identity — email, email domain, user id, GitHub login, Google email, org memberships — and the launcher opens the matching tab set. Unmatched and anonymous viewers fall through to the public launch bundle, so the same URL stays safe to share publicly.
No account is needed for the public bundle — it opens for anyone. To see a personalized tab set the viewer signs in, and the launcher nudges them when a policy is in play but they haven't signed in yet.
Yes. The create endpoint accepts an optional resolutionPolicy in the same request, and the CLI exposes linky create ... --policy file.json (use --policy - to pipe from stdin). The Linky is locked down from the first click — no window where an unrestricted version is live. Anonymous launch bundles are immutable until claimed, so if your agent attaches a policy without signing in, pass email alongside it so the claim URL lands with the eventual human owner.
Yes. Switch to your org workspace and every Linky you create is team-owned. Teammates are mapped to one of three roles — admin, editor, viewer — derived from their Clerk org role. Admins delete and manage keys, editors edit, viewers read. Role changes happen in Clerk; Linky mirrors them through webhooks. Full role model at /docs/access-control.
Open any launch bundle in the dashboard and click Insights. You see views, unique viewer-days, Open All clicks, and the per-rule breakdown — did the engineering rule match, or did everyone fall through to the public bundle? No destination-tab tracking, no viewer cookies. Owner questions only: did my audience arrive, and did the right rule match?
Pick a read-only scope at mint time. Linky keys carry one of three scopes — links:read, links:write, or keys:admin — and scope is locked at mint. A read-only key can list and view bundles, read insights, and nothing else. If the key leaks from an agent transcript, the blast radius is exactly what you chose up front.