Linux

How to Run Prism on Linux with AppImage and Autostart

By Kavin M KPublished Updated 8 min read

Quick answer
Download the AppImage, mark it executable, and run it — Prism starts the tray, the admin UI on 127.0.0.1:8765 and the proxy on 127.0.0.1:11434. Enable autostart to write ~/.config/autostart/prism.desktop, or run the binary with --serve for a headless install.

Prism ships for Linux as an AppImage: one file, no installer, no root, no package manager. That makes it the easiest of the three platforms to try and the easiest to remove — delete the file and you are done, apart from one config directory.

Linux also has the fewest assumptions baked in, which means a couple of things that "just work" on macOS need a decision here. This walks through all of them.

Install

1

Download the AppImage

Grab Prism-Linux-x86_64.AppImage from the latest release.
2

Make it executable

chmod +x Prism-Linux-x86_64.AppImage. Nothing runs without this.
3

Put it somewhere stable

Prism updates itself in place, so the file should live where you intend to keep it —~/Applications or ~/.local/bin are both fine. Moving it later means running the new copy once from the new location.
4

Run it

Double-click it, or launch it from a terminal. A tray icon appears, the proxy starts on port 11434, and the admin UI is served at http://127.0.0.1:8765/admin.
chmod +x Prism-Linux-x86_64.AppImage
mkdir -p ~/Applications
mv Prism-Linux-x86_64.AppImage ~/Applications/
~/Applications/Prism-Linux-x86_64.AppImage

Your first run creates one directory

$XDG_CONFIG_HOME/prism/     (defaults to ~/.config/prism)
├── config.json          providers, search, MCP servers, agent choices
├── model_remapping.json aliases, known models, default model
├── stats.db             request history, SQLite in WAL mode
├── analytics_id.txt     random telemetry id
├── codex_catalog.json   generated when Codex is set up
├── logs/proxy.log       the log file
├── searxng/             managed search engine data, once bootstrapped
└── prism.lock           single-instance lock, held while running
A second launch will refuse to start
Prism takes an exclusive flock on prism.lock. A duplicate launch exits with "prism is already running" rather than fighting over the port. If that message appears after a crash, the lock is released as soon as the stale process is gone.

FUSE, and the one-line workaround

AppImages mount themselves through FUSE 2. Most rolling distributions and Ubuntu up to 22.04 ship it, but several newer releases ship FUSE 3 only, and the AppImage then refuses to start with a "dlopen(): error loading libfuse.so.2" message.

# Option 1 — add the FUSE 2 compatibility library
sudo apt install libfuse2        # Debian/Ubuntu
sudo dnf install fuse-libs        # Fedora

# Option 2 — no root, no extra package: extract and run
./Prism-Linux-x86_64.AppImage --appimage-extract-and-run

The second option unpacks to a temporary directory and runs from there. It costs a little startup time and still works normally otherwise, which is why it is a fine permanent answer on a machine where you would rather not install anything.

The tray icon, and why it may be missing

Prism's main window is the tray icon. On GNOME, top-bar icons require an AppIndicator-compatible extension — GNOME shipped the support out of process and it is not enabled by default. If there is no icon, the app is probably running fine; check the admin UI URL to confirm.

On KDE Plasma, XFCE, Cinnamon, MATE and most other desktops the icon appears with no extra work. Under Wayland, tray behaviour follows the compositor's XDG StatusNotifier support.

Auto-start at login

Turning on auto-start writes a standard freedesktop entry — no systemd unit, no root:

# ~/.config/autostart/prism.desktop
[Desktop Entry]
Type=Application
Name=Prism
Comment=Prism local AI proxy
Exec=/home/you/Applications/Prism-Linux-x86_64.AppImage
Terminal=false
X-GNOME-Autostart-enabled=true

Because the entry holds an absolute path, moving the AppImage invalidates it. Prism compares the entry against the running executable at every launch and repoints a stale one, so the fix is simply to launch it once from where it now lives. Auto-start respects $XDG_CONFIG_HOME if you have moved that.

Confirm the Exec line names the AppImage
An AppImage executes from a temporary mount, so the only path that stays valid is the .AppImage file itself. After enabling auto-start, open the entry and check that Exec= points at your AppImage rather than at something under /tmp/.mount_*. If it points into the mount, edit the line to the AppImage path and it will work at the next sign-in.

Running on a server or a headless box

The tray process is a GTK application and needs a display. On a machine without one, run the proxy directly:

./Prism-Linux-x86_64.AppImage --serve

# Listening:
#   http://127.0.0.1:11434      LLM endpoints + /mcp + /health + /v1/stats
# Not started in this mode:
#   http://127.0.0.1:8765/admin the admin UI
Heads-up: no admin UI in --serve mode
The admin UI is served by the tray process, not the proxy process, so a headless --serve run has no web interface. Edit config.json and model_remapping.json directly, then POST to /__reload_model_remap__ to apply changes without a restart.

For a real systemd unit, point ExecStart at the AppImage with --serve, set Restart=on-failure, and keep it as a user service so it inherits the same $XDG_CONFIG_HOME and finds the config it built. Binding beyond loopback is possible via PRISM_HOST, with an explicit warning in the log when you do it.

Updates

The AppImage replaces itself in place: it downloads the new AppImage, swaps the running file to <path>.old, relaunches, and deletes the old copy a few seconds after the previous process exits. If you are running the plain binary rather than an AppImage, the updater unpacks Prism-Linux.tar.gz over the install directory instead.

Releases are published for x86_64. On an arm64 machine, build from source with go build — the binary is pure Go with CGO_ENABLED=0, so there is nothing to configure.

Config and data live outside the AppImage

Nothing important is stored inside the AppImage, so replacing it never loses your providers, keys, stats or MCP servers. Deleting the config directory is a full reset — worth knowing before you do it while troubleshooting.

# Full reset, keeping nothing
rm -rf ~/.config/prism

# Reset stats only
rm ~/.config/prism/stats.db
Not sure what went wrong?
logs/proxy.log holds startup output and every upstream error. Turn on Debug Logs in the Proxy tab to also capture full request and response bodies for translation problems — it logs a great deal, so leave it off once you are done.

Reference

Every claim on this page is checked against the Prism source, and the reference documentation is where those details live in full.

Try it yourself

Prism is a free, MIT-licensed local proxy for AI coding agents. Install it, point one agent at http://127.0.0.1:11434, and the rest of this post applies as written.