مرجع دستورها
همه 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