LocalSend-based P2P transfer with MCP server design for NATS/Tailscale discovery and throughput tuning.
/plugin marketplace add plurigrid/asi/plugin install plurigrid-asi-skills@plurigrid/asiThis skill inherits all available tools. When active, it can use any tool Claude has access to.
localsend (Flox package) launches a GUI and does not exit for --help.224.0.0.167:53317 (LAN only).53317; direct IPs are required across subnets.jocalsend) or a small protocol wrapper.Discovery / Advertising
localsend_advertise:
agent_id, device_name, localsend_port, tailscale_ip?, capabilities, spectral_gap_targetlocalsend_list_peers:
source = localsend_multicast | nats | tailscaleSession Negotiation
localsend_negotiate:
peer_id, preferred_transport, max_chunk_bytes, max_parallelsession_id, transport, target_ip, portTransfer
localsend_send:
session_id, file_path, chunk_bytes, parallelismlocalsend_receive:
session_id, dest_dir, acceptThroughput Tuning
localsend_probe:
session_id, probe_bytes, probe_parallelismthroughput_bps, rtt_ms, loss_ratelocalsend_session_status:
session_idbytes_sent, bytes_received, throughput_bps, spectral_gapDefine:
spectral_gap = 1.0 - (observed_throughput / target_throughput)
Stop tuning when spectral_gap <= 0.25.
Tuning Loop:
chunk_bytes = 256KB, parallelism = 1lib/synadia_broadcast.rblib/tailscale_file_transfer_skill.rbmcp_unified_server.pyUse gh api graphql for contributor snapshots (limit: history(first: 100)):
gh api graphql \
-F owner=localsend \
-F name=localsend \
-F history=100 \
-f query='query($owner:String!,$name:String!,$history:Int!){
repository(owner:$owner,name:$name){
defaultBranchRef{name target{
... on Commit{
history(first:$history){
nodes{author{user{login} name}}
}
}
}}
}
}'
Aggregate top contributors:
gh api graphql -F owner=localsend -F name=localsend -F history=100 -f query='query($owner:String!,$name:String!,$history:Int!){repository(owner:$owner,name:$name){defaultBranchRef{name target{... on Commit{history(first:$history){nodes{author{user{login} name}}}}}}}}' \
| jq -r '.data.repository.defaultBranchRef.target.history.nodes[].author | if .user then .user.login else .name end' \
| sort | uniq -c | sort -nr | head -20
Persist LocalSend sessions and GitHub snapshots into DuckDB for time travel:
CREATE TABLE IF NOT EXISTS localsend_sessions (
session_id TEXT,
peer_id TEXT,
direction TEXT, -- send|receive
bytes BIGINT,
throughput_bps DOUBLE,
spectral_gap DOUBLE,
created_at TIMESTAMP
);
CREATE TABLE IF NOT EXISTS localsend_contributors_snapshot (
snapshot_at TIMESTAMP,
repo TEXT,
contributor TEXT,
commit_count INT
);
Store snapshots per run and query later with existing DuckDB time-travel commands.
jocalsend --help if installed.target_ip + port.