Back to the catalog

notesqr

Anonymous WebRTC P2P file and folder sharing via notesqr.com — no signup, any size, mobile-friendly room URLs.

Open source Open in the app JSON README (API)

About

Anonymous WebRTC P2P file and folder sharing via notesqr.com — no signup, any size, mobile-friendly room URLs.

Details

Kind
Plugins
Topic
No topic detected
Publisher
notesqr
Origin
gemini
Category
ferramentas
Version
2.1.0
Stars
1
Last push
2026-08-18T17:04:12Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
notesqr/notesqr-share

README

# NotesQR Share

**Send files directly device-to-device over WebRTC — files never touch NotesQR's servers.**

CLI + MCP for [NotesQR](https://notesqr.com). Same rooms as the browser app. Both peers stay online; bytes never land on NotesQR disks.

<p align="center">
  <a href="https://github.com/NotesQR/notesqr-share/stargazers"><img src="https://img.shields.io/github/stars/NotesQR/notesqr-share?style=flat-square" alt="GitHub stars"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-yellow?style=flat-square" alt="MIT license"></a>
  <img src="https://img.shields.io/badge/transfer-WebRTC%20P2P-2563eb?style=flat-square" alt="WebRTC P2P">
  <img src="https://img.shields.io/badge/account-not%20required-14b8a6?style=flat-square" alt="No signup">
  <img src="https://img.shields.io/badge/node-%3E%3D18-339933?style=flat-square" alt="Node.js 18+">
  <a href="https://github.com/NotesQR/notesqr-share/commits/main"><img src="https://img.shields.io/github/last-commit/NotesQR/notesqr-share?style=flat-square" alt="Last commit"></a>
</p>

<p align="center">
  <a href="https://notesqr.com"><strong>Web app</strong></a>
  ·
  <a href="https://notesqr.com/donate"><strong>Donate</strong></a>
  ·
  <a href="CONTRIBUTING.md"><strong>Contribute</strong></a>
  ·
  <a href="https://notesqr.com/docs">Docs</a>
  ·
  <a href="https://github.com/NotesQR/NotesQR">Product README</a>
</p>

<p align="center"><em>Donation-funded. If this CLI saved you a WeTransfer upload, <a href="https://notesqr.com/donate">support the project</a>.</em></p>

<p align="center">
  <img src="media/demo-web-20260818.gif" alt="NotesQR: drop a file, get a QR or link, recipient downloads over WebRTC P2P" width="800">
</p>

**Current release: 2.1.0** — same transfer engine as the NotesQR web app (adaptive chunks up to 1 MiB, `zip_batch` DataChannel reuse, outbound concurrency 5→32).

---

## CLI

Needs [Node.js 18+](https://nodejs.org/). If `npx github:…` fails with `EALLOWGIT`, run `npm config set allow-git all` once, or clone this repo.

Prefer a **fresh** `npx` pull after upgrades so you are not stuck on an old cached checkout:

```bash
# Terminal A — sender (exits after successful delivery with --once)
npx -y github:NotesQR/notesqr-share send ./file.pdf --once

# Terminal B — or open the printed URL in a browser
npx -y github:NotesQR/notesqr-share recv https://notesqr.com/xxx-xxxx-xxx -o ./out
```

From a clone:

```bash
npm install
node cli/notesqr.mjs send ./file.pdf --once
node cli/notesqr.mjs recv <url> -o ./out
```

### Folders

`send` accepts directories (recursive). Peers only see **share-relative** paths (never absolute disk paths). `recv` recreates the tree under `-o`. Same folder flow exists on the web app, desktop installers, and browser extensions.

```bash
npx -y github:NotesQR/notesqr-share send ./project/ README.md --once
npx -y github:NotesQR/notesqr-share recv <room|url> -o ./out
```

<p align="center">
  <img src="media/cli-demo-20260818.gif" alt="NotesQR CLI: send, share URL or QR, receive" width="800">
</p>

---

## MCP

Agent tools `notesqr_p2p_send` / `notesqr_p2p_recv` — same P2P rooms, no store-and-forward API.

```json
{
  "mcpServers": {
    "notesqr": {
      "command": "npx",
      "args": ["-y", "-p", "github:NotesQR/notesqr-share", "notesqr-mcp"]
    }
  }
}
```

Docs: [notesqr.com/docs](https://notesqr.com/docs) · Agent hints: [notesqr.com/llms.txt](https://notesqr.com/llms.txt)

---

## Why not WeTransfer, Dropbox, or Google Drive?

- **WeTransfer** — uploads to their servers; free tiers cap size and expiry. This CLI never parks a copy on NotesQR disks.
- **Dropbox** — account + cloud folder/quota. NotesQR needs no account; sender stays online instead.
- **Google Drive** — share a hosted copy. NotesQR is a live WebRTC handoff, not a drive.

Full write-up: [notesqr.com/cloud-alternatives](https://notesqr.com/cloud-alternatives)

---

## How it works

```mermaid
flowchart LR
  S[Sender CLI / browser]
  N[NotesQR<br/>signaling]
  R[Receiver CLI / browser]
  S -->|create room| N
  R -->|join room| N
  S <-->|WebRTC DataChannel<br/>file bytes — never stored| R
```

TURN is a **fallback only** when a direct path is blocked.

1. Sender hosts a room and stays online
2. Prints `https://notesqr.com/{room}` (and a terminal QR)
3. Receiver joins while the sender is still running
4. Bytes go peer-to-peer (signaling + optional TURN only)

This is **not** an HTTP store-and-forward upload API. If the sender process exits before the download finishes, the transfer stops.

---

## What’s new in 2.1.0

- **Adaptive chunks** — probe SCTP `maxMessageSize`, send up to 1 MiB, step down if the peer rejects
- **`zip_batch`** — folder / multi-file transfers reuse one DataChannel (critical when a web guest downloads a folder from a CLI host)
- **Outbound concurrency** — base 5, grow toward 32 while in-flight bytes stay under ~10 MiB
- **Large rooms** — file list sent in ~180 KiB JSON batches
- **Recv** — multi-file downloads largest-first; stall watchdog instead of a hard wall-clock timeout from t=0

---

## Agent plugins

| Surface | Path |
| --- | --- |
| **Grok** | [`grok-plugin/`](grok-plugin/) — also listed on the [xAI Plugin Marketplace](https://github.com/xai-org/plugin-marketplace) as **notesqr** |
| **Cursor** | [`cursor-plugin/`](cursor-plugin/) |
| **Gemini CLI** | [`gemini-extension.json`](gemini-extension.json) · `gemini extensions install https://github.com/NotesQR/notesqr-share` |
| **Claude / Codex** | [`claude-plugin/`](claude-plugin/) · [`codex-plugin/`](codex-plugin/) |

---

## License

[MIT](LICENSE). Product: [notesqr.com](https://notesqr.com) · [Donate](https://notesqr.com/donate) · [Changelog](https://notesqr.com/changelog)

More