Piik

module
v1.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2026 License: MIT

README

Piik mascot

Piik

Share the good stuff.
Private screen sharing for you and up to 20 friends.

Website · Download · Gitee mirror · Use online · Documentation

Up to 20 viewers P2P-first media

English · 简体中文

Piik is a free, open-source screen sharing tool for private live streams with friends: games, movie nights, drawings and photos. Choose what to share and send an invitation. Your friends watch in their browsers. You can also self-host Piik on your own server.

A little room · Show / hide animation

A host with a gold crown switches between a gamepad, paintbrush, camera and remote as friends watch games, drawings, photos and a film.

Features · Get started · Self-hosting · Contributing

Features

  • Watch without installing. Friends join by invitation in a desktop or mobile browser.
  • Share from Piik App or an existing Piik site. Choose a screen, window, browser tab or camera; available sources and audio depend on the platform.
  • Direct connections first. Media travels between participants where possible (P2P). A self-hosted server can provide automatic media forwarding (SFU) as a fallback.
  • Rooms you control. Invitations, room codes and optional room passwords, for one host and up to 20 viewers.
  • Chat while watching. Send messages and reactions to friends, with optional on-screen chat.
  • Flexible viewing. Light and dark themes, playback controls, picture-in-picture and a connection topology view.
  • One program to host a site. Web UI, room management and optional media forwarding are packaged together.


Interface preview · Sample room with a generated game scene

Get started

To watch: open the invitation your friend sends you. Select Play if the picture does not start automatically.

To share: download Piik App to get started. To share without installing, you can also create a room in the online version.

Start here What you need to do
Use Piik online Share from a desktop browser, or choose Camera on a phone with browser camera support.
Download Piik App Extract and open the App, choose Public invite, then Open Piik to create a temporary room.
Host your own site Advanced: deploy Piik Server on a Linux x64 or ARM64 server with your own domain, then connect through Piik App or a browser.

Choose a screen, send an invitation, watch together.

  1. Select Start sharing, then choose the picture and audio to share.
  2. Select Copy invite link and send it to your friends. Keep the sharing tab open.

Turn on the Microphone for commentary; its settings let you choose the input device and adjust your voice volume.

Piik follows your system language: Chinese or English, with English as the fallback. Use 中 / EN / ✦ in the header to switch language or try the visual mode. The App offers a local room, a temporary public link, or a connection to your own site. Keep the App running while sharing through it.

Download a ZIP beginning with piik-app. The filename also identifies the platform:

Filename contains Platform
windows-amd64 Windows x64
darwin-arm64 Apple silicon; native capture requires macOS 13+
darwin-amd64 Intel Mac; native capture requires macOS 13+
linux-amd64 Linux x64
linux-arm64 Linux ARM64

Full setup guide → · Open online →

Browser capture requires HTTPS or localhost. Windows App and desktop browser sharing are the primary tested paths. Physical-device coverage for the macOS and Linux apps is still limited; test results and feedback are welcome. P2P-only modes, including the App's temporary public link and the online version, may not connect on restrictive networks.

Self-hosting

Piik Server is a standalone binary with the web interface built in. Download the Server package for Linux x64 (piik-<revision>-runtime.tar.gz) or ARM64 (piik-<revision>-linux-arm64-runtime.tar.gz), extract it, and run:

./piik-server

Open http://localhost:8787 to try it locally. For a public site, configure your domain, HTTPS reverse proxy and STUN address. Room data is stored in SQLite. For containers, use the Docker Compose setup.

Deploy your own site → · Configuration · Run from source

Contributing

Bug reports, translations, documentation improvements and pull requests are welcome. See ways to contribute or help translate Piik. Use the repository layout to find your way around.

License

Piik-owned code is MIT licensed. Dependencies retain their own licenses and notices.

Directories

Path Synopsis
cmd
piik-app command
Command piik-app is the self-contained Piik App: it opens a configured Piik Site, or runs the Local room authority in-process (--local / --link) together with the loopback capability service and the native media edge.
Command piik-app is the self-contained Piik App: it opens a configured Piik Site, or runs the Local room authority in-process (--local / --link) together with the loopback capability service and the native media edge.
piik-peer-gate command
piik-server command
Command piik-server is the Hosted Piik entry point: it loads the environment, serves the embedded Browser UI together with the signaling and room API, and stops on SIGINT or SIGTERM.
Command piik-server is the Hosted Piik entry point: it loads the environment, serves the embedded Browser UI together with the signaling and room API, and stops on SIGINT or SIGTERM.
internal
app
diagnostics
Package diagnostics persists bounded structured logs and exports local runtime diagnostics.
Package diagnostics persists bounded structured logs and exports local runtime diagnostics.
media/encoded
Package encoded contains shared encoded-video primitives, independent of room authority, capture implementation and PeerConnection lifecycle.
Package encoded contains shared encoded-video primitives, independent of room authority, capture implementation and PeerConnection lifecycle.
media/forwarding
Package forwarding adapts mature RTP forwarding components without owning room authority, capture or a second congestion controller.
Package forwarding adapts mature RTP forwarding components without owning room authority, capture or a second congestion controller.
server/app
Package app composes the shared HTTP service, site access, embedded assets, media listeners, and startup/shutdown lifecycle for Hosted Server and App.
Package app composes the shared HTTP service, site access, embedded assets, media listeners, and startup/shutdown lifecycle for Hosted Server and App.
server/config
Package config owns Hosted and App Local configuration and ICE discovery.
Package config owns Hosted and App Local configuration and ICE discovery.
server/ordered
Package ordered provides an insertion-ordered map with live iteration.
Package ordered provides an insertion-ordered map with live iteration.
server/protocol
Package protocol is the Go owner of the Piik wire contract.
Package protocol is the Go owner of the Piik wire contract.
server/room
Package room owns room codes, Host/Viewer credentials, participant membership and persistent room authority.
Package room owns room codes, Host/Viewer credentials, participant membership and persistent room authority.
server/route
Package route owns synchronous decisions over one room's media route graph, its single in-flight route operation, the quality/opportunity ledgers and the privacy-safe diagnostic snapshot.
Package route owns synchronous decisions over one room's media route graph, its single in-flight route operation, the quality/opportunity ledgers and the privacy-safe diagnostic snapshot.
server/sfu
Package sfu owns admitted physical publication and subscription resources.
Package sfu owns admitted physical publication and subscription resources.
server/sfu/sfutest
Package sfutest provides deterministic physical-media effects for router tests.
Package sfutest provides deterministic physical-media effects for router tests.
server/signal
Package signal owns authenticated signaling and room/media effects.
Package signal owns authenticated signaling and room/media effects.
server/stun
Package stun owns the UDP listeners for in-process STUN discovery.
Package stun owns the UDP listeners for in-process STUN discovery.
server/webassets
Package webassets embeds the built Browser UI so a single binary can serve it.
Package webassets embeds the built Browser UI so a single binary can serve it.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL