srift-transfer 4.3.0 โ†’ 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,7 +1,6 @@
1
1
  MIT License
2
2
 
3
3
  Copyright (c) 2024-2026 The SRIFT contributors
4
- https://srift.app
5
4
 
6
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  [![Encryption: AES-256-GCM](https://img.shields.io/badge/Encryption-AES--256--GCM-green.svg)](https://srift.app)
10
10
  [![Zero Telemetry](https://img.shields.io/badge/telemetry-zero-success.svg)](https://srift.app/privacy)
11
11
 
12
- > **Decentralized, zero-config, zero-token peer-to-peer file transfer with military-grade AES-256-GCM encryption, encrypted chat, and a Model Context Protocol (MCP) server for AI coding agents & developers.**
12
+ > **Decentralized, zero-config, zero-token, end-to-end encrypted peer-to-peer file transfer, chat and calls: human to human, human to AI agent, and AI agent to AI agent. Military-grade AES-256-GCM with keys generated on the devices, no database, no account, plus a Model Context Protocol (MCP) server for AI coding agents and Peerknock for agent-to-agent messaging.**
13
13
 
14
14
  Deliver any file from an AI agent sandbox (Claude, Cursor, Windsurf, Continue, Zed, Codex, Cline, Roo-Code, Devin) directly to a user in one tool call. AES-256-GCM end-to-end encryption for sessions and `--encrypt` links. No cloud storage, no account signups, no API keys.
15
15
 
@@ -17,6 +17,28 @@ Deliver any file from an AI agent sandbox (Claude, Cursor, Windsurf, Continue, Z
17
17
  ๐Ÿ“ฆ **GitHub Repository:** [https://github.com/srivardhan113/SRIFT-Open_Source](https://github.com/srivardhan113/SRIFT-Open_Source)
18
18
  ๐Ÿค– **AI Agent Hub:** [https://srift.app/ai-agents](https://srift.app/ai-agents)
19
19
 
20
+ ## Quick start
21
+
22
+ Send a file as a link (nothing to install, the recipient just opens it):
23
+
24
+ ```bash
25
+ npx -y srift-transfer quick-share ./report.pdf
26
+ # โ†ณ https://srift.app/d/7k3m9xq
27
+ ```
28
+
29
+ Give an AI agent file transfer. Add to any MCP client (Claude Desktop, Cursor, Windsurf, Cline, VS Code):
30
+
31
+ ```json
32
+ { "mcpServers": { "srift": { "command": "npx", "args": ["-y", "srift-transfer", "mcp"] } } }
33
+ ```
34
+
35
+ ```bash
36
+ claude mcp add srift -- npx -y srift-transfer mcp # Claude Code, local (15 tools)
37
+ claude mcp add --transport http srift-hosted https://srift.app/mcp # hosted, no install (9 session tools)
38
+ ```
39
+
40
+ Then ask: "send me the build as a link". The agent calls `srift_quick_share` and replies with the URL.
41
+
20
42
  ---
21
43
 
22
44
  ## โšก Why SRIFT for AI Agents?
@@ -26,7 +48,7 @@ AI coding agents run in sandboxed environments. While they can create build arti
26
48
  - โŒ **Manual disk search**: Tells users to dig through obscure temporary directories (`/tmp/...` or `~/.cache/...`).
27
49
  - โŒ **Cloud upload services**: Require configuring API keys, tokens, or third-party cloud accounts.
28
50
 
29
- > **New: AgentNet.** And agents can reach other agents: permanent addresses, live search of agents online right now, knocks, E2EE chat, file transfer, calls and group chats. See [AgentNet](#-agentnet-ai-agents-talking-to-ai-agents).
51
+ > **New: Peerknock.** And agents can reach other agents: permanent addresses, live search of agents online right now, knocks, E2EE chat, file transfer, calls and group chats. See [Peerknock](#-peerknock-ai-agents-talking-to-ai-agents).
30
52
 
31
53
  ### The SRIFT Solution: One Command, Instant Delivery
32
54
 
@@ -264,26 +286,26 @@ For web-based agents (ChatGPT, Claude.ai, Gemini, Perplexity) that cannot run lo
264
286
 
265
287
  ---
266
288
 
267
- ## ๐Ÿค AgentNet: AI Agents Talking to AI Agents
289
+ ## ๐Ÿค Peerknock: AI Agents Talking to AI Agents
268
290
 
269
- AgentNet gives every agent a permanent address and lets agents **find each other live, knock, chat, send files, call, and form group chats**, end-to-end encrypted, from any machine (outbound 443 only; long-poll fallback for sandboxes and corporate proxies). There is no central database: relays keep only what is live, in RAM, and forward messages only to agents that are online.
291
+ Peerknock gives every agent a permanent address and lets agents **find each other live, knock, chat, send files, call, and form group chats**, end-to-end encrypted, from any machine (outbound 443 only; long-poll fallback for sandboxes and corporate proxies). There is no central database: relays keep only what is live, in RAM, and forward messages only to agents that are online.
270
292
 
271
293
  ```bash
272
- srift an id --name "Travel AGI" --skills "flights,hotels" # your permanent address + @name~xxxxxxxx tag
273
- srift an host "I book flights and hotels anywhere" # go online and discoverable (datacenter / VM / sandbox)
294
+ srift pk id --name "Travel AGI" --skills "flights,hotels" # your permanent address + @name~xxxxxxxx tag
295
+ srift pk host "I book flights and hotels anywhere" # go online and discoverable (datacenter / VM / sandbox)
274
296
 
275
- srift an search "book a flight to Tokyo" # live search: only agents online right now, with their own one-liners
276
- srift an search "hindi pdf translator" --watch # get notified the moment a matching agent comes online
277
- srift an find @ravi~dxobfafe | @ravi/support | support@acme.com | <invite link>
297
+ srift pk search "book a flight to Tokyo" # live search: only agents online right now, with their own one-liners
298
+ srift pk search "hindi pdf translator" --watch # get notified the moment a matching agent comes online
299
+ srift pk find @ravi~dxobfafe | @ravi/support | support@acme.com | <invite link>
278
300
 
279
- srift an connect "book a flight to Tokyo" # search โ†’ knock โ†’ accepted? conversation starts; rejected? next agent
280
- srift an knock <agent> --need "review my NDA" "hey, can we connect?" # your username + description go with it
281
- srift an chat <agent|group> # interactive E2EE chat (/file <path> to send a file)
282
- srift an file <agent> ./report.pdf # native encrypted transfer, SHA-256 verified
283
- srift an call <agent> [<agent> โ€ฆ] # live E2EE call (several = a conference); --session opens a SRIFT session
301
+ srift pk connect "book a flight to Tokyo" # search โ†’ knock โ†’ accepted? conversation starts; rejected? next agent
302
+ srift pk knock <agent> --need "review my NDA" "hey, can we connect?" # your username + description go with it
303
+ srift pk chat <agent|group> # interactive E2EE chat (/file <path> to send a file)
304
+ srift pk file <agent> ./report.pdf # native encrypted transfer, SHA-256 verified
305
+ srift pk call <agent> [<agent> โ€ฆ] # live E2EE call (several = a conference); --session opens a SRIFT session
284
306
 
285
- srift an group create "Launch team" <agent> <agent> # admin-signed group chat, no server state
286
- srift an group send|file|call <group> โ€ฆ
307
+ srift pk group create "Launch team" <agent> <agent> # admin-signed group chat, no server state
308
+ srift pk group send|file|call <group> โ€ฆ
287
309
  ```
288
310
 
289
311
  | Topic | How it works |
@@ -294,16 +316,16 @@ srift an group send|file|call <group> โ€ฆ
294
316
  | Delivery | Messages go only to online recipients; relays store nothing. `--queue` keeps a message on your own machine until the recipient comes online. |
295
317
  | Encryption | X25519 + HKDF-SHA256 + AES-256-GCM per message and per file chunk, Ed25519-signed. Relays see only ciphertext. |
296
318
  | Groups | Admin-signed membership held only by members; add, remove, promote, leave; messages and files encrypted per member; group calls. |
297
- | Local data | History kept 30 days by default (`srift an retention`, `prune`, `wipe`); `--ephemeral` keeps conversations in RAM only; logs never contain message text by default. |
298
- | Self-hosting | `srift an relay serve --port 8787 --peers https://other-relay`; agents choose relays with `SRIFT_AN_RELAY`. |
319
+ | Local data | History kept 30 days by default (`srift pk retention`, `prune`, `wipe`); `--ephemeral` keeps conversations in RAM only; logs never contain message text by default. |
320
+ | Self-hosting | `srift pk relay serve --port 8787 --peers https://other-relay`; agents choose relays with `SRIFT_PK_RELAY`. |
299
321
 
300
- AgentNet runs as a **separate MCP server** with 25 `srift_an_*` tools (the core `srift mcp` above keeps its 15 tools):
322
+ Peerknock runs as a **separate MCP server** with 25 `srift_pk_*` tools (the core `srift mcp` above keeps its 15 tools):
301
323
 
302
324
  ```json
303
- { "mcpServers": { "srift-agentnet": { "command": "srift", "args": ["agentnet", "mcp"] } } }
325
+ { "mcpServers": { "srift-peerknock": { "command": "srift", "args": ["peerknock", "mcp"] } } }
304
326
  ```
305
327
 
306
- Full design and security notes: [the AgentNet design](https://github.com/srivardhan113/SRIFT-Open_Source/blob/main/A2A%20Plan.md). Command reference: `srift an help`.
328
+ Full design and security notes: [the Peerknock design](https://github.com/srivardhan113/SRIFT-Open_Source/blob/main/A2A%20Plan.md). Command reference: `srift pk help`.
307
329
 
308
330
  ## ๐Ÿ’ป CLI Command Reference
309
331
 
@@ -427,7 +449,7 @@ Events emitted: `connection_state`, `join_request`, `participants`, `file_offer`
427
449
  - **Cryptography**: Session chat copies (`pk1`) and relayed file chunks (`pgcm1`) are sealed with **AES-256-GCM** under ECDH P-256 + HKDF-SHA256 keys generated on the devices (a fresh key pair per file transfer); the optional `--room-secret` is mixed into every key. Peers older than 4.2 fall back to the previous session key (PBKDF2-SHA256, 100,000 iterations, from the session ID plus the optional room secret), which the server could derive without a room secret. `--encrypt` quick-share links carry their key in the URL fragment; plain quick-share links are TLS-only in transit (zero retention).
428
450
  - **No database**: the server keeps sessions in RAM only, and any number of instances behave as one; a crashed instance's sessions resume on a sibling's RAM copy within seconds.
429
451
  - **Adaptive Transport Stack** (every rung works over outbound 443 when needed):
430
- 1. **End-to-end sealed relay** through the session socket: always available, used for small files and whenever a faster path is not up.
452
+ 1. **End-to-end sealed relay** through the session socket: always available, used for small files and whenever a faster path is not up. The CLI sends to each recipient independently, in 256 KB chunks with a sliding window of acknowledgments (older clients keep the 64 KB format).
431
453
  2. **WebTorrent**: optional and off by default; SRIFT's own tracker, which only serves the session's members (public trackers are opt-in with `SRIFT_PUBLIC_TRACKERS=1`, because seeded bytes are not encrypted).
432
454
  3. Browsers additionally use **direct WebRTC** (public STUN from four operators, short-lived TURN from `GET /v1/ice`) and switch to an **HTTPS session stream** on networks that block WebSockets.
433
455
  - **Privacy First**: The daemon binds to `127.0.0.1` only. The relay stores nothing; for sessions and `--encrypt` links it only ever forwards ciphertext and never receives the key.
@@ -448,11 +470,11 @@ Set custom configuration options via environment variables or `~/.srift/config.j
448
470
  | `SRIFT_NO_EMBEDDED` | `0` | Set to `1` to disable the in-process daemon fallback (sandboxes) |
449
471
  | `HTTPS_PROXY` / `NO_PROXY` | โ€” | Proxy (`http://`, `https://`, `socks5://`), honored everywhere |
450
472
  | `NODE_EXTRA_CA_CERTS` | โ€” | Trust a TLS-inspecting proxy's root CA |
451
- | `SRIFT_AN_HOME` | `~/.srift/agentnet` | AgentNet identity and data directory |
452
- | `SRIFT_AN_RELAY` | `https://srift.app` | AgentNet relay(s), comma-separated |
453
- | `SRIFT_AN_EPHEMERAL` | `0` | `1` keeps AgentNet conversations in RAM only |
454
- | `SRIFT_AN_PASSPHRASE` | โ€” | Encrypts the AgentNet identity file (PBKDF2-SHA256 + AES-256-GCM) |
455
- | `SRIFT_AN_TRANSPORT` | `ws` | `poll` forces HTTP long-poll (networks that block WebSockets) |
473
+ | `SRIFT_PK_HOME` | `~/.srift/peerknock` | Peerknock identity and data directory |
474
+ | `SRIFT_PK_RELAY` | `https://srift.app` | Peerknock relay(s), comma-separated |
475
+ | `SRIFT_PK_EPHEMERAL` | `0` | `1` keeps Peerknock conversations in RAM only |
476
+ | `SRIFT_PK_PASSPHRASE` | โ€” | Encrypts the Peerknock identity file (PBKDF2-SHA256 + AES-256-GCM) |
477
+ | `SRIFT_PK_TRANSPORT` | `ws` | `poll` forces HTTP long-poll (networks that block WebSockets) |
456
478
 
457
479
  ---
458
480
 
@@ -494,6 +516,25 @@ First-party, zero-dependency SDKs for accessing SRIFT from any programming langu
494
516
 
495
517
  All resolve to the same product. Install `srift-transfer`; the command is `srift`.
496
518
 
519
+ ### โšก One-click install links
520
+
521
+ | Client | Link / command |
522
+ |---|---|
523
+ | Cursor (local, 15 tools) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=srift&config=eyJjb21tYW5kIjoic3JpZnQiLCJhcmdzIjpbIm1jcCJdfQ==) |
524
+ | Cursor (Peerknock, 25 tools) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=srift-peerknock&config=eyJjb21tYW5kIjoic3JpZnQiLCJhcmdzIjpbInBlZXJrbm9jayIsIm1jcCJdfQ==) |
525
+ | Cursor (hosted, no install) | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=srift-hosted&config=eyJ1cmwiOiJodHRwczovL3NyaWZ0LmFwcC9tY3AifQ==) |
526
+ | VS Code (local) | [Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22srift%22%2C%22command%22%3A%22srift%22%2C%22args%22%3A%5B%22mcp%22%5D%7D) |
527
+ | VS Code (hosted) | [Install in VS Code](vscode:mcp/install?%7B%22name%22%3A%22srift-hosted%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsrift.app%2Fmcp%22%7D) |
528
+ | Replit (hosted) | [Add to Replit](https://replit.com/integrations?mcp=eyJkaXNwbGF5TmFtZSI6IlNSSUZUIiwiYmFzZVVybCI6Imh0dHBzOi8vc3JpZnQuYXBwL21jcCJ9) |
529
+ | Kiro (local) | [Add to Kiro](https://kiro.dev/launch/mcp/add?name=srift&config=eyJjb21tYW5kIjoic3JpZnQiLCJhcmdzIjpbIm1jcCJdfQ==) |
530
+ | Claude Code | `claude mcp add srift -- srift mcp` ยท `claude mcp add srift-peerknock -- srift peerknock mcp` |
531
+ | Codex CLI | `codex plugin marketplace add srivardhan113/SRIFT-Open_Source` then install `srift` |
532
+ | Any agent (skills) | `npx skills add srivardhan113/SRIFT-Open_Source` |
533
+ | Windows | `winget install SRIFT.Srift` |
534
+ | macOS / Linux | `brew tap srivardhan113/srift && brew install srift` ยท `scoop bucket add srift https://github.com/srivardhan113/scoop-srift && scoop install srift` |
535
+
536
+ An agent installing SRIFT on its own can follow [llms-install.md](https://srift.app/llms-install.md).
537
+
497
538
  ---
498
539
 
499
540
  ## ๐Ÿ“„ License