Setup & Installation
This guide covers every option in detail. If you just want to get running, the Getting Started page has the 5-minute path.
Installation
Get the latest .dmg from salmex.io. Requires macOS 15 (Sequoia) or later on Apple Silicon.
Open the DMG and drag Salmex I/O into your Applications folder.
Double-click the app. macOS will show a security dialog because the app is downloaded from the internet. Click Open to proceed.
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.
Database setup
Salmex I/O stores your conversations, memories, and scheduled tasks in PostgreSQL. The onboarding wizard presents two options.
Built-in storage (recommended)
The default. Salmex I/O runs and manages a local PostgreSQL instance for you. Click Continue during onboarding and you're done — no terminal, no passwords, no setup. The database starts automatically with the app and your data stays on your Mac.
The app runs PostgreSQL 17 locally via the Go sidecar. It creates the database, enables pgvector and uuid-ossp extensions, runs all migrations, and stores data in the app's support directory. You never need to touch it, but it's fully inspectable.
Bring your own database
If you already run PostgreSQL or prefer to manage it yourself, click I have my own database during onboarding. You'll need:
- PostgreSQL 17+ with the
vectoranduuid-osspextensions enabled - A connection string or host/port/database/user/password credentials
The onboarding wizard tests the connection before proceeding and optionally saves credentials to your macOS Keychain.
Option A — Postgres.app
The easiest way to run your own database on a Mac. Postgres.app is a free, full-featured PostgreSQL packaged as a macOS application.
Go to postgresapp.com/downloads.html and download PostgreSQL 17 (~120 MB). Works on both Apple Silicon and Intel.
Open the .dmg, drag Postgres to Applications, double-click, and click Initialise. A small elephant icon appears in your menu bar.
Double-click any database in the Postgres.app window to open a prompt. Then run:
CREATE DATABASE salmex;
\c salmex
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";Connection string: postgresql://localhost/salmex
Option B — Docker
If you have Docker Desktop installed and running, one command sets up everything:
docker run -d \
--name salmex-db \
-e POSTGRES_USER=salmex \
-e POSTGRES_PASSWORD=salmex \
-e POSTGRES_DB=salmex \
-p 5434:5432 \
-v salmex-pgdata:/var/lib/postgresql/data \
pgvector/pgvector:pg18Connection string: postgres://salmex:salmex@localhost:5434/salmex
The database lives inside Docker, so Docker Desktop must be open whenever you use Salmex I/O.
Option C — Cloud database
Run the database on someone else's servers. Two good free options:
Neon
Generous free tier (512 MB). Wakes up automatically — no manual restarts. Best choice for most people.
Supabase
Free tier with 500 MB. Note: free projects pause after 7 days of inactivity.
Create an account, create a project with PostgreSQL 17, enable extensions in the SQL editor:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";Copy the connection string from your project dashboard and paste it during onboarding.
On Supabase, uuid-ossp is already enabled by default. Use the Session pooler connection string (not "Direct").
AI provider setup
The onboarding wizard presents three choices for how to run AI inference. This is separate from your plan — every option below works on the Free tier. All can be changed in Settings > AI at any time.
Managed inference (recommended)
The fastest path to chatting. Click Sign in during onboarding to create an account and start a 14-day free trial — no credit card required. No API keys to find, no provider accounts to create.
What you get:
- 5 managed open-source models — Everyday (DeepSeek V3.2), Fast (Llama 4 Scout), Reason (DeepSeek R1), Code (Qwen3-Coder), Think (Qwen3-235B)
- Brave Search bundled — web research works out of the box, no search API key needed
- Auto-routing picks the best model for each task (or you can pin a specific model)
- 5-21x cheaper than calling Claude or GPT-4o directly — see pricing
- Falls back to your own API keys when quota runs out — you're never cut off
After the trial, buy credit packs from $5 for more messages (Pro subscribers get 100 messages/month included). Or just continue with your own keys.
Bring your own key
Click Add key during onboarding. Select a provider, paste your API key, and the app verifies it instantly.
| Provider | What you need | Notes |
|---|---|---|
| Anthropic | API key from console.anthropic.com | Claude models. Strong default for general use. |
| OpenAI | API key from platform.openai.com | GPT-4o, o3, and newer models. |
| API key from aistudio.google.com | Gemini models. |
You can configure multiple providers and switch between them per conversation. All API keys are encrypted at rest with AES-256-GCM.
Ollama (100% local)
For fully local AI with zero data leaving your machine. Install Ollama, pull a model (ollama pull llama3.2), and select Ollama during onboarding. No API key, no account, no internet required after the initial model download.
Search setup
Search lets your agent research the web. How it works depends on your AI choice:
- Salmex I/O Pro — 50 Brave searches/month are included. Nothing to configure. You can optionally add your own keys for Perplexity or Google for more.
- BYOK / Ollama — Bring your own search API key. You can skip this during onboarding and add it later in Settings.
| Engine | What you need | Notes |
|---|---|---|
| Perplexity | API key | AI-powered search with citations. Best for research. |
| Brave | API key | Privacy-focused web search. Good general-purpose. |
| API key + Search Engine ID | Google Custom Search JSON API. |
First launch
On first launch the app presents an onboarding wizard that walks you through each step above. All settings can be changed later in Settings.
After onboarding completes, the app drops you into Chat with a proof conversation already in your history — a live demo showing the agent remembering something from moments earlier. This is real data in your real database, not a simulation.
From here, you can:
- Start chatting — your agent is fully configured and ready
- Connect Telegram — reach your agent from your phone
- Explore Features — memory, schedule, channels, and more
- Change any setting in Settings — providers, models, search, and appearance