Run Locally

Setup & Installation

Set up PostgreSQL, install the app, and complete the onboarding wizard.

Database Setup

Salmex I/O stores your conversations, memories, and scheduled tasks in a database. You need to set one up before launching the app for the first time. Pick whichever option below suits you best — all three work equally well.

The app handles the rest

Once you have a database running, Salmex I/O creates all the tables and structures it needs automatically on first launch. You just provide the connection and the app does the rest.

Option A — Postgres.app (recommended)

The easiest way to run a database on your Mac. Postgres.app is a free, full-featured PostgreSQL database packaged as a regular macOS application — no terminal commands needed.

Download Postgres.app

Go to postgresapp.com/downloads.html and download PostgreSQL 17 (about 120 MB). It works on both Apple Silicon and Intel Macs.

Install and start

Open the downloaded .dmg and drag Postgres to your Applications folder. Double-click to open it, then click Initialise. That's it — your database is running.

A small elephant icon appears in your menu bar while the database is active. You can set it to start automatically when you log in under Postgres.app > Preferences.

Create a database for Salmex I/O

In the Postgres.app window, double-click any database name to open a database prompt. Then type:

Create the database and enable extensions
CREATE DATABASE salmex;
\c salmex
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

Your connection string will be: postgresql://localhost/salmex

Extensions are included

Postgres.app (version 15 and later) ships with all the extensions Salmex I/O needs built in. The commands above just switch them on for your database — there's nothing extra to install.

Option B — Docker

Docker is a tool that runs software in isolated containers on your Mac. If you already have Docker installed and running, this option sets up the database in a single command.

Docker must be installed first

If you don't have Docker yet, download Docker Desktop and install it. Make sure it's running (you'll see a whale icon in your menu bar) before continuing.

Open Terminal (search for "Terminal" in Spotlight, or find it in Applications > Utilities) and paste the following command:

Start PostgreSQL with Docker
docker run -d \
  --name salmex-db \
  -e POSTGRES_USER=salmex \
  -e POSTGRES_PASSWORD=salmex \
  -e POSTGRES_DB=salmex \
  -p 5432:5432 \
  -v salmex-pgdata:/var/lib/postgresql/data \
  pgvector/pgvector:pg17

This starts a database with everything Salmex I/O needs already included. Your data is saved even if you restart Docker or your Mac.

Your connection string will be: postgres://salmex:salmex@localhost:5432/salmex

Docker must be running

The database runs inside Docker, so Docker Desktop needs to be open whenever you use Salmex I/O. If the app can't connect, check that Docker is running and the container is started.

Option C — Cloud database

If you'd prefer not to run a database on your Mac at all, you can use a hosted database service. The database runs on someone else's servers and you connect to it over the internet. Two good options:

Neon

Generous free tier (512 MB storage). Wakes up automatically when your app connects — no manual intervention if you haven't used it in a while. Best choice for most people.

Supabase

Free tier with 500 MB storage. Note: free projects pause after 7 days of inactivity and need to be manually restarted from the Supabase dashboard.

To set up a cloud database:

Create a free account

Sign up at neon.tech or supabase.com. Both offer a free tier that's more than enough for personal use.

Create a project

Create a new project and select PostgreSQL 17 when asked. Give it any name you like.

Enable extensions

Both services include the extensions Salmex I/O needs, but they must be switched on. Open the SQL editor in your dashboard and run:

Enable extensions
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
Copy your connection string

Find the connection string in your project dashboard (usually under Connect or Database Settings). It will look something like:

postgresql://user:password@ep-example.region.aws.neon.tech/dbname?sslmode=require

Copy it — you'll paste it into Salmex I/O during onboarding.

Supabase note

On Supabase, uuid-ossp is already enabled by default — you only need the vector extension. Also, use the Session pooler connection string (not "Direct") to ensure the connection works on all networks.

Installation

Download the DMG

Get the latest .dmg from salmex.io. Universal binary — works on both Apple Silicon and Intel Macs.

Drag to Applications

Open the DMG and drag Salmex I/O into your Applications folder.

First launch

Double-click the app. macOS will show a security dialog because the app is downloaded from the internet. Click Open to proceed.

Gatekeeper

If macOS blocks the app entirely, go to System Settings > Privacy & Security and click Open Anyway next to the Salmex I/O entry. This only needs to happen once.

First Launch & Onboarding

On first launch the app presents a three-step onboarding wizard. All settings can be changed later.

Screenshot: Onboarding wizard
Database

Enter your PostgreSQL connection details — host, port, database name, username, password, and SSL mode. The app tests the connection before proceeding.

For local setups (Postgres.app or Docker), the defaults usually work: localhost, port 5432, database salmex. For cloud databases, use the credentials from your Neon or Supabase dashboard.

You can optionally save credentials to the macOS Keychain for automatic connection on future launches.

Screenshot: Database connection step
AI Provider

Add at least one AI provider. Paste your API key for Anthropic (Claude), OpenAI (ChatGPT), or Google (Gemini) — or choose Ollama to run AI models locally on your Mac with no API key.

You can configure multiple providers and switch between them later. Anthropic (Claude) is recommended as the default.

Screenshot: AI Provider step
Search

Optionally add a search engine so your agent can research the web. Supported engines:

  • Perplexity — AI-powered search with citations. Best for research tasks.
  • Brave — privacy-focused web search. Good general-purpose option.
  • Google — Custom Search JSON API. Requires a search engine ID.

You can skip this step and add search later in Settings.