awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
mistweaverco avatar

mistweaverco/bananas

0
View on GitHub↗
6,238 stars·271 forks·Svelte·MIT·13 viewsgetbananas.net↗

Bananas

Bananas is a peer-to-peer screen sharing application that uses WebRTC to establish direct browser-to-browser connections, enabling real-time screen sharing without routing data through a central server. The application assigns ephemeral identity tokens tied only to session IDs, eliminating the need for user accounts or persistent login systems, and generates unique alphanumeric session URLs for one-click joining.

The application distinguishes itself through collaborative multi-cursor overlays, where each participant's cursor is rendered as an HTML5 Canvas layer composited over the shared screen stream, and remote users can highlight areas with visible ping markers. It supports cross-platform screen sharing across Mac, Windows, and Linux, allows toggling participant cursor visibility during live sessions, and leverages the browser's getDisplayMedia API to enumerate multiple displays for the host to select which to broadcast.

The application manages session lifecycle through a lightweight WebSocket signaling server that exchanges session metadata and ICE candidates before peer-to-peer links form, and serialises mouse coordinates and ping events as JSON messages over the data channel for real-time remote rendering. It is available for installation on macOS via a single Homebrew cask command.

Features

  • Screen Sharing Channels - Establishes direct device-to-device connections for screen sharing without central server routing.
  • Screen Sharing - Broadcasts a screen from one device to others running different operating systems with cursor visibility toggling.
  • Session Initiation - Begins a new screen sharing session and generates a unique link to share with participants.
  • Signaling Servers - Uses a lightweight WebSocket server to exchange session metadata and ICE candidates before peer-to-peer links form.
  • Screen Sharing Channels - Shares a computer screen directly between devices without routing data through a central server.
  • Peer Connectivity - Establishes direct browser-to-browser data channels for low-latency screen sharing without central server routing.
  • Session URL Token Generators - Generates unique alphanumeric tokens that encode connection parameters for one-click session joining via URL.
  • Canvas Overlays - Renders remote cursors and ping markers as transparent HTML5 Canvas overlays composited over the shared screen stream.
  • Cursor Coordinate Broadcasts - Serialises mouse coordinates as JSON messages over a data channel for real-time remote cursor rendering.
  • Collaborative Cursor Tracking - Displays each participant's cursor on a shared screen so multiple users can point to areas simultaneously during a live session.
  • Connection URL Generation - Generates a unique URL that grants instant access to a screen share without requiring an account.
  • Display Selection - Lets the host choose which display to broadcast when multiple screens are available.
  • Session Joining - Connects to an existing screen sharing session by clicking a link or entering a connection string.
  • Visual Ping Markers - Lets remote participants highlight areas on the shared screen with visible ping markers.
  • Session Identity Assignment - Assigns ephemeral participant IDs tied only to the session token, avoiding any persistent user profile or login system.
  • Display Source Selectors - Leverages the browser's getDisplayMedia API to list available displays and let the host pick which to broadcast.

Star history

Star history chart for mistweaverco/bananasStar history chart for mistweaverco/bananas

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does mistweaverco/bananas do?

Bananas is a peer-to-peer screen sharing application that uses WebRTC to establish direct browser-to-browser connections, enabling real-time screen sharing without routing data through a central server. The application assigns ephemeral identity tokens tied only to session IDs, eliminating the need for user accounts or persistent login systems, and generates unique alphanumeric session URLs for one-click joining.

What are the main features of mistweaverco/bananas?

The main features of mistweaverco/bananas are: Screen Sharing Channels, Screen Sharing, Session Initiation, Signaling Servers, Peer Connectivity, Session URL Token Generators, Canvas Overlays, Cursor Coordinate Broadcasts.

What are some open-source alternatives to mistweaverco/bananas?

Open-source alternatives to mistweaverco/bananas include: ianramzy/decentralized-video-chat — This project is a browser-based video conferencing platform that facilitates direct, peer-to-peer communication… peers/peerjs — PeerJS is a real-time communication library and framework designed to establish direct peer-to-peer data and media… steveseguin/vdo.ninja — VDO.Ninja is a low-latency peer-to-peer media routing service and video streaming platform designed to integrate… matrixseven/file-transfer-go — This is a secure peer-to-peer file sharing tool that transfers data directly between devices using end-to-end… peers/peerjs-server — PeerJS Server is a WebRTC signaling server and connection broker that coordinates handshakes between clients to… starrtc/starrtc-android-demo — This project is a reference implementation and framework for building real-time communication systems. It provides an…

Open-source alternatives to Bananas

Similar open-source projects, ranked by how many features they share with Bananas.
  • ianramzy/decentralized-video-chatianramzy avatar

    ianramzy/decentralized-video-chat

    3,313View on GitHub↗

    This project is a browser-based video conferencing platform that facilitates direct, peer-to-peer communication between participants. By utilizing browser-native media capture and direct network connections, it enables real-time audio, video, and screen sharing without relying on central media relay servers. The platform distinguishes itself through its focus on ephemeral, private communication. It generates unique, short-lived session identifiers for virtual rooms that exist only in memory, ensuring that no persistent user accounts or long-term storage are required. To maintain connection st

    javascriptnodejspeer-to-peer
    View on GitHub↗3,313
  • peers/peerjspeers avatar

    peers/peerjs

    13,359View on GitHub↗

    PeerJS is a real-time communication library and framework designed to establish direct peer-to-peer data and media connections between browsers. It provides a simplified wrapper for managing the lifecycles of WebRTC connectivity, enabling the exchange of audio, video, and data without a central relay. The project includes a coordination server that handles signaling management by mapping unique user identities to network connection details. This server facilitates the discovery of remote peers and the exchange of metadata required to perform the initial connection handshake. The framework su

    TypeScriptbrowserdataconnectionjavascript
    View on GitHub↗13,359
  • steveseguin/vdo.ninjasteveseguin avatar

    steveseguin/vdo.ninja

    3,910View on GitHub↗

    VDO.Ninja is a low-latency peer-to-peer media routing service and video streaming platform designed to integrate remote audio and video feeds into professional production workflows. It functions as a WebRTC broadcast integration tool and studio controller, allowing for the direct transmission of high-definition media between publishers and viewers with minimal delay. The platform distinguishes itself through extensive protocol bridging, converting between WebRTC, WHIP, WHEP, SRT, and RTMP to ensure compatibility across diverse network environments and professional studio software. It includes

    JavaScriptlivelow-latencyninja
    View on GitHub↗3,910
  • matrixseven/file-transfer-goMatrixSeven avatar

    MatrixSeven/file-transfer-go

    4,660View on GitHub↗

    This is a secure peer-to-peer file sharing tool that transfers data directly between devices using end-to-end encryption and ephemeral session codes. Files are split into fixed-size chunks with individual integrity hashes, allowing interrupted transfers to resume from the last verified chunk without starting over. All transferred data stays solely in RAM during transit, never written to persistent storage on either peer or any intermediate relay. Beyond file transfer, the tool also provides real-time instant messaging and live screen sharing over the same peer-to-peer connections. Each sessio

    TypeScript
    View on GitHub↗4,660
See all 30 alternatives to Bananas→