What is 127.0.0.1:8766? It's Outlier, running on your Mac
- 127.0.0.1:8766 is Outlier. When you open the app, it starts a small program called outlier-cli, and that program listens on port 8766. The app's window talks to it there.
- 127.0.0.1 means this Mac. Other computers, phones and the internet cannot connect to it. To check, run
lsof -nP -iTCP:8766 -sTCP:LISTENin Terminal. If it lists outlier-c on 127.0.0.1:8766, that is Outlier. - Paste the address into a browser and you get a short message saying the engine only answers the Outlier app. That is the engine working, not an error to fix.
- Quit Outlier and the engine goes with it. If the app crashes, the engine checks every 5 seconds whether the app is still there and exits when it is not.
Checked on 2026-10-12 on a Mac Studio with an M1 Ultra, macOS 26.3.1, running Outlier 1.11.916. Every command below is real output from that Mac. The details are in the receipts at the bottom.
Outlier Pro: $249 once · or 4 × $62.25 · founders price $124.50 while seats last
Free to start (Nano and Lite). macOS 26+, Apple silicon. Refund window: 30 days, no questions asked.
I make Outlier, so this is my address. If you found 127.0.0.1:8766 in a firewall log, a browser history, a Terminal listing or an error message, and Outlier is installed on that Mac, it is almost certainly ours. This page shows you how to be sure instead of taking my word for it, and what stops anyone else from using it.
What it is
Outlier is two programs working together. One is the window you type in. The other is the engine, a program called outlier-cli. It loads the model, runs it on your Apple Silicon chip and writes the answer. The window hands your message to the engine over a local web connection, and the engine streams the answer back.
127.0.0.1 is the address a computer uses to talk to itself. 8766 is the port, a numbered door on that address, and the engine listens at that door. Because the address is 127.0.0.1, the connection starts and ends on your Mac. It never goes out over Wi-Fi or Ethernet.
How to check that it is Outlier
A port number does not belong to one program. Any app can take a free port, so ask the Mac who has this one. Open Terminal and run:
$ lsof -nP -iTCP:8766 -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
outlier-c 9949 you 20u IPv4 0xdae7a285267902b0 0t0 TCP 127.0.0.1:8766 (LISTEN)
Read the first and last columns. outlier-c is outlier-cli, cut to nine characters by lsof. 127.0.0.1:8766 (LISTEN) means it accepts connections only from this Mac. A program open to your whole network would show *:8766 instead.
To see where that program lives, give ps its process number (the second column, 9949 here):
$ ps -p 9949 -o comm=
/Applications/Outlier.app/Contents/Resources/outlier-cli/outlier-cli
That path is inside Outlier.app. If lsof names a different program, or the path points somewhere else, the port is not Outlier's on your Mac, and nothing on this page describes it.
If lsof prints nothing, nobody is listening, which usually means Outlier is not running right now. To check that an empty answer is not simply a broken command, ask about a port nothing uses:
$ lsof -nP -iTCP:8999 -sTCP:LISTEN; echo $?
1
Nothing printed, and the exit status is 1. So an empty result means no listener.
What you see if you open it in a browser
Paste http://127.0.0.1:8766/ into Safari and you get a line of text, not a website. Here is the same request from curl, with the date and server headers left out:
$ curl -i http://127.0.0.1:8766/
HTTP/1.1 401 Unauthorized
content-type: application/json
content-length: 174
{"detail":"This Outlier engine only answers the Outlier app on this Mac. A program on this Mac can send the key in ~/.outlier/local_api_token as the X-Outlier-Token header."}
401 means unauthorized. The engine is telling a stranger that it only talks to the Outlier app. The root address has no page to show.
One path answers without the key, /health, so the app (and anyone troubleshooting) can see that the engine is up. These are three fields from its reply:
$ curl -s http://127.0.0.1:8766/health | python3 -c 'import json,sys; d=json.load(sys.stdin); print({k:d[k] for k in ("status","local_key","version")})'
{'status': 'ok', 'local_key': 'required', 'version': '1.11.916'}
local_key: required means this engine refuses everything else unless the request carries the key. More on that below.
What stops other people and other websites from using it
Four things sit between the engine and everyone else. I tested each one against the running engine on my Mac.
- It listens on this Mac only. The lsof line above says 127.0.0.1, and netstat agrees. When I connected to the Mac's own network address on that port, the connection was refused. The same request to 127.0.0.1 got a reply.
- It only answers requests addressed to this Mac. A web page can trick a browser into treating the page's own name as 127.0.0.1, a trick called DNS rebinding. Those requests still carry the page's name in the Host header. The engine answers only when the Host is 127.0.0.1, localhost, [::1] or the Outlier window's own local name, and sends back a 421 for anything else.
- Other websites get no CORS permission. A request that claimed to come from https://example.com came back with no Access-Control-Allow-Origin header, so a browser will not hand the reply to that page.
- Everything else needs a key. The app makes a random key each time it starts the engine, saves it in
~/.outlier/local_api_tokenwhere only your account can read it, and sends it with each request. Without it you get the 401 above.
Here is the evidence for the first three:
$ netstat -an -p tcp | grep -E '\.8766 .*LISTEN'
tcp4 0 0 127.0.0.1.8766 *.* LISTEN
$ curl -sS -o /dev/null http://<mac-network-address>:8766/health
curl: (7) Failed to connect to <mac-network-address> port 8766 after 1 ms: Couldn't connect to server
$ curl -i -H 'Host: example.com' http://127.0.0.1:8766/health
HTTP/1.1 421 Misdirected Request
content-type: application/json
content-length: 77
{"detail":"This Outlier engine only answers requests addressed to this Mac."}
$ curl -s -D - -o /dev/null -H 'Origin: https://example.com' http://127.0.0.1:8766/health | grep -i -c access-control-allow-origin
0
The last command counts the lines with that header in the reply. Zero.
For the key file I only looked at its permissions and its timestamp. I never opened it. The engine started at 01:14:18 on 11 October, and the file was last written at 01:14:18 as well:
$ ls -l ~/.outlier/local_api_token | awk '{print $1}'
-rw-------
$ stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' ~/.outlier/local_api_token
2026-10-11 01:14:18
$ ps -p 9949 -o lstart=
Sun Oct 11 01:14:18 2026
The key does not help against a program you run yourself, outside a sandbox. That program can read the file the way it can read the rest of your home folder. The key is there for the other cases: a web page, another user account on the Mac, a sandboxed app.
If you use Outlier as an API
The same port serves Outlier's OpenAI-compatible API at http://127.0.0.1:8766/v1. It is a Pro feature. You switch it on in Settings, under Advanced, and it has its own key, separate from the engine key above. On the free plan, requests to /v1 come back 402. Without a key, a request gets this:
$ curl -i http://127.0.0.1:8766/v1/models
HTTP/1.1 401 Unauthorized
content-type: application/json
content-length: 114
{"error":{"message":"Missing Bearer API key","type":"authentication_error","code":"missing_api_key","param":null}}
The steps and working code for the OpenAI SDK are on the developers page and in how to run a local OpenAI API on a Mac.
If a tool of yours says connection refused on 127.0.0.1:8766, either Outlier is not running or you just opened it and the engine is still starting. Open Outlier, wait for the chat window to load, and try again.
How to stop it
Quit Outlier with Command-Q. The engine belongs to the app. If the app quits or crashes, the engine checks every 5 seconds whether the app is still there, and exits when it is gone. Run the lsof command again afterwards. It should print nothing.
If you want the longer version of why none of this puts your chats on the internet, is local AI safe covers it, and can AI run without the internet covers what still needs a connection.
What I did not test
- Quitting Outlier to watch the port close. This is the Mac I work on and the app was in use, so I read the code that does it and left the app alone.
- A connection from a second device. I used the Mac's own network address instead, which asks the same question from the Mac.
- Whether the key stops another user account or a sandboxed app. That is how it is written. I did not set up either one to try it.
- Any Outlier version before 1.11.916. Everything here comes from this one build.
- What the macOS firewall or a tool like Little Snitch says about outlier-cli. I have not looked, so I will not guess.
Frequently asked questions
What is 127.0.0.1:8766?
It is the address of Outlier's engine on your own Mac. When you open Outlier, it starts a program called outlier-cli that listens on port 8766 of 127.0.0.1, the address a computer uses for itself. The Outlier window sends your messages to that program and shows what comes back.
Is port 8766 open to the internet?
No. The engine listens on 127.0.0.1 only, so lsof shows 127.0.0.1:8766 (LISTEN) and not *:8766. On my Mac, connecting to the Mac's own network address on port 8766 was refused, while the same request to 127.0.0.1 got a reply.
Why does outlier-cli listen on a port at all?
Outlier is two programs: the window you type in and the engine that runs the model. They talk over a local web connection, and the port is the numbered door the engine listens on. The connection starts and ends on your Mac.
Does 127.0.0.1:8766 send my chats anywhere?
No. That address only connects programs on your Mac to each other. Outlier uses the internet for other things, such as downloading a model or running a web search when you ask for one, and those are separate connections.
How do I turn it off?
Quit Outlier with Command-Q. The engine belongs to the app: if the app quits or crashes, the engine checks every 5 seconds whether the app is still there and exits when it is not.
Try Outlier free
Free: Nano + Lite. Pro: $249 once · or 4 × $62.25; $124.50 for the first 25 · or 4 × $31.13. macOS 26+. In the US, Klarna or Afterpay at checkout: four payments, two weeks apart. Refund window: 30 days, no questions asked.
Download free (290 MB) Buy ProOn your phone?