Преглед команди
Свих 43 команди, редоследом којим их zinnector --help наводи. Излази означени као „captured“ пренети су из стварног покретања ове верзије; остали приказују тачан облик који команда исписује, са примерним вредностима — ваши домени, идентификатори и бројке ће се разликовати.
Глобалне опције, прихваћене пре било које команде:
| Опција | Шта ради |
|---|
-V, --version | print the version |
--profile <name> | use a named credential profile |
-h, --help | Прикажите помоћ за било коју команду. |
zinnector new
scaffold a WordPress project you can run immediately
zinnector new [options] [name]
| Аргумент | Обавезно | Шта ради |
|---|
name | не | directory to create the project in, and the project's name — required unless --here |
| Опција | Шта ради | Подразумевано |
|---|
-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" |
--here | scaffold into the current directory instead of a new one | |
Пример
Оно што видите — 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 pushzinnector dev
run this project locally — no Docker required
| Опција | Шта ради | Подразумевано |
|---|
--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 | |
--login | log in as admin automatically | true |
--no-login | do not log in automatically | |
--once | boot, report what is running, then stop | |
--yes | install the local runtime without asking | |
--reset-runtime | delete the installed runtime and install it again | |
-v, --verbose | show the runtime's own output | |
Пример
Оно што видите — 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]
| Опција | Шта ради | Подразумевано |
|---|
--profile <name> | store under a named profile (default: default) | |
--api <url> | API base URL | "https://api.zinndigital.com" |
--api-key | paste a per-organisation API key instead of signing in as yourself | |
--issuer <url> | the sign-in service | "https://auth.zinndigital.com/realms/zinn" |
--no-browser | print the sign-in link without trying to open a browser | |
Пример
Оно што видите — 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]
| Опција | Шта ради | Подразумевано |
|---|
--profile <name> | which profile to forget (default: default) | |
Пример
Оно што видите
✔ signed out of profile “default”
zinnector whoami
show who this CLI is signed in as, and what it can reach
zinnector whoami [options]
| Опција | Шта ради | Подразумевано |
|---|
--profile <name> | use a named profile | |
--scopes | list the permissions an API key carries | |
--json | machine-readable output | |
Пример
zinnector whoami --scopes
Оно што видите — 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]
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
--status <status> | only sites in this status | |
Пример
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector status example.com
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
site | да | the site to share — an id, primary domain or name |
email | да | who to give access to — they are emailed an invitation if they have no account yet |
| Опција | Шта ради | Подразумевано |
|---|
--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 | |
--json | machine-readable output | |
Пример
zinnector share example.com dev@agency.test --role editor --reason "rebuild the checkout"
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector collaborators example.com
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
site | да | the site to take access back on — an id, primary domain or name |
who | да | the person to remove — their email address, or the grant id from zinnector collaborators |
| Опција | Шта ради | Подразумевано |
|---|
--yes | do not ask | |
Пример
zinnector unshare example.com dev@agency.test --yes
Оно што видите — 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]
Пример
Оно што видите — 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]
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector invitations list
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
id | да | the invitation id from zinnector invitations — a unique prefix of it is enough |
Пример
zinnector invitations accept 01a03f39-9c11-7b02-a7e0-2e4d0c5f1b77
Оно што видите — 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 link
point this project at a hosting slot (and connect its repository)
zinnector link [options] [site]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--repo <owner/name> | connect this repository to the site on the platform | |
--provider <name> | the connected account to deploy through: github_app, github or gitlab (default: the one your organisation has connected) | |
--branch <name> | branch a push deploys from | |
--no-repo | only write zinnector.json; do not touch the platform | |
Пример
zinnector link example.com --repo acme/example-site --branch main
Оно што видите
✔ this project deploys to example.com (01a03f39-730a-7dc4-84b0-5d4f7582dd04)
written to zinnector.json — commit it so everyone deploys to the same slot
✔ the platform will deploy acme/example-site (main)
→ next: zinnector check
zinnector pull
pull a hosted site's files into this project for local dev — and re-run to re-sync
zinnector pull [options] [site]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--via <seam> | auto (default), git, or backup | "auto" |
--fresh | take 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" |
--full | the whole document root, WordPress core included (default: wp-content only) | |
--no-uploads | leave wp-content/uploads (media) behind | |
--no-database | leave the site's database behind — take the files only | |
--live-config | also write wp-config.php — it holds the LIVE database credentials | |
--clean | empty wp-content before extracting, so deletions on the site are mirrored | |
--dry-run | say what would happen and stop | |
--yes | do not ask | |
Пример
Оно што видите
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]
| Аргумент | Обавезно | Шта ради |
|---|
site | да | the hosted site to copy — an id, primary domain or name |
dir | не | directory to create — defaults to the site's primary domain |
| Опција | Шта ради | Подразумевано |
|---|
--via <seam> | auto (default), git, or backup | "auto" |
--fresh | take a new backup rather than using the latest one | |
--full | the whole document root, WordPress core included | |
--no-uploads | leave wp-content/uploads (media) behind | |
--no-database | leave the site's database behind — take the files only | |
--live-config | also write wp-config.php — it holds the LIVE database credentials | |
--yes | do not ask | |
Пример
zinnector clone client.example.com
Оно што видите
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 devzinnector sync
two-way sync between a site's live files and its repository
zinnector sync [options] [command]
Пример
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector sync status example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--subdir <path> | only sync this subdirectory of the site | |
--json | machine-readable output | |
Пример
zinnector sync on example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--subdir <path> | only sync this subdirectory of the site | |
--json | machine-readable output | |
Пример
zinnector sync off example.com
Оно што видите
zinnector sync run
commit the site's live files to its repository now
zinnector sync run [options] [site]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector sync run example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--keep <side> | site (commit the site on top) or repository (discard the site's unsynced changes) | |
--yes | do not ask | |
--json | machine-readable output | |
Пример
zinnector sync resolve example.com --keep repository --yes
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--probe | boot the local runtime and MEASURE its php, rather than trusting zinnector.json | |
--all | show passing checks too | |
--strict | also fail when something could not be checked | |
--json | machine-readable output | |
Пример
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
-f, --force | deploy even when pre-flight has findings | |
--skip-checks | do not run pre-flight at all | |
--probe | measure the local runtime during pre-flight instead of trusting zinnector.json | |
--no-wait | trigger the deploy and exit without watching it | |
--no-git | do not run git push; deploy whatever the platform already has | |
--dry-run | do everything except the deploy | |
Пример
Оно што видите
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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--no-wait | trigger and exit | |
Пример
zinnector deploy example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
-n, --limit <n> | how many to show | "10" |
Пример
zinnector deploys example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
version | не | the PHP version to switch the site to, e.g. 8.4 — omit to show the current one |
| Опција | Шта ради | Подразумевано |
|---|
-s, --site <site> | site id or domain | |
--list | list the versions the platform offers | |
--json | machine-readable output | |
Пример
zinnector php 8.3 --site example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector quota example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--access | only the access log | |
--error | only the error log | |
--build | the build log of the most recent deploy instead | |
--json | machine-readable output | |
Пример
zinnector logs example.com --error
Оно што видите — 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...]
| Аргумент | Обавезно | Шта ради |
|---|
command... | не | the WP-CLI command and its arguments, e.g. plugin list — omit it with --commands |
| Опција | Шта ради | Подразумевано |
|---|
-s, --site <site> | site id or domain | |
--commands | list what the platform will run | |
--json | machine-readable output | |
Пример
zinnector wp plugin list --site example.com
Оно што видите — 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]
Пример
zinnector backup list example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
zinnector backup list example.com
Оно што видите — 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]
| Аргумент | Обавезно | Шта ради |
|---|
site | не | a site id, primary domain or name — defaults to the site linked in zinnector.json |
Пример
zinnector backup now example.com
Оно што видите
✔ backup started — zinnector backup list example.com shows it when it completes
zinnector domains
list the domains this key can see
zinnector domains [options]
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
Оно што видите — 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]
Пример
zinnector dns list example.com
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
domain | да | the domain, by name or id |
| Опција | Шта ради | Подразумевано |
|---|
--type <type> | only records of this type | |
--json | machine-readable output | |
Пример
zinnector dns list example.com
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
domain | да | the domain, by name or id |
type | да | record type: A, AAAA, CNAME, MX, TXT, SRV, … |
name | да | the record name — @ for the domain itself, or a subdomain label |
value | да | what the record points at — an address, a hostname or text |
| Опција | Шта ради | Подразумевано |
|---|
--ttl <seconds> | time to live | "3600" |
--priority <n> | priority, for MX and SRV | |
--proxied | route through the CDN | |
-y, --yes | do not ask | |
Пример
zinnector dns add example.com TXT _acme "token" --ttl 300
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
domain | да | the domain, by name or id |
recordId | да | the record id, as zinnector dns list prints it |
| Опција | Шта ради | Подразумевано |
|---|
-y, --yes | do not ask | |
Пример
zinnector dns rm example.com rec_7f3a
Оно што видите
⚠ deleting A @ 203.0.113.10 from example.com
delete it? [y/N] y
✔ deleted
zinnector mail
list mail services
| Опција | Шта ради | Подразумевано |
|---|
--json | machine-readable output | |
Пример
Оно што видите — 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>
| Аргумент | Обавезно | Шта ради |
|---|
operation | да | what to run on every selected site: cache_purge, malware_scan, sitemap or block_ip |
| Опција | Шта ради | Подразумевано |
|---|
--all | every site this key can see | |
--site <site...> | specific sites, by id or domain | |
--status <status> | every site in this status | |
-y, --yes | do not ask | |
--json | machine-readable output | |
Пример
zinnector bulk cache_purge --all
Оно што видите — 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...>
| Аргумент | Обавезно | Шта ради |
|---|
question... | да | what you want to ask, in plain words — quoting it is optional |
| Опција | Шта ради | Подразумевано |
|---|
-s, --site <site> | ask about a particular site | |
--org <id> | the organisation to ask as, when your account belongs to more than one | |
--no-context | do not send anything about the local project | |
--json | machine-readable output | |
Пример
zinnector ai "why is my deploy failing?"
Оно што видите — 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
Пример
ZINN_MCP_TOKEN=zmcp_live_… zinnector mcp
Оно што видите — 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