Outline Apps: the Manager and Client behind a self-hosted Shadowsocks VPN
Outline Client and Manager. Outline Manager makes it easy to create your own VPN server. Outline Client lets you share access to your VPN with anyone in your network, giving them access to the free and open internet.
At a glance
- What is it?
- OutlineFoundation/outline-apps holds two programs: Outline Manager, which provisions and administers your own VPN server, and Outline Client, a cross-platform proxy that anyone can connect with. Here is what the repository actually documents, and where it stops.
- Who is it for?
- Adopt Outline Apps if you want to hand a non-technical person a single access key and have them online in minutes, and if you accept that the Manager is a desktop GUI rather than a server-side control plane. Do not adopt it if you need per-user revocation, traffic accounting or an audit trail, because the repository documents none of those.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Outline Apps actually is, and who it is built for
The repository is a monorepo with two products that share a name and little else. Outline Manager lives in `server_manager` and is described as a graphical user interface for managing Outline servers, available for Windows, macOS and Linux. Outline Client lives in `client` and is a cross-platform proxy client for Windows, macOS, iOS, Android and Linux. The README frames the audience plainly: it is for anyone who wants to create a VPN server and share access to the open internet with people who need it.
That framing matters when you evaluate the software. This is not a fleet-management tool for a platform team. The Manager is a desktop application, so the person who runs the server is also the person who installs a GUI on their own machine. The Client is the counterpart that a friend, a relative or a colleague installs and then forgets about. The two halves are designed around that asymmetry, and most of the design trade-offs follow from it.
Manager provisions, Client connects: the split that defines the project
The architecture visible in the repository is a division of labour rather than a service. The Manager is the administrative surface: it is where a server gets created and where access is handed out. The Client is the consumption surface: it takes what the Manager produced and routes traffic through it. The README states the Client is designed for use with a server deployed by the Manager, but is also fully compatible with any Shadowsocks server. That second clause is the more interesting one, because it means the Client is not locked to Outline infrastructure.
The dependency list supports the transport story. The Go module requires `github.com/eycorsican/go-tun2socks` and `github.com/songgao/water`, which are the pieces that move traffic between a TUN device and a SOCKS-style proxy on desktop platforms, plus `golang.getoutline.org/sdk` and `golang.getoutline.org/sdk/x` for the Outline-specific protocol work. On Linux, `github.com/Wifx/gonetworkmanager/v2` appears, which points at integration with NetworkManager rather than a fully self-contained tunnel. In practice that means the Client is doing system-level network plumbing, and platform behaviour will differ across the five supported operating systems. The repository does not claim otherwise.
Building Outline Apps from source with Node 22 and Go
The README points most users at getoutline.org for installers rather than at a build. For anyone who wants to work on the code, the root `package.json` sets the shape of the project: it is a private npm workspace covering `infrastructure`, `server_manager`, `client` and `client/capacitor`, with `engines.node` pinned to 22. The `reset` script chains `npm run clean` into `npm ci`, which is the closest thing to a documented from-scratch setup.
Install the workspace dependencies at the repository root:
npm ciThe repository also carries a `go.mod` at the top level, so Go tooling is expected alongside Node. The Go module declares `go 1.25.0` and pulls in the Task runner indirectly through `github.com/go-task/task/v3`, which matches the `Taskfile.yml` at the root. The npm scripts route through a custom action runner rather than calling tools directly:
npm run action:list
npm run action:help`npm run action:list` prints the available actions, and `npm run action:help` is an alias for it. A first real use of the Manager is not a command at all: according to the README, you install the Manager from the get-started page, create a server through the GUI, and then hand the resulting access to someone who installs the Client from the same site. The repository documents the two download pages and nothing about a headless or scripted equivalent.
Where the repository goes quiet
The most concrete limitation is visible from the release list rather than from any prose. The newest release recorded in the repository is v1.10.1, labelled Outline Client 1.10.1 for Windows and Linux, dated 2023-03-20. The two entries before it are v1.10.0-2 from 2023-03-03 and windows-v1.9.1 from 2023-01-09. The last push to the default branch was on 2026-09-20, so work is happening in the tree, but the release channel and the commit history are telling different stories. If you depend on a tagged desktop build, check the current state on getoutline.org before assuming the repository's release list reflects what you will download.
The second gap is operational. Nothing in the README describes user management, key rotation, revocation, traffic quotas or logging. The Manager is described as a GUI for managing servers, and the README does not enumerate what managing entails. If your requirement is to cut off a single user without disturbing the others, or to see who consumed how much bandwidth, the documentation is silent and you should treat that as unknown rather than assume it exists. Third, the Client is a proxy client, not a full VPN in the sense of a routed corporate network. It is built around Shadowsocks, and the README's compatibility claim is scoped to Shadowsocks servers. If your use case is site-to-site connectivity or identity-based access, this is the wrong tool and no amount of configuration will change that.
Outline Client versus a general-purpose VPN client
The obvious alternative is a general-purpose VPN client such as WireGuard or OpenVPN, and the difference is not protocol quality. It is the distribution model. WireGuard and OpenVPN clients assume the user has a configuration file produced by an administrator who understands the network: you generate keys, you write peer blocks, you decide about routing and DNS. Outline inverts that. The Manager produces an access key, and the Client consumes it, and the README's compatibility statement extends that key model to any Shadowsocks server you already run.
That inversion is the whole product. It also explains why the Client ships for iOS, Android, ChromeOS, Windows, macOS and Linux from a single repository: the value is reach, not depth. If you already have a WireGuard deployment and a support desk that can walk users through config files, Outline adds little for you. If your problem is that the people who need access cannot be asked to edit a config file, the access-key model is the reason to pick this over the alternatives, and the cost is that you inherit Shadowsocks as your transport.
Licence, maintenance and what an upgrade costs you
The repository is licensed under Apache-2.0, with the full text in the root `LICENSE` file. Apache-2.0 permits commercial and private use and includes an explicit patent grant, which is a meaningful difference from a bare MIT licence if your legal team cares about patent exposure. It also carries notice and attribution obligations when you redistribute. That is a description of the licence text, not legal advice; run your own review if you plan to ship a modified build.
On maintenance, the repository is not archived and the last push was on 2026-09-20. The commit activity is current. The release list, however, stops at v1.10.1 from 2023-03-20, so the honest position is that the source tree is moving while the tagged desktop release is old. Upgrade cost is dominated by the toolchain pins rather than by API churn: `engines.node` is 22, `go.mod` declares `go 1.25.0`, and the workspace pulls Storybook 8 and TypeScript 5.7. Those are recent major versions, which means a checkout from a year ago will not build without moving Node and Go forward first. Budget for a toolchain upgrade, not a code migration.
Editorial conclusion
Adopt Outline Apps if you want to hand a non-technical person a single access key and have them online in minutes, and if you accept that the Manager is a desktop GUI rather than a server-side control plane. Do not adopt it if you need per-user revocation, traffic accounting or an audit trail, because the repository documents none of those. Before committing, verify the current client build for your platform on getoutline.org, since the newest release listed in the repository is v1.10.1 from 2023-03-20, and confirm that a Shadowsocks endpoint is acceptable in your network.
Frequently asked questions
Is Outline VPN free to use?
The repository is licensed under Apache-2.0, which permits free private and commercial use subject to the licence's notice and attribution terms. The software itself is free; the server you run it against is not, since you still pay whoever hosts that machine.
What is the Outline app?
It is two applications in one repository: Outline Manager, a GUI for creating and managing your own VPN server on Windows, macOS and Linux, and Outline Client, a cross-platform proxy client for Windows, macOS, iOS, Android and Linux. The Client is designed for servers deployed by the Manager but the README states it is also compatible with any Shadowsocks server.
What is the best Outline app for getting connected?
The repository does not rank its own applications, so the answer depends on which side of the connection you are on. The Manager is the one to install if you are creating the server, and the Client is the one to install if someone has given you access.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/outlinefoundation-outline-apps)