# jedisct1/piknik

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jedisct1-piknik).**

2,510 stars · 103 forks · Go · bsd-2-clause

## Links

- GitHub: https://github.com/jedisct1/piknik
- awesome-repositories: https://awesome-repositories.com/repository/jedisct1-piknik.md

## Topics

`clipboard` `copy` `crypto` `paste` `security` `security-protocol` `staging-server` `transit`

## Description

Piknik is an encrypted clipboard relay and multiplexer that coordinates the sharing of text, binary data, and shell content across multiple network hosts. It utilizes a centralized relay architecture to manage secure client connections, providing an end-to-end encrypted system for synchronizing session state and data streams.

The project distinguishes itself through the use of multi-stage key derivation and API key access control to secure remote shell access. It employs end-to-end encryption and digital signatures to protect relayed content, ensuring that data is encrypted at the source before transmission to the hub.

The system covers cross-host clipboard sharing, including the transfer of compressed directory archives and real-time data streaming. It further provides shell content management for storing and retrieving terminal input, as well as system integration for detecting interactive terminal attachments and inspecting clipboard status via system signals.

## Tags

### Development Tools & Productivity

- [Encrypted Clipboard Relays](https://awesome-repositories.com/f/development-tools-productivity/clipboard-management/clipboard-managers/encrypted-clipboard-storage/encrypted-clipboard-relays.md) — Acts as a secure server and client system for sharing encrypted text and binary data across multiple hosts.
- [Clipboard Copying](https://awesome-repositories.com/f/development-tools-productivity/clipboard-management/clipboard-copying.md) — Sends strings or file contents to a shared clipboard for use in other network sessions. ([source](https://github.com/jedisct1/piknik/blob/master/zsh.aliases))
- [Network Buffer Transfers](https://awesome-repositories.com/f/development-tools-productivity/clipboard-management/clipboard-copying/network-buffer-transfers.md) — Copies text or binary data from standard input to a shared network buffer for retrieval on another host. ([source](https://github.com/jedisct1/piknik#readme))
- [Remote Clipboard Pasting](https://awesome-repositories.com/f/development-tools-productivity/clipboard-management/clipboard-managers/remote-clipboard-pasting.md) — Retrieves previously stored content from the shared clipboard and inserts it into the current shell. ([source](https://github.com/jedisct1/piknik/blob/master/zsh.aliases))
- [Remote Clipboard Sharing](https://awesome-repositories.com/f/development-tools-productivity/clipboard-synchronization/remote-clipboard-sharing.md) — Copies and pastes text or binary data between different computers via an encrypted central relay server.
- [Session Synchronization](https://awesome-repositories.com/f/development-tools-productivity/remote-session-terminals/session-synchronization.md) — Coordinates and shares terminal content and state across multiple active sessions on a network.
- [Terminal Multiplexer Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/terminal-multiplexer-orchestrators.md) — Implements a server listener that manages client connections and coordinates the sharing of shell content and streams. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))

### Networking & Communication

- [Centralized Relay Architectures](https://awesome-repositories.com/f/networking-communication/centralized-relay-architectures.md) — Utilizes a centralized relay architecture to coordinate real-time data streams and session state across multiple network hosts.
- [Real-Time Data Streams](https://awesome-repositories.com/f/networking-communication/real-time-data-streams.md) — Pushes data from standard input to all connected listeners in real-time to synchronize state across active sessions. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))
- [Encrypted Buffer Synchronization](https://awesome-repositories.com/f/networking-communication/session-state-management/synchronization-session-state/encrypted-buffer-synchronization.md) — Provides asynchronous retrieval of encrypted session content stored with signatures and timestamps on a remote server.
- [Shell Data Streaming](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/real-time-data-synchronization/shell-data-streaming.md) — Enables pushing live data from standard input to multiple connected listeners to synchronize state across active sessions.
- [Concurrent Remote Session Managers](https://awesome-repositories.com/f/networking-communication/concurrent-remote-session-managers.md) — Coordinates the sharing and control of multiple simultaneous shell sessions across a network. ([source](https://github.com/jedisct1/piknik/blob/master/server.go))
- [Standard Stream Piping](https://awesome-repositories.com/f/networking-communication/standard-stream-piping.md) — Routes data from standard input to network sockets and from sockets to standard output for shell integration.

### Business & Productivity Software

- [Clipboard Synchronization](https://awesome-repositories.com/f/business-productivity-software/clipboard-synchronization.md) — Sends and retrieves text or binary data between multiple hosts using an encrypted central relay server. ([source](https://github.com/jedisct1/piknik/blob/master/README.md))

### DevOps & Infrastructure

- [Secure File Transfer](https://awesome-repositories.com/f/devops-infrastructure/secure-file-transfer.md) — Encrypts and signs all relayed content to ensure data integrity and prevent unauthorized access. ([source](https://github.com/jedisct1/piknik/blob/master/README.md))
- [Standard Output Stream Reception](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/remote-workspace-command-execution/ssh-based-remote-execution/remote-data-streaming/standard-output-stream-reception.md) — Captures a data stream from a remote source and directs it to the standard output. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))

### Security & Cryptography

- [API Access Restrictions](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions/api-access-restrictions.md) — Enforces API key validation to restrict unauthorized client requests. ([source](https://github.com/jedisct1/piknik/blob/master/README.md))
- [Encrypted Session Management](https://awesome-repositories.com/f/security-cryptography/encrypted-session-management.md) — Implements secure access to shared network buffers and data streams using API keys and password-derived encryption.
- [Key Derivation Functions](https://awesome-repositories.com/f/security-cryptography/password-management/key-derivation-functions.md) — Derives secure communication keys from passwords using a series of hashing steps to protect session access.
- [End-to-End Encryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption.md) — Secures all relayed content by encrypting and signing data at the source before transmission to the hub.
- [Stream Encryption and Decryption](https://awesome-repositories.com/f/security-cryptography/privacy-data-protection/data-encryption/end-to-end-encryption/media-encryption/stream-encryption-and-decryption.md) — Sends a live data stream from one host to multiple receivers simultaneously using end-to-end encryption. ([source](https://github.com/jedisct1/piknik#readme))
- [Password-Derived Key Generation](https://awesome-repositories.com/f/security-cryptography/public-key-authentication/public-key-retrieval/public-key-derivations/password-derived-key-generation.md) — Derives secure communication keys from passwords using a multi-stage hashing process. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))
- [Session Authentication](https://awesome-repositories.com/f/security-cryptography/session-authentication.md) — Verifies user identity and derives secure keys through multi-stage hashing to protect remote shell access. ([source](https://github.com/jedisct1/piknik/blob/master/auth.go))
- [Session Synchronization](https://awesome-repositories.com/f/security-cryptography/session-synchronization.md) — Coordinates the movement and retrieval of session data between connected clients through a centralized hub. ([source](https://github.com/jedisct1/piknik/blob/master/server.go))
- [Static API Key Validation](https://awesome-repositories.com/f/security-cryptography/identity-access-management/access-control/data-resource-permissions/api-key-scopes/static-api-key-validation.md) — Implements server-side resource access control through the validation of static API keys provided during client handshakes.
- [Secure Terminal Content Stores](https://awesome-repositories.com/f/security-cryptography/secure-terminal-content-stores.md) — Provides a remote storage system for encrypted shell content featuring digital signatures and timestamps.

### Content Management & Publishing

- [Clipboard Archive Transfers](https://awesome-repositories.com/f/content-management-publishing/directory-archiving/clipboard-archive-transfers.md) — Packages directories into compressed archives and sends them to the shared clipboard for remote extraction. ([source](https://github.com/jedisct1/piknik/blob/master/zsh.aliases))

### Data & Databases

- [Secure Session Buffers](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/session-storage-synchronization/session-storage/secure-session-buffers.md) — Saves encrypted session content with signatures and timestamps to ensure integrity during retrieval. ([source](https://github.com/jedisct1/piknik/blob/master/server.go))

### Operating Systems & Systems Programming

- [Remote Shell Content Retrieval](https://awesome-repositories.com/f/operating-systems-systems-programming/remote-shell-content-retrieval.md) — Fetches stored content from a remote server and outputs the result directly to the terminal. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))
- [Remote Shell Content Storage](https://awesome-repositories.com/f/operating-systems-systems-programming/remote-shell-content-storage.md) — Saves input content to a remote store for later retrieval by other active sessions. ([source](https://github.com/jedisct1/piknik/blob/master/piknik.go))
