neko is a free, open source media & streaming project written in Go and released under Apache-2.0. It has 22,315 GitHub stars, 1,628 forks and 151 open issues, and was last pushed 7 days ago. On this registry it ranks #4 of 27 tracked projects in Media & Streaming, with 5 head-to-head comparisons available. It gained 12 stars over the last 3 tracked days.

What is neko?

Neko is a self-hosted virtual browser that runs inside a Docker container and streams its desktop to several people at once over WebRTC, built for developers testing web applications, privacy-conscious users, and teams who want to browse, watch or present together in one shared session.

What it is

Neko runs a fully functional browser inside a virtual environment and streams that desktop over WebRTC, so the browser never executes on the viewer's machine. It sits in the self-hosted Docker ecosystem: written in Go with a Vue front end, licensed under Apache-2.0, and documented at https://neko.m1k1o.net/. It began as a fork of nurdism/neko after that upstream repository was archived when its author ran out of time, and its motivation traces to the shutdown of rabb.it — the original author wanted to watch video with friends, found the existing clones incomplete because none of them shipped a virtual browser, and built the missing piece.

It replaces the defunct rabb.it and the paid hosted watch-party services named in its own documentation, giggl.app and hyperbeam. Rather than renting a synchronized viewing room, an operator runs the container on hardware they control and invites participants into it. Because the streamed desktop is a real Linux environment and not a browser tab, the same deployment covers cases a plain screen-share does not: several users drive one session at the same time, and what they see stays synchronized in real time.

Key capabilities

  • Streams a desktop from inside a Docker container to multiple simultaneous users over WebRTC, with real-time synchronization and interactivity.
  • Supports collaborative browser browsing with chat and emotes, for watch parties and interactive presentations where other participants control the screen.
  • Is not limited to a browser: it runs anything that runs on Linux, for example VLC, or a full desktop environment such as XFCE or KDE.
  • Is not limited to a container: it can be installed on the host, connected to the host's X server, and used to control a whole VM.
  • Is not architecturally tied to the X server, since anything that can be controlled and periodically scraped for images could serve as the source.
  • Lists RDP and VNC support, with Neko acting purely as a WebRTC relay server, as future work rather than a shipped feature.
  • Written in Go with a Vue front end; Apache-2.0; 22,312 stars, 1,626 forks and 151 open issues.

Who uses it and how

  • Developers testing web applications inside a secure and isolated environment instead of on their own workstation.
  • Privacy-conscious users who want to reach the internet from a browser they do not own, from anywhere.
  • Teams and organizations sharing access to one browser without maintaining separate configurations or settings for each participant.
  • Groups hosting watch parties or interactive presentations, inviting guests into one virtual environment where the screen is shared and controlled in real time.
  • Individuals reaching the same virtual environment from multiple devices.

Getting started

Neko runs as a Docker container, and https://neko.m1k1o.net/ is the starting point for deployment. The README excerpt available here names no package, image tag or compose file, so the homepage carries the exact commands.

How it compares

The README positions Neko as an open source alternative to giggl.app and hyperbeam, both of which are hosted watch-party services. Those products are paid, run on the vendor's infrastructure, and keep the session and its data on someone else's servers, while Neko is Apache-2.0 licensed, self-hosted, and keeps the browser session on hardware the operator controls. The trade is operational: the paid services carry the hosting and networking burden, and the Neko operator carries it instead, in exchange for no vendor fee and full control of the environment.

When to use it — and when not to

A self-hoster must run the Docker container itself, plus whatever desktop environment, X server or VM the deployment needs, and must handle the networking that WebRTC requires to reach participants. Anyone unwilling to operate that stack, or who simply wants a shared video room with no infrastructure, should pick a hosted service instead. The honest weakness is documentation: the README excerpt available here is prose about use cases and history, with no install command, image name or compose file, and the repository carries 151 open issues, so expect to read the homepage alongside the source rather than relying on a single quickstart.

project readme (upstream, from github) — read inline

release license pulls issues issues Chat on discord Featured|HelloGitHub build

n.eko

Welcome to Neko, a self-hosted virtual browser that runs in Docker and uses WebRTC technology. Neko is a powerful tool that allows you to run a fully-functional browser in a virtual environment, giving you the ability to access the internet securely and privately from anywhere. With Neko, you can browse the web, run applications, and perform other tasks just as you would on a regular browser, all within a secure and isolated environment. Whether you are a developer looking to test web applications, a privacy-conscious user seeking a secure browsing experience, or simply someone who wants to take advantage of the convenience and flexibility of a virtual browser, Neko is the perfect solution.

In addition to its security and privacy features, Neko offers the ability for multiple users to access it simultaneously. This makes it an ideal solution for teams or organizations that need to share access to a browser, as well as for individuals who want to use multiple devices to access the same virtual environment. With Neko, you can easily and securely share access to a browser with others, without having to worry about maintaining separate configurations or settings. Whether you need to collaborate on a project, access shared resources, or simply want to share access to a browser with friends or family, Neko makes it easy to do so.

Neko is also a great tool for hosting watch parties and interactive presentations. With its virtual browser capabilities, Neko allows you to host watch parties and presentations that are accessible from anywhere, without the need for in-person gatherings. This makes it easy to stay connected with friends and colleagues, even when you are unable to meet in person. With Neko, you can easily host a watch party or give an interactive presentation, whether it's for leisure or work. Simply invite your guests to join the virtual environment, and you can share the screen and interact with them in real-time.

About

This app uses WebRTC to stream a desktop inside of a docker container, original author made this because rabb.it went under and his internet could not handle streaming and discord kept crashing when his friend attempted to. He just wanted to watch anime with his friends ლ(ಠ益ಠლ) so he started digging throughout the internet and found a few kinda clones, but none of them had the virtual browser, then he found Turtus and he was able to figure out the rest.

Then I found this project and started to dig into it. I really liked the idea of having collaborative browser browsing together with multiple people, so I created a fork. Initially, I wanted to merge my changes to the upstream repository, but the original author did not have time for this project anymore and it got eventually archived.

Use-cases and comparison

Neko started as a virtual browser that is streamed using WebRTC to multiple users.

  • It is not only limited to a browser; it can run anything that runs on linux (e.g. VLC). Browser only happens to be the most popular and widely used use-case.
  • In fact, it is not limited to a single program either; you can install a full desktop environment (e.g. XFCE, KDE).
  • Speaking of limits, it does not need to run in a container; you could install neko on your host, connect to your X server and control your whole VM.
  • Theoretically it is not limited to only X server, anything that can be controlled and scraped periodically for images could be used instead.
    • Like implementing RDP or VNC protocol, where neko would only act as WebRTC relay server. This is currently only future.

Primary use case is connecting with multiple people, leveraging real time synchronization and interactivity:

  • Watch party - watching video content together with multiple people and reacting to it (chat, emotes) - open source alternative to giggl.app or hyperbeam.
  • Interactive presentation - not only screen sharing, but others can control the screen.
  • Collaborative tool - brainstorming ideas, cobrowsing, code debugging together.
  • Support/Teaching - interactively guiding people in controlled environment.
  • Embed anything - embed virtual browser in your web app - open source alternative to hyperbeam API.
    • open any third-party website or application, synchronize audio and video flawlessly among multiple participants.
    • request rooms using API with neko-rooms.
  • Neko inside VR Chat - watch remote browser together with friends in VR.

Other use cases that benefit from single-user:

  • Personal workspace - streaming containerized apps and desktops to end-users - similar to kasm.
  • Persistent browser - own browser with persistent cookies available anywhere - similar to mightyapp.
    • no state is left on the host browser after terminating the connection.
    • sensitive data like cookies are not transferred - only video is shared.
  • Throwaway browser - a better solution for planning secret parties and buying birthday gifts off the internet.
    • use Tor Browser and VPN for additional anonymity.
    • mitigates risk of OS fingerprinting and browser vulnerabilities by running in container.
  • Session broadcasting - broadcast room content using RTMP (to e.g. twitch or youtube...).
  • Session recording - broadcast RTMP can be saved to a file using e.g. nginx-rtmp
    • have clean environment when recording tutorials.
    • no need to hide bookmarks or use incognito mode.
  • Jump host - access your internal applications securely without the need for VPN.
  • Automated browser - you can install playwright or puppeteer and automate tasks while being able to actively intercept them.

Compared to clientless remote desktop gateway (e.g. Apache Guacamole or websockify with noVNC), installed with remote desktop server along with desired program (e.g. linuxserver/firefox) provides neko additionally:

  • Smooth video because it uses WebRTC and not images sent over WebSockets.
  • Built in audio support, what is not part of Apache Guacamole or noVNC.
  • Multi-participant control, what is not natively supported by Apache Guacamole or noVNC.

Supported browsers

readme truncated — read the full docs on github

Frequently asked questions

Is neko free to use?

neko is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does neko do?

A self hosted virtual browser that runs in docker and uses WebRTC.

What is neko written in?

neko is primarily written in Go. Its source is publicly available at https://github.com/m1k1o/neko, and it has 22,315 GitHub stars.