Installing Loca
Loca comes in two parts: a Client, the app you look at, and a Core, the service that does the work. One installer sets up both. The common setup runs both on your own machine and does everything locally, with nothing sent anywhere until you decide otherwise, but the Core can just as well run on a different computer (see The Basics).
They connect over the network, so one Core can serve many Clients and one Client can reach many Cores. The picture above is one such spread: a laptop running both halves, a phone that carries only the Client, and a desktop that runs a Core for the heavier work. You do not have to plan any of that up front, though. Run the installer with everything selected and you have a complete local setup; you can add or move Cores whenever you like (see Cores and Pairing).
Run the installer
Head to the Install page, pick your operating system, and download
the installer: a .pkg on macOS, a setup .exe on Windows. It installs the
Client and, pre-selected, the Core, along with the Core’s options: whether
it keeps running in the background at login, and whether other devices on your
network may pair with it. Keep the Core selected for the everything-local setup;
uncheck it only if this device should connect to a Core on another machine.
Re-running the installer over an existing Core updates its files but keeps its
settings as they are; the network option can be changed afterwards in the Core’s
settings.json.
Linux is the one split platform: the Client is an AppImage, a single portable
file you make executable and run (and the build that keeps itself up to date),
and the Core is a separate .deb or .rpm package that registers the Core
service when you install it. Both are on the same Install page.
Note
If macOS or Windows warns about an unidentified developer the first time you open the installer (signed builds are rolling out), choose Open Anyway in System Settings under Privacy & Security on macOS, or More info, then Run anyway on Windows.
First launch
Open loca. If you installed the Core with it, the app finds it and connects on its own; there is nothing to configure, and you land in a short settings tour. If you skipped the Core, the app instead asks for the address of a Core on another machine and its pairing code (see Cores and Pairing).
Either way, once a Core is connected the Client remembers it and reconnects on its own. You can pair more Cores or switch between them later under Cores in Settings.
Headless and server installs
The same installer runs without a screen, for a Core on a server or an install scripted across machines. Each flag mirrors an installer option; a Core set up this way is paired from another device with a pairing code.
On Windows, run the installer from a terminal with /S for a silent install.
/CLIENT=0 skips the app for a Core-only machine; /CORE=0 skips the Core;
/SERVICE=0 skips the background service; /BINDALL=1 lets other devices on
the network pair; /BEHINDPROXY=1 makes the Core trust a terminating HTTPS
proxy in front of it instead of pinning its own certificate (servers only). For
example, a headless Core reachable from your network:
loca-latest-setup.exe /S /CLIENT=0 /BINDALL=1.
On macOS, run sudo installer -pkg loca-latest.pkg -target / for the default
install. To change the selection, pass -applyChoiceChangesXML choices.xml;
print the editable choice list with
installer -pkg loca-latest.pkg -target / -showChoiceChangesXML. The choice
ids are client, core, core-service, core-lan, and core-behindproxy
(the proxy-trust option above, available only this way). A Core-only server
that other devices may pair with:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>choiceIdentifier</key><string>client</string>
<key>choiceAttribute</key><string>enabled</string>
<key>attributeSetting</key><integer>1</integer>
</dict>
<dict>
<key>choiceIdentifier</key><string>client</string>
<key>choiceAttribute</key><string>selected</string>
<key>attributeSetting</key><integer>0</integer>
</dict>
<dict>
<key>choiceIdentifier</key><string>core-lan</string>
<key>choiceAttribute</key><string>selected</string>
<key>attributeSetting</key><integer>1</integer>
</dict>
</array>
</plist>
(The client choice is locked in the GUI, so a Core-only install re-enables it
before deselecting it, as above.) And the reverse, the app alone on a machine
that connects to a Core elsewhere:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>choiceIdentifier</key><string>core</string>
<key>choiceAttribute</key><string>selected</string>
<key>attributeSetting</key><integer>0</integer>
</dict>
</array>
</plist>
On Linux, the Core package is already headless: install the .deb or .rpm
with your package manager and the service is registered.
What gets installed
A local setup leaves you with two things:
- The Client, the desktop app you open from Applications, your app menu, or the Start menu.
- A Core, with all of its state kept under
~/.loca.
That ~/.loca directory is where the Core keeps your sessions, memories, and
settings, along with any models you download later. Keeping it on disk is what
makes Loca local-first: your conversations are files on the machine running the
Core, not rows in someone else’s database. (Snippets and the look of the app are
kept by the Client instead, so they travel with it; see
The Settings Panel.) If you ever want to take
it all back off, see Uninstalling Loca.
Caution
Nothing leaves your machine until you point a setting at an External provider. When you do, the messages in those sessions are sent to that provider to be answered. See Language Model.
Staying current
Loca keeps itself up to date. When a new release is available, the app offers to install it, and the Core can stage and apply its own update in the background, rolling back if anything goes wrong. You can also download the latest installer at any time to jump straight to the newest build.
How new those builds are is set by your channel, which you can leave on its default for now. When you want to try faster-moving builds without disturbing your setup, see Updates and Channels.
Next, open the app and learn the few things particular to Loca in The Basics.