Guide

How Statio Deploy works, from the first app to the last variable in the .env. Each section stands on its own: read the one you need.

The app's interface is in Italian: this guide gives the names of buttons and fields as they appear on screen, with their meaning in brackets.

Adding an app

The + button at the top of the list opens the Nuovo applicativo (new app) sheet. There are only a few fields:

An app is changed with Modifica… (edit) and removed with Elimina… (delete): it disappears from the list, but the project folder is not touched.

Command detection

As soon as you pick the folder, or with the Rileva (detect) button, Statio Deploy reads the project files and suggests the commands it finds, from the most to the least likely. Clicking a suggestion copies it into the command field.

It recognizes the scripts in package.json (choosing npm, pnpm, yarn or bun from the lockfile), Django, FastAPI and Streamlit projects, Python entry points with .venv, Poetry or uv, Makefile targets, Docker Compose, shell scripts, Procfile and the code blocks in the README.

Detection only reads: it never runs anything. If it finds nothing, you type the command yourself.

Starting and stopping

Statio Deploy's main window: the list of apps on the left and, on the right, Shop running with its Next.js log.

Avvia (start, ⌘R) runs the command in your login shell, the same one as Terminal: your PATH, nvm, pyenv and everything in .zprofile and .zshrc apply. Below, the Log panel shows the output live. With Segui (follow) on, the log scrolls to the last line by itself; Svuota (clear) empties it.

Arresta (stop, ⌘.) stops the app and every process it started, not just the first one: each app runs in its own process group. First it asks the app to quit gracefully; after five seconds, if needed, it forces it. Riavvia (restart, ⇧⌘R) does both in a row. Ferma tutto (stop all, ⌥⌘.) stops every running app.

When you quit Statio Deploy, the apps still running are stopped.

Opening in the browser

Apri nel browser (open in browser, ⌘O) opens the app's address. The address can contain variables read from the project's .env files: http://localhost:${PORT} uses the value of PORT, and ${PORT:-3000} uses 3000 if the variable is missing. So if you change the port in the .env, the link follows.

The browser is chosen at three levels: the one set on the app, otherwise the default in Statio Deploy's Settings, otherwise the system one. The Apri con (open with) menu picks one for a single time.

Editing the .env

The .env editor for Shop, with secret keys masked.

The Ambiente (environment) panel, next to Log, shows the variables of the app's environment files, one file at a time. You can change a value, add a variable at the end or delete one (and Ripristina, restore it, until you save). Salva (save, ⌘S) writes the file.

The rest of the file does not change by a single byte: comments, blank lines, quotes, export and line endings stay as you wrote them. Lines the app cannot interpret are left there, untouched, and multi-line values are shown but not editable: for those there is Apri nell'editor (open in editor).

If another program changes the file while you are editing it, Statio Deploy notices and, before saving, asks whether to Ricarica (reload) the version on disk or Sovrascrivi (overwrite) it. Before every save, the previous version is copied into Statio Deploy's data, outside the project.

Statio Deploy does not pass the variables to the app: the app itself reads its .env when it starts. That is why, if you change it while the app is running, you are prompted to restart it.

Ports in use

Sales Dashboard stopped, with a warning that port 8501 is taken by a python process.

Before starting an app, Statio Deploy checks the port in its address. If it is already taken, it tells you by whom, another Statio Deploy app or an unrelated process, and lets you choose: stop the other process, start anyway or cancel.

A stopped app whose port is in use also shows a warning in the list: usually it is a copy left running in a terminal.

The menu bar panel: apps with their status, buttons to open, start or stop them, and stop all.

The quickest way to use Statio Deploy is the panel in the menu bar. The icon (a stack of cards, with a dot when something is running) opens it with all your apps in a column: for each one the status dot, the name, the button to open it in the browser, if it has an address, and the one to start or stop it. Clicking the name opens the main window on that app. At the top is the number of running apps; at the bottom Ferma tutto (stop all), Apri Statio Deploy (open Statio Deploy) and Esci da Statio Deploy (quit). The panel works even with the main window closed, and can be hidden in Settings.

The Dock icon shows the number of running apps. If an app exits on its own, you get a notification: one click and Statio Deploy opens on that app, with the log telling you why.

Processes left running

Statio Deploy keeps track of the processes it starts. If it quits unexpectedly (a crash, a forced shutdown), on the next launch it finds the apps left running and shows a warning: you can stop them or ignore them. Their log is no longer available, because there is no way to reattach to a process started earlier.

AI agents

Statio Deploy includes an MCP server, the protocol AI agents use to work with external tools. Connected to Claude Code, Claude Desktop, Cursor, Codex or another MCP client, the agent can list your apps, read their status, logs and .env, look up a project's commands and, if you allow it, start, stop, add and edit apps for you.

It is off by default: turn it on in Settings › Agenti AI (AI agents) with Consenti agli agenti AI di gestire Statio Deploy (let AI agents manage Statio Deploy). Below, the Permessi (permissions) come in groups: reading apps, status, logs and .env; starting, stopping and opening apps; adding, editing and removing apps; editing .env files. Apart from reading, each group stays off until you turn it on.

Values of keys containing SECRET, TOKEN, PASSWORD, KEY, PRIVATE or CREDENTIAL reach the agent masked, in .env files and in logs, unless you turn on Consenti di leggere i valori sensibili (allow reading sensitive values). With Chiedi conferma per le azioni a rischio (ask before risky actions, on by default) Statio Deploy asks you before starting a command you never started yourself or that an agent changed, and before stop all. Adding apps, changing their command or folder, removing them and deleting variables always asks for confirmation.

In Configura un client (set up a client) you pick your client and copy the ready-made configuration; for Claude Desktop there is Aggiungi a Claude Desktop (add to Claude Desktop). The connection goes through a small program inside the app and opens no network ports. For clients that cannot launch local programs there is the Server HTTP locale (local HTTP server): it listens only on 127.0.0.1 and requires a token. Agents that live only in the browser, such as ChatGPT on the web, cannot connect. The Registro attività (activity log) lists every agent operation, with client, time and outcome.

Settings and data

In Settings (⌘,) you choose the theme (system, light or dark), the default browser, the menu bar icon, notifications and launch at login. If macOS asks you to approve it, you will find it in System Settings, under Login Items.

All data lives in ~/Library/Application Support/Local Deploy/: the list of apps (apps.json), the copies of edited .env files (env-backups/, the last ten per file) and the processes started (running.json). The folder still has the app's original name, so existing users' data stays where it is.