Zinnector® CLI

Ogni comando, direttamente da --help

Zinnector® 0.1.6 crea un sito WordPress sul Suo computer senza installare altro che Node, lo verifica rispetto allo slot di hosting su cui sta per effettuare il deployment e lo invia. Questa pagina è generata dalle definizioni dei comandi della CLI stessa — gli stessi oggetti da cui stampa zinnector --help — quindi non può essere in contrasto con lo strumento che ha installato.

Tutta la documentazione per sviluppatori →

43 comandi in Zinnector® 0.1.6.

Installalo

Un solo comando, su Node 24 o versioni successive. Gratuito e con licenza MIT; creare lo scaffolding ed eseguire un sito in locale non richiede alcun account.

npm install -g zinnector

Node 24 o versione successiva

Esegua node --version; deve stampare v24 o versione successiva. Installi la versione LTS corrente da nodejs.org — su Windows, winget install OpenJS.NodeJS.LTS; su macOS, brew install node@24.

Hai visualizzato EBADENGINE?

In questo modo npm La informa che la Sua versione di Node è precedente a 24. L'installazione viene comunque completata, ma la CLI rifiuta di avviarsi e lo segnala. Aggiorni Node ed esegua nuovamente l'installazione.

Utilizza Node 26 o una versione successiva?

La CLI funziona correttamente. Il runtime di WordPress scaricato include un modulo nativo con binari precompilati solo per Node 24 e 25, pertanto al primo utilizzo Zinnector® scarica anche un Node 24 destinato esclusivamente al runtime — circa 30 MB, verificati rispetto ai checksum di nodejs.org. Nessun compilatore, nessun Visual Studio, nulla da fare manualmente.

Verifichi che funzioni — due minuti, nessun account richiesto

Esegua questi passaggi in ordine. Sotto ciascuno di essi è illustrato l'esito corretto, così da capire all'istante se qualcosa non va.

  1. Installalo

    npm install -g zinnector

    Operazione riuscita: npm termina senza alcun avviso EBADENGINE.

  2. Verifica la versione

    zinnector --version

    Operazione riuscita: un numero di versione. Su un Node precedente al 24, stampa un messaggio indicante che è necessario Node 24 o versione successiva ed esce.

    0.1.6
  3. Legga la guida

    zinnector --help

    Operazione riuscita: un banner che indica i cinque comandi del flusso, quindi ciascun comando con una riga di descrizione dello scopo — l'elenco presente in questa pagina.

      new       scaffold a WordPress project you can run immediately
      dev       run this project locally — no Docker required
      login     sign in — with your own account in the browser, or with an API key
      logout    forget a stored sign-in
      whoami    show who this CLI is signed in as, and what it can reach
      …
  4. Genera la struttura del sito

    zinnector new my-site

    Operazione riuscita: un'intestazione "Created my-site", i file scritti e i comandi successivi da eseguire. Nessun elemento al suo interno è un segnaposto.

    Created my-site  ·  site
      + zinnector.json
      + wp-content/…
    → run it:
        cd my-site
        zinnector dev
  5. Esegui

    cd my-site
    zinnector dev

    Al primo avvio viene richiesto una volta di scaricare il runtime di WordPress (circa 570 MB, conservati nella cache di Zinnector®). Operazione riuscita: una riga "running at" con un indirizzo locale.

    ✔ running at http://127.0.0.1:9400
      admin: http://127.0.0.1:9400/wp-admin  (already signed in)
  6. Aprirlo in un browser

    open http://127.0.0.1:9400

    Successo: un nuovo sito WordPress intitolato “My WordPress Website” e /wp-admin apre la dashboard già con l'accesso effettuato. Inserisci un plugin in wp-content/plugins e sarà presente al successivo ricaricamento.

    Tutto quanto sopra funziona senza un account. Il collegamento, il controllo preliminare e il push richiedono una chiave API dalla dashboard e un sito sull'hosting Zinn Digital®.

Il flusso: creazione, sviluppo, collegamento, verifica, push

Sei comandi da zero a un sito live. zinnector new stampa questo elenco al termine, quindi non dovrete mai ricordarlo.

zinnector new my-site      # scaffold a project that boots immediately
cd my-site
zinnector dev              # a real WordPress, locally, with no Docker

zinnector login            # once, when you have hosting
zinnector link             # point the project at a slot
zinnector check            # pre-flight: what will NOT match on the slot?
zinnector push             # push your commits, deploy, watch it finish

Quello centrale è il punto essenziale. zinnector check confronta ciò che ha creato — versione di PHP, disco, numero di file, versione di WordPress — con lo slot in cui sta per effettuare il deploy, segnala ogni mancata corrispondenza e ogni confronto che non è stato in grado di eseguire, e poi Le consente comunque di procedere con il deploy, perché Lei conosce sul Suo sito elementi che un verificatore non conosce.

Riferimento comandi

Tutti i 43 comandi, nell'ordine in cui zinnector --help li elenca. Gli output contrassegnati come “captured” sono stati incollati da un'esecuzione reale di questa versione; il resto mostra il formato esatto stampato dal comando, con valori di esempio: i Vostri domini, ID e cifre saranno diversi.

Opzioni globali, accettate prima di qualsiasi comando:

OpzioneCosa fa
-V, --versionprint the version
--profile <name>use a named credential profile
-h, --helpMostra la guida per qualsiasi comando.

zinnector new

scaffold a WordPress project you can run immediately

zinnector new [options] [name]
ArgomentoObbligatorioCosa fa
nameNodirectory to create the project in, and the project's name — required unless --here
OpzioneCosa faPredefinito
-t, --template <kind>one of: site, plugin, theme"site"
--php <version>PHP version to develop against"8.3"
--wp <version>WordPress version for the local runtime"latest"
--runtime <name>playground or docker"playground"
--herescaffold into the current directory instead of a new one

Esempio

zinnector new my-site

Cosa visualizza — captured — 0.1.2 on Linux

Created my-site  ·  site
──────────────────────────

  + .gitignore
  + README.md
  + wp-content/mu-plugins/000-zinnector-dev.php
  + wp-content/plugins/.gitkeep
  + wp-content/themes/.gitkeep
  + zinnector.json

  php        8.3
  wordpress  latest
  runtime    playground

→ run it:
    cd my-site
    zinnector dev

→ then, when you have a hosting slot:
    zinnector link     # point it at a site
    zinnector check    # pre-flight before you push
    zinnector push

zinnector dev

run this project locally — no Docker required

zinnector dev [options]
OpzioneCosa faPredefinito
--php <version>PHP version to run (5.2–8.5 on playground, 7.4–8.5 on docker)
--wp <version>WordPress version
-p, --port <port>port to serve on
--runtime <name>playground (default) or docker
--loginlog in as admin automaticallytrue
--no-logindo not log in automatically
--onceboot, report what is running, then stop
--yesinstall the local runtime without asking
--reset-runtimedelete the installed runtime and install it again
-v, --verboseshow the runtime's own output

Esempio

cd my-site
zinnector dev

Cosa visualizza — captured — 0.1.2. The first run asks once to download the WordPress runtime (~570 MB); pass --yes to skip the question

my-site  ·  WordPress Playground (WASM, no Docker)
───────────────────────────────────────────────────

  serving    a WordPress project
  from       /home/you/my-site
  php        8.3
  wordpress  latest

✔ running at http://127.0.0.1:9400
  admin: http://127.0.0.1:9400/wp-admin  (already signed in)

  Ctrl-C to stop

zinnector login

sign in — with your own account in the browser, or with an API key

zinnector login [options]
OpzioneCosa faPredefinito
--profile <name>store under a named profile (default: default)
--api <url>API base URL"https://api.zinndigital.com"
--api-keypaste a per-organisation API key instead of signing in as yourself
--issuer <url>the sign-in service"https://auth.zinndigital.com/realms/zinn"
--no-browserprint the sign-in link without trying to open a browser

Esempio

zinnector login

Cosa visualizza — the key is typed at the prompt, never on the command line. In CI, pipe it: echo "$ZINN_API_KEY" | zinnector login --profile ci

Sign in to Zinn Digital  ·  https://api.zinndigital.com
────────────────────────────────────────────────────

  API key: ••••••••••••••••••••••••••••

✔ signed in as you@example.com (Acme Ltd) — profile “default”
→ next: zinnector sites

zinnector logout

forget a stored sign-in

zinnector logout [options]
OpzioneCosa faPredefinito
--profile <name>which profile to forget (default: default)

Esempio

zinnector logout

Cosa visualizza

✔ signed out of profile “default”

zinnector whoami

show who this CLI is signed in as, and what it can reach

zinnector whoami [options]
OpzioneCosa faPredefinito
--profile <name>use a named profile
--scopeslist the permissions an API key carries
--jsonmachine-readable output

Esempio

zinnector whoami --scopes

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Signed in  ·  https://api.zinndigital.com
──────────────────────────────────────────
account        you@example.com
as             a person, signed in through the browser
organisations  8 — listed below
mode           live
credential     profile “default”

  · Example Org  owner · 01a00000-0000-7000-8000-000000000000
  · Example Org· 01a00001-0000-7000-8000-000000000001
  · Example Org· 01a00002-0000-7000-8000-000000000002
  · Example Org· 01a00003-0000-7000-8000-000000000003
  · Example Org· 01a00004-0000-7000-8000-000000000004
  · Example Org· 01a00005-0000-7000-8000-000000000005
  · Example Org· 01a00006-0000-7000-8000-000000000006
  · Example Org· 01a00007-0000-7000-8000-000000000007

  scopes belong to API keys — a signed-in person acts with their ROLE in each organisation (shown above).

zinnector sites

list the sites this key can see

zinnector sites [options]
OpzioneCosa faPredefinito
--jsonmachine-readable output
--status <status>only sites in this status

Esempio

zinnector sites

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Sites  ·  12
─────────────
domain          status  php      target  id
example-2.com   active  php —    fleet   01a00000-0000-7000-8000-000000000000
example-3.com   active  php —    fleet   01a00001-0000-7000-8000-000000000001
example-4.com   active  php —    fleet   01a00002-0000-7000-8000-000000000002
example-5.com   active  php 8.5  fleet   01a00003-0000-7000-8000-000000000003
example-6.com   active  php —    fleet   01a00004-0000-7000-8000-000000000004
example.com     active  php 8.4  fleet   01a00005-0000-7000-8000-000000000005
example-7.com   active  php —    fleet   01a00006-0000-7000-8000-000000000006
example-8.com   active  php 8.5  fleet   01a00007-0000-7000-8000-000000000007
example-9.com   active  php 8.5  fleet   01a00008-0000-7000-8000-000000000008
example-10.com  active  php 8.5  fleet   01a00009-0000-7000-8000-000000000009
example-11.com  active  php 8.5  fleet   01a00010-0000-7000-8000-000000000010
example-12.com  active  php 8.5  fleet   01a00011-0000-7000-8000-000000000011

zinnector status

everything the platform knows about one site

zinnector status [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector status example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


example.com  ·  01a00000-0000-7000-8000-000000000000
────────────────────────────────────────────────────────────────────────
status         active
product line   footprint_free
stack          wordpress
region         fsn1
deploy target  fleet
plan           PBN 10

● PHP
version        8.4
can switch to  8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.4

● Quota
disk      188 MB used of 500.0 GB
files     6,313 of 2,000,000
database  1 MB

● Deploy
status         building
target         fleet
repository     —
commit         —
live url       —
last deployed  2026-09-14T01:29:26.991511Z

● WordPress
version     7.1
up to date  yes
multisite   no

zinnector share

give one person access to ONE site — a developer, a designer, a client

zinnector share [options] <site> <email>
ArgomentoObbligatorioCosa fa
sitesìthe site to share — an id, primary domain or name
emailsìwho to give access to — they are emailed an invitation if they have no account yet
OpzioneCosa faPredefinito
--role <role>what they may do: viewer, editor, manager
--reason <text>why they need it — kept with the grant for the audit trail
--until <date>when access ends on its own (YYYY-MM-DD); omit for until-revoked
--jsonmachine-readable output

Esempio

zinnector share example.com dev@agency.test --role editor --reason "rebuild the checkout"

Cosa visualizza — the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ

Shared example.com  ·  01a03f39-730a-7dc4-84b0-5d4f7582dd04
────────────────────────────────────────────────────────────

✔ invited dev@agency.test as editor
  They have no account yet, so an invitation has been emailed. Until they
  sign in and accept it they can see nothing; the moment they do, the site is theirs.

→ what they do next, on their own machine:
    npm i -g zinnector && zinnector login   # sign in as themselves
    zinnector clone example.com   # pull the files down

zinnector collaborators

who has been given access to a site, and whether they have accepted

zinnector collaborators [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector collaborators example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ


Access to example.com  ·  3
───────────────────────────────────────────────────────────
who              role    status   ends  why                                          grant
dev@agency.test  viewer  revoked  —     Example Org— revoked immediately after       01a00000-0000-7000-8000-000000000000
dev@agency.test  viewer  revoked  —     Example Org— revoked at the end of the walk  01a00001-0000-7000-8000-000000000001
dev@agency.test  editor  revoked  —     Example Org— revoked at the end of the walk  01a00002-0000-7000-8000-000000000002

zinnector unshare

take a person's access to a site back — by email or grant id

zinnector unshare [options] <site> <who>
ArgomentoObbligatorioCosa fa
sitesìthe site to take access back on — an id, primary domain or name
whosìthe person to remove — their email address, or the grant id from zinnector collaborators
OpzioneCosa faPredefinito
--yesdo not ask

Esempio

zinnector unshare example.com dev@agency.test --yes

Cosa visualizza — the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ

✔ withdrew the invitation to dev@agency.test

zinnector invitations

the invitations waiting for you, and accept one

zinnector invitations [options] [command]

Esempio

zinnector invitations

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ; with no subcommand it runs `list`


Invitations  ·  0
──────────────────

● nothing waiting for you

zinnector invitations list

invitations addressed to the account you are signed in as

zinnector invitations list [options]
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector invitations list

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ


Invitations  ·  0
──────────────────

● nothing waiting for you

zinnector invitations accept

accept an invitation — the site is yours the moment this returns

zinnector invitations accept [options] <id>
ArgomentoObbligatorioCosa fa
idsìthe invitation id from zinnector invitations — a unique prefix of it is enough

Esempio

zinnector invitations accept 01a03f39-9c11-7b02-a7e0-2e4d0c5f1b77

Cosa visualizza — the exact shape the command prints, from the source (W40-DEVTOOL added these after this file was last captured); your domains, ids and dates will differ

✔ you now have access to example.com

zinnector pull

pull a hosted site's files into this project for local dev — and re-run to re-sync

zinnector pull [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--via <seam>auto (default), git, or backup"auto"
--freshtake a new backup rather than using the latest one (spends an on-demand slot)
--max-age <hours>accept the latest backup if it is younger than this"24"
--fullthe whole document root, WordPress core included (default: wp-content only)
--no-uploadsleave wp-content/uploads (media) behind
--no-databaseleave the site's database behind — take the files only
--live-configalso write wp-config.php — it holds the LIVE database credentials
--cleanempty wp-content before extracting, so deletions on the site are mirrored
--dry-runsay what would happen and stop
--yesdo not ask

Esempio

zinnector pull

Cosa visualizza

Pull example.com  ·  01a03f39-730a-7dc4-84b0-5d4f7582dd04
─────────────────────────────────────────────────────────────

● via git — the site syncs to its own repository and this is a clone of it
✔ fast-forwarded 3 commits 4f1c2a9b → 9d2e7c14

● not synced, and why
  ✖ database                     the local playground has its own; the site's is not copied
  ✖ offloaded media              objects in storage are not in the site's files
  ✖ anything outside the repository  only wp-content syncs

→ next: zinnector dev

zinnector clone

make a local project from a hosted site: clone its repository or pull its files

zinnector clone [options] <site> [dir]
ArgomentoObbligatorioCosa fa
sitesìthe hosted site to copy — an id, primary domain or name
dirNodirectory to create — defaults to the site's primary domain
OpzioneCosa faPredefinito
--via <seam>auto (default), git, or backup"auto"
--freshtake a new backup rather than using the latest one
--fullthe whole document root, WordPress core included
--no-uploadsleave wp-content/uploads (media) behind
--no-databaseleave the site's database behind — take the files only
--live-configalso write wp-config.php — it holds the LIVE database credentials
--yesdo not ask

Esempio

zinnector clone client.example.com

Cosa visualizza

Clone client.example.com  ·  client.example.com
──────────────────────────────────────────────────────

✔ wrote client.example.com/zinnector.json (php 8.3, wordpress 6.7.1)
● via backup — the site does not sync to a repository
✔ downloaded 214 MB and extracted wp-content

● not synced, and why
  ✖ database                     the local playground has its own; the site's is not copied
  ✖ offloaded media              objects in storage are not in the site's files
  ✖ wp-config.php                holds the live database credentials (--live-config to write it)
  ✖ WordPress core               the runtime supplies the version the slot runs (--full to take it)

→ next: zinnector dev

→ run it:
    cd client.example.com
    zinnector dev

zinnector sync

two-way sync between a site's live files and its repository

zinnector sync [options] [command]

Esempio

zinnector sync --help

Cosa visualizza — with no subcommand, `zinnector sync <site>` is `sync status`

Usage: zinnector sync [options] [command]

two-way sync between a site's live files and its repository

  site → repository   zinnector sync run   commits the live files and pushes the branch
  repository → site   zinnector push       builds the branch and publishes it

zinnector sync status

where two-way sync stands, and its last runs

zinnector sync status [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector sync status example.com

Cosa visualizza — captured from a real run of 0.1.4 against a test site on 2026-09-12; the domain and ids are replaced with example values

Two-way sync — example.com
──────────────────────────

repository   acme/example-site (main)
available    yes
sync         on
state        synced
last sync    2026-09-12T22:51:41.539832Z
note         Started from acme/example-site@main.

run        files       commit         when
synced     2 changed   da85d73cef5f   2026-09-12T22:52:10.117301Z

zinnector sync on

turn two-way sync on (pushes nothing by itself)

zinnector sync on [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--subdir <path>only sync this subdirectory of the site
--jsonmachine-readable output

Esempio

zinnector sync on example.com

Cosa visualizza — needs a repository connected on your own GitHub account; it pushes nothing by itself

✔ two-way sync is on

Two-way sync — example.com
…
→ next: zinnector sync run

zinnector sync off

turn two-way sync off

zinnector sync off [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--subdir <path>only sync this subdirectory of the site
--jsonmachine-readable output

Esempio

zinnector sync off example.com

Cosa visualizza

✔ two-way sync is off

zinnector sync run

commit the site's live files to its repository now

zinnector sync run [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector sync run example.com

Cosa visualizza — captured from a real run of 0.1.4 against a test site on 2026-09-12; the domain and ids are replaced with example values. A run the repository has moved past is HELD instead: nothing is pushed or overwritten, the command exits 1 and names the next step

✔ committed 2 changed files da85d73cef5f

Two-way sync — example.com
…
→ next: git pull in your clone

zinnector sync resolve

clear a held sync by choosing which side wins

zinnector sync resolve [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--keep <side>site (commit the site on top) or repository (discard the site's unsynced changes)
--yesdo not ask
--jsonmachine-readable output

Esempio

zinnector sync resolve example.com --keep repository --yes

Cosa visualizza — captured from a real run of 0.1.4 against a test site on 2026-09-12; the domain and ids are replaced with example values. Without --yes it asks first, and refuses outright when there is no terminal to ask in

✔ kept the repository

Two-way sync — example.com
…
state        synced

zinnector check

compare this project against the slot you are about to deploy to

zinnector check [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--probeboot the local runtime and MEASURE its php, rather than trusting zinnector.json
--allshow passing checks too
--strictalso fail when something could not be checked
--jsonmachine-readable output

Esempio

zinnector check

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted — the run found a real mismatch (PHP 8.3 in the project against 8.4 on the slot), which is the whole point of the command

→ reading the slot
  size excludes: .git

Pre-flight — example.com  ·  01a00000-0000-7000-8000-000000000000
────────────────────────────────────────────────────────────────────────

  local  php 8.4  3 files, 0.0 MB
  slot   php 8.4  target fleet
  local php is the version DECLARED in zinnector.json — run with --probe to measure it

  ? unknown   local php extensions could not be enumerated
      try zinnector dev --once

  ? unknown   wordpress versions could not be compared
      No WordPress version found in the working copy.
      try zinnector status

  7 passed  ·  2 could not be checked

zinnector push

pre-flight, push your commits, and deploy

zinnector push [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
-f, --forcedeploy even when pre-flight has findings
--skip-checksdo not run pre-flight at all
--probemeasure the local runtime during pre-flight instead of trusting zinnector.json
--no-waittrigger the deploy and exit without watching it
--no-gitdo not run git push; deploy whatever the platform already has
--dry-rundo everything except the deploy

Esempio

zinnector push

Cosa visualizza

Deploy to example.com  ·  01a03f39-730a-7dc4-84b0-5d4f7582dd04
───────────────────────────────────────────────────────────────

✔ pre-flight: 8 passed  ·  0 to look at  ·  2 could not be checked
→ pushing main (4f1c2a9b add the contact form)
✔ pushed
● deploy 7c0e… started — watching
✔ deployed 4f1c2a9b in 48s

  status    success
  commit    4f1c2a9b
  url       https://example.com

zinnector deploy

redeploy what the platform already has, without pushing

zinnector deploy [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--no-waittrigger and exit

Esempio

zinnector deploy example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Redeploy example.com  ·  01a00000-0000-7000-8000-000000000000
────────────────────────────────────────────────────────────────────────
→ starting the deploy
✔ deploy started

zinnector deploys

a site's deploy history

zinnector deploys [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output
-n, --limit <n>how many to show"10"

Esempio

zinnector deploys example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Deploys — example.com  ·  2
───────────────────────────────────────────────────────────
status  commit  branch  trigger  started                      message
live    —       —       manual   2026-09-14T09:06:39.685554Z  —
live    —       —       manual   2026-09-14T01:29:20.196957Z  —

zinnector php

show or switch a site's PHP version

zinnector php [options] [version]
ArgomentoObbligatorioCosa fa
versionNothe PHP version to switch the site to, e.g. 8.4 — omit to show the current one
OpzioneCosa faPredefinito
-s, --site <site>site id or domain
--listlist the versions the platform offers
--jsonmachine-readable output

Esempio

zinnector php 8.3 --site example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. with no version it shows the current one; --list shows what the platform offers for this site's product line


PHP — example.com
──────────────────────────────────────────────────────
version        8.4
can switch to  8.5, 8.4, 8.3, 8.2, 8.1, 8.0, 7.4

zinnector quota

disk, files and database usage against what the plan grants

zinnector quota [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector quota example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Quota — example.com
────────────────────────────────────────────────────────
disk used      188 MB
disk limit     500.0 GB
disk granted   500 GB  (per_site)
files used     6,313
file limit     2,000,000
database       1 MB

  “limit” is what is enforced today; “granted” is what the plan says.

zinnector db

database size, and single-use links into phpMyAdmin and the file manager

zinnector db [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector db example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. the phpMyAdmin and file-manager links are single-use and expire; do not paste them anywhere


Database — example.com
───────────────────────────────────────────────────────────
size    1 MB
tables  14

  single-use links, valid for one visit:
  phpMyAdmin    https://pma.example.com/signon.php?t=<single-use>
  file manager  https://files.example.com/signon.php?t=<single-use>

zinnector logs

tail a site's access and error logs

zinnector logs [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--accessonly the access log
--erroronly the error log
--buildthe build log of the most recent deploy instead
--jsonmachine-readable output

Esempio

zinnector logs example.com --error

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. --access for the access log, --build for the last deploy's build log (a site not built by a build provider shows the deploy's own steps); with no flag both site logs are shown, and a log that could not be read says so instead of looking empty


Error log — example.com
────────────────────────────────────────────────────────────

2026-09-14 11:06:07.153643 [NOTICE] [1929978] [T0] [config:vhost:zcaffb6eec5abbdab03fb9b2d62a15:epsr:lsphp-zcaffb6eec5abbdab03fb9b2d62a15]'Process Limit' probably is too low, adjust the limit to: 640.
2026-09-14 11:06:37.873060 [INFO] [1929982] [T0] [lsphp-zcaffb6eec5abbdab03fb9b2d62a15] add child process pid: 1933036, procinfo: 0x5555561cfe30

zinnector wp

run an allow-listed WP-CLI command on a site

zinnector wp [options] [command...]
ArgomentoObbligatorioCosa fa
command...Nothe WP-CLI command and its arguments, e.g. plugin list — omit it with --commands
OpzioneCosa faPredefinito
-s, --site <site>site id or domain
--commandslist what the platform will run
--jsonmachine-readable output

Esempio

zinnector wp plugin list --site example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. the allow-list is served by the platform — zinnector wp --commands prints it

name	status	update	version	update_version	auto_update
akismet	inactive	none	5.7.2		off
hello	inactive	none	1.7.2		off
imunify-security	active	none	4.1.0		off
litespeed-cache	active	none	7.9.1		off
redis-cache	active	none	2.8.0		off
zinn-cache	active	none	1.2.2		off
object-cache.php	dropin				off

zinnector backup

list and take site backups

zinnector backup [options] [command]

Esempio

zinnector backup list example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. `backup` on its own prints its subcommands; see `backup list` and `backup now` below


Backups — example.com  ·  3
───────────────────────────────────────────────────────────
status  taken                        size    id
stored  2026-09-14T09:06:39.918280Z  4.7 MB  01a00000-0000-7000-8000-000000000000
stored  2026-09-14T01:29:20.403161Z  36 MB   01a00001-0000-7000-8000-000000000001
stored  2026-09-14T01:29:15.898099Z  36 MB   01a00002-0000-7000-8000-000000000002

daily backups   on
retention       30 days
off-site copy   yes
on-demand left  2 of 3

zinnector backup list

list a site's backups and what its plan grants

zinnector backup list [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector backup list example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Backups — example.com  ·  3
───────────────────────────────────────────────────────────
status  taken                        size    id
stored  2026-09-14T09:06:39.918280Z  4.7 MB  01a00000-0000-7000-8000-000000000000
stored  2026-09-14T01:29:20.403161Z  36 MB   01a00001-0000-7000-8000-000000000001
stored  2026-09-14T01:29:15.898099Z  36 MB   01a00002-0000-7000-8000-000000000002

daily backups   on
retention       30 days
off-site copy   yes
on-demand left  2 of 3

zinnector backup now

take an on-demand backup

zinnector backup now [options] [site]
ArgomentoObbligatorioCosa fa
siteNoa site id, primary domain or name — defaults to the site linked in zinnector.json

Esempio

zinnector backup now example.com

Cosa visualizza

✔ backup started — zinnector backup list example.com shows it when it completes

zinnector domains

list the domains this key can see

zinnector domains [options]
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector domains

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Domains  ·  1
──────────────
domain       status     ownership  renewal        expires
example.com  connected  connected  no auto-renew  —

zinnector dns

read and change DNS records

zinnector dns [options] [command]

Esempio

zinnector dns list example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. `dns` on its own prints its subcommands; see `dns list`, `dns add` and `dns rm` below


DNS — example.com  ·  1 records
────────────────────────────────────────
type  name          value               ttl
TXT   w4357-verify  zinn-w4357-updated  ttl 3600

zinnector dns list

list a domain's DNS records

zinnector dns list [options] <domain>
ArgomentoObbligatorioCosa fa
domainsìthe domain, by name or id
OpzioneCosa faPredefinito
--type <type>only records of this type
--jsonmachine-readable output

Esempio

zinnector dns list example.com

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


DNS — example.com  ·  1 records
────────────────────────────────────────
type  name          value               ttl
TXT   w4357-verify  zinn-w4357-updated  ttl 3600

zinnector dns add

create a DNS record

zinnector dns add [options] <domain> <type> <name> <value>
ArgomentoObbligatorioCosa fa
domainsìthe domain, by name or id
typesìrecord type: A, AAAA, CNAME, MX, TXT, SRV, …
namesìthe record name — @ for the domain itself, or a subdomain label
valuesìwhat the record points at — an address, a hostname or text
OpzioneCosa faPredefinito
--ttl <seconds>time to live"3600"
--priority <n>priority, for MX and SRV
--proxiedroute through the CDN
-y, --yesdo not ask

Esempio

zinnector dns add example.com TXT _acme "token" --ttl 300

Cosa visualizza — the record is shown and confirmed before it is written; pass --yes to skip the question

Add a DNS record to example.com
───────────────────────────────

  type   TXT
  name   _acme
  value  "token"
  ttl    300

  create it? [y/N] y
✔ created TXT _acme

zinnector dns rm

delete a DNS record

zinnector dns rm [options] <domain> <recordId>
ArgomentoObbligatorioCosa fa
domainsìthe domain, by name or id
recordIdsìthe record id, as zinnector dns list prints it
OpzioneCosa faPredefinito
-y, --yesdo not ask

Esempio

zinnector dns rm example.com rec_7f3a

Cosa visualizza

⚠ deleting A @ 203.0.113.10 from example.com
  delete it? [y/N] y
✔ deleted

zinnector mail

list mail services

zinnector mail [options]
OpzioneCosa faPredefinito
--jsonmachine-readable output

Esempio

zinnector mail

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted


Mail services  ·  0
────────────────────

● no mail services

zinnector bulk

run one operation across many sites (cache_purge, malware_scan, sitemap, block_ip)

zinnector bulk [options] <operation>
ArgomentoObbligatorioCosa fa
operationsìwhat to run on every selected site: cache_purge, malware_scan, sitemap or block_ip
OpzioneCosa faPredefinito
--allevery site this key can see
--site <site...>specific sites, by id or domain
--status <status>every site in this status
-y, --yesdo not ask
--jsonmachine-readable output

Esempio

zinnector bulk cache_purge --all

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. one call to the platform for the whole selection, not one per site; the selection is shown and confirmed first


Bulk cache_purge  ·  1 sites
─────────────────────────────

·   example.com

→ running cache_purge
✔ cache_purge accepted for 1 sites

  The platform runs this asynchronously; results appear per site in the dashboard.

zinnector ai

ask the Zinn Digital assistant, with this project as context

zinnector ai [options] <question...>
ArgomentoObbligatorioCosa fa
question...sìwhat you want to ask, in plain words — quoting it is optional
OpzioneCosa faPredefinito
-s, --site <site>ask about a particular site
--org <id>the organisation to ask as, when your account belongs to more than one
--no-contextdo not send anything about the local project
--jsonmachine-readable output

Esempio

zinnector ai "why is my deploy failing?"

Cosa visualizza — captured from a real run of 0.1.5 against production on 2026-09-14; domains, ids and single-use links substituted. The assistant answers in the ACCOUNT's language — this account's locale is Arabic, so the captured answer is Arabic to an English question

→ thinking

Zinn Digital assistant
────────────────────────────

  هذا مشروع WordPress تم إنشاؤه بواسطة Zinnector® (مُهيّأ على PHP 8.4، أحدث
  إصدار WordPress، وبيئة تشغيل playground)؛ لتشغيله محلياً، انتقل إلى مجلده
  وشغّل الأمر: cd <اسم-المشروع> ثم zinnector dev، وسيقوم بتشغيل موقع WordPress
  حقيقي على جهازك دون الحاجة إلى Docker.

  sources:
    · https://zinndigital.com/kb/zinnector-getting-started
    · https://zinndigital.com/kb/zinnector-local-development

zinnector mcp

run a stdio bridge to the hosted MCP server — for Claude Desktop and other local-only clients

zinnector mcp [options]

Esempio

ZINN_MCP_TOKEN=zmcp_live_… zinnector mcp

Cosa visualizza — started BY an AI client such as Claude Desktop, never by hand — it speaks MCP on stdin and stdout. Proven from Claude Code 2.1.270 against the live server on 2026-09-12

zinnector 0.1.4: MCP bridge to https://api.zinndigital.com/v1/mcp

Continua a leggere

Lo installi e avvii un sito nel giro di un minuto

Gratuito, con licenza MIT e ogni comando è un'operazione documentata nell'API pubblica: nulla qui può fare qualcosa che l'API non possa fare.

npm install -g zinnector