---
title: "Desktop app"
description: "Install the IntoSQL desktop app on macOS, Windows or Linux, convert files of any size, and load them straight into PostgreSQL, MySQL, MariaDB or SQLite."
canonical: https://intosql.com/docs/desktop
last_updated: 2026-10-15
---

# Desktop app

The desktop app is the IntoSQL converter running on your computer. It reads files from your disk where they are and writes the output straight to disk, so the file size is limited by your disk, not by memory. It also loads files straight into a database and keeps saved jobs you can run again.

Converting files and loading into SQLite are free. Loading into a database server (PostgreSQL, MySQL, MariaDB) and saved jobs are part of IntoSQL Pro, with a 14-day trial.

## Download

Get the installer for your system from [intosql.com/desktop](/desktop). The page picks the right one for your browser and lists the others under Other downloads.

| System                         | File                               |
| ------------------------------ | ---------------------------------- |
| Mac with Apple silicon         | `IntoSQL_<version>_aarch64.dmg`    |
| Mac with Intel                 | `IntoSQL_<version>_x64.dmg`        |
| Windows (x64)                  | `IntoSQL_<version>_x64-setup.exe`  |
| Linux, AppImage (x64)          | `IntoSQL_<version>_amd64.AppImage` |
| Linux, Debian and Ubuntu (x64) | `IntoSQL_<version>_amd64.deb`      |

### Install on macOS

Open the `.dmg` and drag IntoSQL to Applications.

### Install on Windows

Run `IntoSQL_<version>_x64-setup.exe`. SmartScreen may warn the first time you open the installer. Choose More info, then Run anyway.

### Install on Linux

For the AppImage, make it executable and run it:

```shell
chmod +x IntoSQL_1.0.1_amd64.AppImage
./IntoSQL_1.0.1_amd64.AppImage
```

For the `.deb` package:

```shell
sudo apt install ./IntoSQL_1.0.1_amd64.deb
```

## First launch

The app opens on Convert. The sidebar has five sections:

| Section    | What it holds                                                              |
| ---------- | -------------------------------------------------------------------------- |
| Convert    | Pick or drop a file, adjust how it reads, then save the output or load it. |
| Saved jobs | Files with their settings and destination, to run again.                   |
| Databases  | Saved databases to load into.                                              |
| License    | Your Pro status, and where to paste a license.                             |
| Settings   | Crash reports on or off.                                                   |

The app shows its text in your system's language when IntoSQL speaks it, and in English otherwise. You don't need an account to convert files.

## Activate IntoSQL Pro

> **Pro:** Loading into PostgreSQL, MySQL or MariaDB, and saving jobs, need IntoSQL Pro. The first time you use either, a 14-day trial starts on this computer.

1. Sign in at [intosql.com](https://intosql.com) and open the dashboard. With Pro, it shows a card named Desktop app and command line with your license. Copy it.
2. In the app, open License. Choose Get your license from your IntoSQL account if you need the dashboard.
3. Paste the license (it starts with `intosql1.`) and choose Activate.

License then reads "IntoSQL Pro is active on this computer." and the date it renews before.

The license is saved in IntoSQL's settings folder, the same one the [command line](/docs/cli) uses. Activating it in the app also activates `intosql` on that computer, and the other way around. The trial is shared the same way.

| System       | License file                                                        |
| ------------ | ------------------------------------------------------------------- |
| macOS, Linux | `~/.config/intosql/license` (or `$XDG_CONFIG_HOME/intosql/license`) |
| Windows      | `%APPDATA%\intosql\license`                                         |

A license works offline for 45 days. When it has less than 15 days left, the app sends it to intosql.com at start and saves the new one it gets back, as long as your plan is paid. If the app can't reach intosql.com, the license keeps working until it expires. An expired license is renewed the same way once the app is online and the plan is paid.

## Convert a file

1. In Convert, choose Choose a file, or drop the file on the window. The picker offers `.xlsx`, `.xlsm`, `.xls`, `.xlsb`, `.ods`, `.csv`, `.tsv`, `.txt`, `.json`, `.ndjson`, `.sql` and `.sql.gz` (MySQL or MariaDB dumps, converted to PostgreSQL). The engine reads the content to decide the format, not the extension.
2. The app shows the table it found, each column's type and every fix it made. Pick the database (PostgreSQL, MySQL, MariaDB, SQLite, SQL Server or Oracle) and the output (SQL, CSV or JSON). You can also rename a single column, keep it as text, or leave it out. See [Converter](/docs/converter) and [Fixes](/docs/fixes) for what each setting does.
3. Choose Save, pick where the file goes, and the output is copied there.

While you adjust settings, the app writes the output to its cache folder. Only the latest output is kept there: each conversion replaces the one before.

## Load into a database

The app loads a file straight into PostgreSQL (with parallel `COPY`), MySQL, MariaDB or SQLite, without a script in between. It creates the table with the inferred types and loads every row. If the load fails or you cancel it, the table it created is dropped and nothing is committed.

### Add a database

Open Databases and choose Add a database.

| Field         | Description                                                                                |
| ------------- | ------------------------------------------------------------------------------------------ |
| Name          | How the database shows in the app.                                                         |
| Database      | PostgreSQL, MySQL, MariaDB or SQLite.                                                      |
| Host          | The server's host name or address.                                                         |
| Port          | Empty for the default: 5432 for PostgreSQL, 3306 for MySQL and MariaDB.                    |
| Database name | The database to load into.                                                                 |
| User          | The user to connect as.                                                                    |
| Password      | The user's password. When you edit a saved database, leave it empty to keep the saved one. |
| SQLite file   | For SQLite only: the `.sqlite` file to load into. Choose a file picks or creates one.      |

The app connects from your computer, so it reaches any database your computer reaches, including one behind a VPN.

### Where connections are stored

- Name, kind, host, port, database name, user and SQLite path are saved in `connections.json`, in the app's settings folder.
- The password goes to the system keychain: Keychain on macOS, Credential Manager on Windows, the Secret Service on Linux. It is never written to disk in the clear. Deleting a database in the app also removes its password from the keychain.

### Load a file

1. Convert a file as above.
2. Choose Load into a database, pick a saved database and choose Load.
3. The app shows progress. When it ends, it says how many rows went into which table, for example "12,480 rows loaded into ventas in Producción."

If the database refuses the load, the message carries the database's own words: "Producción refused the load: ...". During the trial, the result also shows the days left.

> **Note:** The app loads with fixed settings: 4 connections for PostgreSQL, 500 rows per `INSERT` for MySQL and MariaDB. For `UNLOGGED` tables, indexes after the load, or a different number of connections, use `intosql load` from the [command line](/docs/cli). See [Loading](/docs/loading).

## Saved jobs

> **Pro:** Saving a job is part of IntoSQL Pro. The first saved job starts the trial if it hasn't started.

A saved job keeps a file's path, its conversion settings and where the output goes. Run it again when the file changes, and it converts the file as it is now.

1. Convert a file and set it up.
2. Choose Save as a job. Give it a name and pick the destination: a file (you choose where the `.sql` goes) or one of your saved databases.
3. Open Saved jobs and choose Run.

Each job shows its destination and how the last run went, for example "Last run Oct 16, 2026: 12,480 rows". If its database was deleted, the job says so. Jobs are saved in `jobs.json` in the app's settings folder.

## Updates

Release builds look for a new version when the app starts and every 6 hours while it runs. They read `latest.json` from the latest release at `github.com/alfonsobries/intosql-releases`. A new version downloads in the background, and the app shows "IntoSQL 1.0.2 is ready." with Restart to update and Later. Each update is signed, and the app installs only updates signed with IntoSQL's key. On Windows the installer runs in passive mode, showing progress without asking anything.

## Crash reports

When something in the app breaks, it can send a crash report to IntoSQL: native crashes and errors in the app's interface. Crash reports are on until you turn them off.

**What a report carries:**

- What failed: the error, and the stack trace of the app's own code.
- The app's release.
- What the job was: whether it was an inspect, convert or load, the input format (from the setting, else the file's extension), the database dialect, the output format, and the file size as a range (under 1 MB, 1-10 MB, 10-100 MB, 100 MB-1 GB, over 1 GB).

**What is removed before it leaves:**

- The computer's name, the user, request data and breadcrumbs.
- Local variables and source lines from the stack trace.
- In every text, quoted values become `<value>`, paths become `<path>`, and file names (any word ending in a data file extension such as `.csv`, `.xlsx` or `.sql`) become `<file>`. "Can't open /Users/ana/clientes.xlsx" is sent as "Can't open <path>".

File contents are never sent.

**Turn them off:**

- In the app, open Settings and clear Send crash reports. It applies at once and is saved in `settings.json` in the app's settings folder.
- Or start the app with the environment variable `INTOSQL_NO_TELEMETRY=1`. The command line reads the same variable.

## Offline use

Converting, saving outputs, loading into a database you can reach, and running saved jobs all work without internet. Nothing about your files goes to IntoSQL. The app connects to the internet only to:

- renew a Pro license close to expiry (at start, and when you open License),
- look for updates,
- send crash reports, unless you turned them off.

A trial or a license already saved keeps working offline until it ends.

## Where the app keeps its data

| What                      | macOS                                               | Windows                              | Linux                           |
| ------------------------- | --------------------------------------------------- | ------------------------------------ | ------------------------------- |
| Settings, databases, jobs | `~/Library/Application Support/com.intosql.desktop` | `%APPDATA%\com.intosql.desktop`      | `~/.config/com.intosql.desktop` |
| Latest output             | `~/Library/Caches/com.intosql.desktop`              | `%LOCALAPPDATA%\com.intosql.desktop` | `~/.cache/com.intosql.desktop`  |
| License and trial         | `~/.config/intosql`                                 | `%APPDATA%\intosql`                  | `~/.config/intosql`             |
| Database passwords        | Keychain                                            | Credential Manager                   | Secret Service                  |

## Uninstall

- **macOS:** quit IntoSQL and move it from Applications to the Trash.
- **Windows:** open Settings, Apps, find IntoSQL and choose Uninstall.
- **Linux:** delete the AppImage, or run `sudo apt remove intosql` for the `.deb` package.

Uninstalling leaves your settings, saved databases, jobs and license in place. To remove them, delete the folders in [Where the app keeps its data](#where-the-app-keeps-its-data). Delete your saved databases in the app first, so their passwords leave the keychain. Keep `~/.config/intosql` (or `%APPDATA%\intosql`) if you still use the command line: it holds the license both use.

## Troubleshooting

**"Loading into a database server is part of IntoSQL Pro, and the 14-day trial on this machine has ended."** Activate a license in License. Loading into SQLite and converting files stay free.

**"Can't activate: ..."** The pasted text isn't a valid license, or it has expired. Copy it again from the dashboard, the whole line starting with `intosql1.`.

**"Can't use the system keychain: ..."** The app couldn't save or read the password. On Linux, the Secret Service needs a keyring running, such as GNOME Keyring or KWallet.

**The load fails with an authentication error.** Edit the database in Databases and type the password again. An empty field keeps the saved one.

**Windows warns about the installer.** SmartScreen may warn the first time. Choose More info, then Run anyway.
