Skip to content

Collaborate with friends in real-time on an AI-enabled desktop in the browser


Notifications You must be signed in to change notification settings


Repository files navigation

Website Github Twitter Linkedin


Aither let's you work on software development projects with others on a browser-based full Linux desktop experience powered by ChatGPT and Github Copilot. Sharing your desktop is as easy as running two terminal commands. Each user has equal access to the desktop.


Check out our image on dockerhub:

🚀 Usage

Try it out at

Running locally

All you need is docker installed: Docker: \

To run locally, clone the repository and run the following:

sudo docker build -t aither -f Dockerfile .

sudo docker run --name aither \
--privileged \
-e XDG_RUNTIME_DIR=/home/dev \
-e XDG_CACHE_HOME=/home/dev \
-e XDG_CONFIG_HOME=/home/dev/.cache \
-e WLR_BACKENDS=headless \
-e TEAM_NAME=enoki \
-e WORKSPACE_NAME=test-workspace \
-e USERS=2 \
-e --user=dev \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 6080:6080 \
-p 6081:6081 \
--rm  aither dbus-run-session -- sway

Now you can access the desktop at in your browser. For localhost, Aither uses a self-signed certificate, so you'll be prompted to connect anyway

Sharing your desktop

To share your desktop with someone, first retrieve your free authtoken from ngrok ( and run the following within the terminal of Aither:

ngrok config add-authtoken <authtoken>
ngrok http

You'll see an ngrok url generated. Share this with your friend and they will have access to your desktop at <ngrok_url>/vnc.html. You'll now be able to collaborate together in real-time!


Using ChatGPT

We enable ChatGPT in Aither using ShellGPT ( In order to use ShellGPT, all you need to do is retrieve your OPENAI_API_KEY from and pass it in as an environment variable in the docker run command.

You'll now be able to use ShellGPT in the terminal.

Mounting local folder to Aither

If you want to access a local folder within Aither, you can just add this line to the docker run command:
-v /path/to/host/volume:/home/dev/localfolder
Just change the path /path/to/host/volume to your local folder path