# Quickstart — CLI, Desktop app, or enterprise connector

> Install the qURL CLI, get qURL Desktop for Mac, or run the enterprise connector beside a service. Steps and commands for each.

Source: https://layerv.ai/start/

---

Get started

# Up and running with qURL™ in minutes.

Requirements

Runs on

macOS, Linux, Windows.

Network

Outbound only: HTTPS to `api.layerv.ai`, UDP 443\. No inbound ports.

Recipients

A browser. No install, no LayerV account.

1. ## Install the CLI  
```  
brew install layervai/tap/qurl
qurl --version
```  
Did a coding agent already install it? On macOS and Linux the agent puts `qurl` in `~/.local/bin`. If your shell says `qurl: command not found`, run `export PATH="$HOME/.local/bin:$PATH"`, and add that line to `~/.zshrc` or `~/.bashrc` to keep it.
2. ## Publish your app  
Replace 3000 with your app's port.  
`qurl publish http://127.0.0.1:3000`  
```  
Published
  Target:  http://127.0.0.1:3000
  Access:  private — only you and the people you allow can open it
  Status:  serving
CRID: ae4jqpd7eaoslq7jinmjv4yikgzmcxgpjfsuobiniqnko32lpw743ivbeyha
```  
No account needed. Save the **CRID**: every later command takes it.  
This command publishes a private resource: it opens only for you and the people you allow, and the output says so in its `Access:` line. This needs `qurl` 3.4.1 or later (check with `qurl --version`); an earlier release publishes a public resource unless you add `--private`. Add `--public` only for something that anyone who has the CRID may open.
3. ## Share a link  
Replace <CRID>. Send the link it prints to one person.  
`qurl share <CRID>`  
Send it in a direct message, not a public channel: whoever opens it first uses it. Avoid email and apps that preview links, because a scanner that runs the page could use its one opening. Don’t open it yourself to check it, for the same reason.  
Legacy: let people ask for access with a code (`qurl` 3.4.1 or later). New shares from a coding agent use email invitations instead. Run `qurl requests <CRID> --on` for the resource you published, or publish a new one with `--allow-requests`, send them `https://qurl.link/<CRID>`, and approve each person with `qurl approve <CRID> <code>`, by the six-digit code that person gave you. Approve a code only when it came from the person you mean to let in, over a channel where you know it is them. The address and the CRID of a private resource are safe to send to anyone.  
### What your recipient sees  
A one-time link (when `qurl share` confirms one-time use)  
They open it in a browser and land on your app, with no install and no LayerV account. It works once and expires on its own. Your app’s own sign-in still applies.  
An email invitation (what a coding agent sends)  
They open the invitation in a browser, see who published the app (marked Not verified), verify their email there, and save a passkey. The email verification code stays in that flow; they never send it to you. Where the page offers **Email me an access link**, they can use that instead of a passkey.  
Legacy: an access request at `https://qurl.link/<CRID>`  
Only for resources published with `--allow-requests`. They press **Request access**, type a name, save a passkey, and get a six-digit code to give you. Once you approve that code, they press **Open anyway**.
4. ## Stop, start, or delete  
```  
qurl list
# Pause this resource without deleting its CRID:
qurl stop <CRID>
# Resume it when needed:
qurl start <CRID>
# Delete it only when you no longer need it:
qurl delete <CRID>
```

[CLI reference ](https://layerv.ai/cli/)[API reference ](https://layerv.ai/docs/)



---

*This markdown version is auto-generated from [https://layerv.ai/start/](https://layerv.ai/start/) for AI agents. Curated agent resources: [llms.txt](https://layerv.ai/llms.txt). For the full interactive experience, visit the HTML version.*

