# Mirage

Mirage secure mesh client, daemon, GUI, and managed edge runtime.

## Overview

This repository is the new Mirage client mainline. It contains the Mirage CLI,
the `miraged` daemon, the Windows GUI, the Linux Qt client, and the managed
DERP/Navi runtime used by MirageServer Funnel and control-plane extensions.

The codebase is still intentionally aligned to upstream Tailscale data-plane
contracts so that MirageServer can remain compatible with official Tailscale
clients and this repository can continue to rebase forward on upstream
`tailscale`.

Current repository roles:

* this repo: Mirage client mainline, GUI, daemon, managed DERP/Navi
* `MirageServer`: Mirage control plane and product backend
* `tailscale-android`: future Mirage Android adaptation
* upstream `tailscale`: protocol and client behavior baseline

The Go module path remains `tailscale.com` on purpose. That is a compatibility
decision to keep upstream rebases and import churn manageable.

## Using

Primary Mirage-branded entrypoints in this repo are:

* `mirage`: CLI on Linux and other non-Windows platforms
* `miraged`: daemon / background service
* `MirageGUI.exe`: Windows GUI wrapper
* `derper`: managed DERP/Navi edge runtime when started with Mirage options

## Building

We track the upstream Go requirement from Tailscale. Build the Mirage-branded
entrypoints directly from this repository:

```sh
go install tailscale.com/cmd/mirage
go install tailscale.com/cmd/miraged
```

If you need upstream-compatible binaries for comparison, the upstream entry
points still exist in this tree:

```sh
go install tailscale.com/cmd/tailscale
go install tailscale.com/cmd/tailscaled
```

For Debian packaging of the Linux Qt client, use:

```sh
go run ./cmd/mirage-qt/mkdeb
```

## Legal

WireGuard is a registered trademark of Jason A. Donenfeld.
