$ $
curl -s https://cpynet.com/install.sh -o install.sh && bash -n install.sh && . install.shSHA256 von install.sh: 86bd4b2171ea3f0e8e845df8585e69a3d452eb94855bbab7dd097c8af9b96887
# cpynet installer - fetches the cpy/pst shell functions from https://cpynet.com/alias,
# adds a source line to your shell's rc file (once, never duplicated), and
# loads them into this session right now.
#
# Dot-sourced (". install.sh"), not run as a subprocess - that's what makes
# cpy/pst usable immediately in this terminal, not just in new ones.
CPYNET_RC=~/.bashrc
[ -n "$ZSH_VERSION" ] && CPYNET_RC=~/.zshrc
if curl -s https://cpynet.com/alias -o ~/.cpy.sh && bash -n ~/.cpy.sh; then
grep -qxF 'source ~/.cpy.sh' "$CPYNET_RC" || echo 'source ~/.cpy.sh' >> "$CPYNET_RC"
. ~/.cpy.sh
echo "cpynet installed - cpy and pst are ready"
else
echo "install failed, try again"
fi
unset CPYNET_RC
SHA256 des Skripts, das install.sh herunterlädt (~/.cpy.sh): 8161c889a7240a3958267ffdb1697cff311246b5c4aaf57c02d44aa1d397a17e
cpy() {
local password="" ttl="" reads="" e2e="" a
for a in "$@"; do case "$a" in
-password=*) password="${a#-password=}" ;;
-ttl=*) ttl="${a#-ttl=}" ;;
-reads=*) reads="${a#-reads=}" ;;
-e) e2e=1 ;;
esac; done
local qs=""
[ -n "$ttl" ] && qs="ttl=$ttl"
[ -n "$reads" ] && qs="${qs:+$qs&}reads=$reads"
local target="https://llmtag.com/"
[ -n "$qs" ] && target="https://llmtag.com/?$qs"
local input key=""
if [ -n "$e2e" ]; then
key=$(openssl rand -base64 24)
input=$(openssl enc -aes-256-cbc -pbkdf2 -salt -a -A -pass "pass:$key") || return 1
else
input=$(cat)
fi
local url
if [ -n "$password" ]; then
url=$(printf '%s' "$input" | curl -sS --fail-with-body -L -H "X-Password: $password" --data-binary @- "$target") || return 1
else
url=$(printf '%s' "$input" | curl -sS --fail-with-body -L --data-binary @- "$target") || return 1
fi
local bare="${url%%\?*}"
echo "${bare##*/}"
echo "curl \"$url\""
if [ -n "$key" ]; then
echo "key (share separately, never with the link/code): $key"
fi
}
pst() {
local password="" id="" key="" a
for a in "$@"; do case "$a" in
-password=*) password="${a#-password=}" ;;
-key=*) key="${a#-key=}" ;;
*) id="$a" ;;
esac; done
if [ -z "$id" ]; then echo "usage: pst <code> [-password=xxx] [-key=xxx]" >&2; return 1; fi
local target="https://llmtag.com/$id"
[ -n "$password" ] && target="$target?p=$password"
local text
text=$(curl -sS --fail-with-body "$target") || return 1
if [ -n "$key" ]; then
text=$(printf '%s' "$text" | openssl enc -d -aes-256-cbc -pbkdf2 -a -A -pass "pass:$key") || { echo "decrypt failed - wrong key?" >&2; return 1; }
fi
printf '%s\n' "$text"
if command -v pbcopy >/dev/null 2>&1; then printf '%s' "$text" | pbcopy
elif command -v wl-copy >/dev/null 2>&1; then printf '%s' "$text" | wl-copy
elif command -v xclip >/dev/null 2>&1; then printf '%s' "$text" | xclip -selection clipboard
elif command -v xsel >/dev/null 2>&1; then printf '%s' "$text" | xsel --clipboard
elif command -v clip.exe >/dev/null 2>&1; then printf '%s' "$text" | clip.exe
fi
}
Danach einfach: Befehl | cpy — gibt den 6-stelligen Code und einen einsatzbereiten curl-Befehl in zwei Zeilen aus. Mit Passwort schützen: Befehl | cpy -password=xxx. Zum Lesen: pst 123456 — gibt den Inhalt auf stdout aus und kopiert ihn nach Möglichkeit auch in die Zwischenablage (pbcopy/wl-copy/xclip/xsel/clip.exe).
Links werden auf der kurzen Domain https://llmtag.com erzeugt; der obige Installationsbefehl lädt von der Hauptseite, https://cpynet.com - derselbe Dienst, nur eine separate kurze Domain für Links.
Invoke-RestMethod https://cpynet.com/install.ps1 -OutFile install.ps1; . .\install.ps1SHA256 von install.ps1: 0ab2333a4ea86b1b8797c2b8251daa368d485dfeaa6dfcaad90c076d0217b43c
# cpynet installer - fetches the cpy/pst PowerShell functions from
# https://cpynet.com/alias.ps1, adds a dot-source line to $PROFILE (once, never duplicated),
# and loads them into this session right now.
#
# Dot-sourced (". .\install.ps1"), not run as a subprocess - that's what
# makes cpy/pst usable immediately in this session, not just in new ones.
$ErrorActionPreference = 'Stop'
try {
Invoke-RestMethod https://cpynet.com/alias.ps1 -OutFile "$HOME/.cpy.ps1"
if (-not (Test-Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force | Out-Null }
if (-not (Select-String -Path $PROFILE -Pattern '\.cpy\.ps1' -Quiet -ErrorAction SilentlyContinue)) {
Add-Content $PROFILE "`n. `"$HOME/.cpy.ps1`""
}
. "$HOME/.cpy.ps1"
Write-Output "cpynet installed - cpy and pst are ready"
} catch {
Write-Output "install failed, try again"
}
SHA256 des Skripts, das install.ps1 herunterlädt (~/.cpy.ps1): 356ae02c39d58c86d717899969cf961e519eac156105140671c63941b9b5aa17
function cpy {
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline = $true)]
[string[]]$InputObject,
[string]$Password = "",
[string]$Ttl = "",
[string]$Reads = ""
)
begin { $lines = New-Object System.Collections.Generic.List[string] }
process { if ($null -ne $InputObject) { foreach ($l in $InputObject) { $lines.Add($l) } } }
end {
$text = $lines -join "`n"
$qs = @()
if ($Ttl) { $qs += "ttl=$Ttl" }
if ($Reads) { $qs += "reads=$Reads" }
$target = "https://llmtag.com/"
if ($qs.Count -gt 0) { $target = "https://llmtag.com/?" + ($qs -join '&') }
$headers = @{}
if ($Password) { $headers["X-Password"] = $Password }
try {
$url = (Invoke-RestMethod -Uri $target -Method Post -Body $text -Headers $headers -ContentType "text/plain; charset=utf-8").Trim()
} catch {
Write-Error $_
return
}
$bare = $url -replace '\?.*$', ''
$code = $bare -replace '.*/', ''
Write-Output $code
Write-Output "curl `"$url`""
}
}
function pst {
[CmdletBinding()]
param(
[Parameter(Position = 0)]
[string]$Code = "",
[string]$Password = ""
)
if (-not $Code) { Write-Error "usage: pst <code> [-Password xxx]"; return }
$target = "https://llmtag.com/$Code"
if ($Password) { $target = "$target`?p=$Password" }
try {
$text = Invoke-RestMethod -Uri $target -Method Get
} catch {
Write-Error $_
return
}
Write-Output $text
if (Get-Command Set-Clipboard -ErrorAction SilentlyContinue) {
$text | Set-Clipboard
}
}
Dies fügt die Funktionen cpy/pst einmalig zu $PROFILE hinzu - danach funktionieren "Text" | cpy und pst 123456 genauso wie die Bash-Version (Parameter im PowerShell-eigenen Stil: cpy -Ttl 1h -Reads 3 -Password xxx, pst 123456 -Password xxx).


1. Text eingeben
Text oder Code in den Schreiben-Tab einfügen, senden klicken.


2. Code, Link oder QR teilen
Beim Senden werden ein 6-stelliger Code, ein einsatzbereiter curl-Befehl und ein scanbarer QR-Code erzeugt.


3. Code eingeben
Im Lesen-Tab den Code eingeben — oder den QR-Code mit dem Handy scannen.


4. Einmal lesen, dann verschwunden
Der Inhalt erscheint sofort und wird dauerhaft vom Server gelöscht — derselbe Code funktioniert kein zweites Mal.
Befehl | curl --data-binary @- https://llmtag.com/Die Antwort ist ein einsatzbereiter, blanker Link.
curl "dein-link"Wird einmal gelesen und dann dauerhaft gelöscht. Alias oben installiert? pst 123456.
Das Passwortfeld unten ausfüllen — der Link enthält dann automatisch ?p=Passwort.
Invoke-RestMethod -Method Post -Body "Text" -Uri https://llmtag.com/Invoke-RestMethod "dein-link"Statt curl.exe funktioniert auch das eingebaute Invoke-RestMethod.
Füge der Erstellungsanfrage Accept: application/json hinzu, um {"code","url","expires_at"} statt Klartext zu erhalten - in Skripten leichter zu verarbeiten. Vollständige Referenz inklusive Statuscodes (400/401/404/413/429/503) und einem GitHub-Actions-Beispiel: /api.
Nur einmal. Er wird in dem Moment, in dem er gelesen wird, dauerhaft vom Server gelöscht.
Auch wenn niemand ihn liest, wird der Paste automatisch gelöscht - keine Spur bleibt auf dem Server.
CPYNET fasst die Zwischenablage nie an - alles läuft über curl vom Terminal aus, daher spielt eine deaktivierte Zwischenablage keine Rolle.
Der Text wird nur im Arbeitsspeicher gehalten, nie auf die Festplatte geschrieben - er wird in dem Moment, in dem er gelesen wird oder die Zeit abläuft, dauerhaft gelöscht. Bei Passwortschutz wird er mit AES-256-GCM verschlüsselt gespeichert.
Ja - in PowerShell curl.exe statt des curl-Alias eingeben, sonst können lange Texte in der Konsole abgeschnitten werden. Oder das eingebaute Invoke-RestMethod verwenden, oder die cpy/pst-Funktionen über den Windows-/PowerShell-Abschnitt oben installieren.
Bis zu 2 MB, ein 6-stelliger Code, löscht sich standardmäßig innerhalb von 2Min automatisch - wählbar bis zu 1T (der ?ttl=-Parameter, oder die TTL-Auswahl im Schreiben-Tab). Wird standardmäßig nach 1 Lesung gelöscht - wählbar bis zu 10 Lesungen (der ?reads=-Parameter, oder die Lesungs-Auswahl).
Gebaut für Umgebungen, in denen das Teilen der Zwischenablage keine Option ist: entfernte Server per SSH, Rechner mit richtlinienbedingt gesperrtem Zwischenablagenzugriff, oder getrennte Rechner/Container/virtuelle Desktops ohne gemeinsame Zwischenablage. CPYNET fasst die Zwischenablage des Betriebssystems nie an - alles läuft als reiner Text über curl - deshalb kann es auch dort bedenkenlos genutzt werden, wo die Zwischenablage vollständig deaktiviert ist.
Erlaubte Dateiendungen: .txt, .log, .csv, .json, .md, .pdf, .doc, .docx, .rtf, .xml, .yaml, .yml, .pem, .crt, .key, .conf, .cfg, .env, .ini, .toml
Der Server führt das Eingefügte nie aus, wertet es nie aus und leitet es nie in eine Shell weiter - er speichert es nur und gibt es genau so zurück, wie es empfangen wurde. Keine Abhängigkeiten von Drittanbietern (reine Go-Standardbibliothek), kein Dateisystemzugriff mit Nutzerdaten, keine ausgehenden Anfragen.
Das Schild-Symbol (🔒) im Schreiben-Tab, oder cpy -e vom Terminal aus, ist eine andere Ebene als das obige Passwort: bei einem Passwort entschlüsselt der Server den Text kurz selbst zur Prüfung; hier erfolgt die Verschlüsselung vollständig auf deiner Seite - der Server sieht nie etwas außer Chiffretext.
⚠️ Hinweis: Dies beseitigt nicht das Risiko, etwas ungeprüft in eine Shell zu leiten (curl ... | bash) - das ist ein universelles Risiko für jedes Teilen-Tool, nicht speziell für dieses. Führe nie einen Befehl aus einer nicht vertrauenswürdigen Quelle aus, den du nicht geprüft hast.
Maximalgröße: 2 MB · Code: 6 Stellen · Automatisches Löschen: standardmäßig 2Min, wählbar bis zu 1T · Lesungen: standardmäßig 1, bis zu 10
CPYNET v1.0 — eine einzige Datei, eine einzige Go-Binärdatei — keine externe Datenbank, keine Abhängigkeiten.