Skip to contentSkip to Content
CLI reference

CLI reference

Use the artor CLI to publish prototypes, read feedback, and manage your team’s shared setup. Run commands from your prototype’s folder. If you haven’t installed it yet, follow Installing the CLI.

Commands marked with the lock icon require an owner/admin role, or a Space admin where specified. Skills and templates use the organization’s manager setting, which defaults to admins. Project changes may also require a publisher seat and Space access.

If you belong to more than one organization, check Organization context before running commands in a new folder.

Help, references, and confirmations

  • Help: artor <command> --help, -h, or artor help <command> shows usage without running the command. Help works offline and before sign-in.
  • Names: most commands accept an exact name, ID, or unique part of a name. If several items match, Artor asks you to be more specific. link needs an exact project ID or slug.
  • Confirmations: destructive commands ask first. --yes or -y skips that question; unattended runs must include it when required. Use exact names or IDs when skipping confirmation for deletion, sharing, or access changes.
  • Overwriting files: pull --force needs exact project and organization references. It overwrites local files, so save anything you need first. skill pin --yes also needs an exact skill reference.
  • Flags: --flag value and --flag=value both work. Always provide the target value for organization, scope, version, and mode selectors.
  • Agent output: use --json where listed below for output an agent or script can read.
  • Color: NO_COLOR disables terminal colors. FORCE_COLOR enables them in redirected output; NO_COLOR takes priority.

For a public link, copy its ID from artor share list, or use a unique prefix of at least four characters. For a comment thread, use its full ID, short ID, or a quoted row number such as "#3". Use the same --version, --open, and guest filters you used to list it.

Version & update checks

CommandDescription
--version / -VShow the installed CLI version.
updateUpdate the CLI and your installed Artor skill. For a project-local or npx install, follow the command it prints.
installChoose which Artor agent integration to install.
install-claude-pluginInstall or update the Claude Code plugin.
install-skills / install-skillInstall the Artor skill in other supported coding tools.
update-skill [claude-plugin|skills]Update just the installed skill.
update --off / update --onDisable or enable automatic CLI updates.

Global and packaged installations can update automatically after an interactive command. Project-local installations, npx, and CI show an update notice instead. Set ARTOR_NO_AUTOUPDATE=1 to disable automatic CLI updates for one run.

If an upgrade is required to continue, an eligible installation updates and retries the command once. Otherwise, run artor update when prompted.

The CLI also reminds you when an Artor skill update is available. For optional automatic Claude Code plugin updates, see Keeping the skill up to date.

Auth & project

CommandDescription
loginOpen your browser to sign in and authorize this machine.
whoami [--json]Show your signed-in account and active organization.
status [--json]Show this folder’s linked prototype and organization; report setup problems.
logoutRemove the locally stored token. Revoke it in the dashboard to disable it everywhere.
init [--name <n>] [--org <ref>] [--space <ref>] [--folder <name|id>] [--template <ref>] [--here] [--no-install] [--no-git] [--json]Create and link a prototype in this folder. Artor asks where it belongs; use the flags to choose directly. --template uses a team starter, --here uses this folder, and --no-git skips Git setup. See Getting started.
link [<id|slug>] [--org <ref>] [--force]Link this folder to an existing prototype using its exact ID or slug. Use --force to replace an existing link.
unlink [--all] [--skills] [--npmrc] [--link-only]Local-only detach — removes the link and other local setup, never your code or the server project. See Unlinking a folder.
org list [--json]List the organizations you belong to; a star marks your saved default.
org use [<ref>]Save a default organization for commands run outside a linked folder. Omit the reference for a picker.
org membersList the organization’s members and roles; use their email addresses when adding people to Spaces.
project list [--json] / project search <query> [--json]Browse or search prototypes in the active organization.

Without a terminal or destination flags, init uses the Organization Space’s Draft folder. --folder selects an existing exact name or ID, or creates a folder if that name is new. An organization or Space that can’t be found stops setup; Artor doesn’t silently choose another.

Publish & view

CommandDescription
publish / push [--alias <name> | -v <name>] [-m <text>] [--label <text>] [--dir <path>] [--static] [--no-build] [--no-install] [--no-smoke] [--no-sdk-update] [--mocks=local|server] [--yes] [--json]Build and publish. latest moves to the published version; --alias (or -v) also updates a named link. Prefer --alias over the deprecated publish flag --version. See Publishing & frameworks for flags and version modes.
pull [--ref <r>] [--dir <path>] [--project <ref>] [--org <ref>] [--force]Download a version’s source and stay linked to its prototype. --project selects another prototype; --force overwrites local files and relinks the folder, requiring exact references. Environment and credential files are excluded. Private-package setup uses your own login; see Private registry.
dump [--all-versions] [--out <dir>]Export all accessible prototype source to ./artor-dump (or --out). Add --all-versions for history. Existing files are preserved; failed downloads are reported. Each run uses a dump credit: Starter gets 2 per 30 days; paid plans get 1 per 24 hours. If unavailable, the command says when to retry. Single-project pull has no dump allowance.
remix <project> [name] [--name <n>] [--ref <r>] [--dir <path>] [--org <ref>]Create an independent prototype from another version. Choose a name; the destination must be empty. Run artor publish from the new folder when ready. See Remix.
rename [<ref>] "New Name" [--org <ref>]Rename a project’s display name (owner/admin only).
rm [<ref>] [--org <ref>] [--yes] Admin access requiredMove a project to the trash. Recoverable for 30 days.
restore <ref> [--org <ref>] Admin access requiredRestore a trashed project.
trash [--org <ref>] [--json]List trashed projects in the active organization and how long each has left.
open [--version <n>] [--alias <name>] [--json]Open a version in the browser. With --json, print the URL without opening a browser.
logs [ref] [--json]Read recent output from a running prototype or its captured startup error. Defaults to latest. See Reading logs.
comments [--version <ref>] [--open] [--guests-only | --no-guests] [--json]Read feedback for the linked prototype, defaulting to latest. --open shows unresolved threads. Choose one guest filter to include only or exclude guest feedback. Guest names are unverified. See Comments.
comments resolve <thread> [listing flags] [--json] / comments reopen <thread> [listing flags] [--json]Mark a thread handled or reopen it. <thread> may be its full id, short id, or a quoted row such as "#3". Reuse the same listing flags you used to find it. See Resolving from the CLI.
comments ignore <thread> [listing flags] [--json] / comments unignore <thread> [listing flags] [--json]Exclude a thread from AI work, or include it again. See Excluding a thread from AI.

Changelog

Every version can carry a short note explaining what changed. Add it when publishing:

artor publish -m "Fixed navigation on mobile" artor publish --message "Updated the signup screen from review feedback"

The note appears beside the version in the dashboard. Owners and admins can edit it there later; changing the note does not change the prototype.

Notes support text and Markdown links, up to 2,000 characters. Images and embeds are not included. An empty note is ignored; an oversized note must be shortened before publishing.

The Artor Claude Code skill can draft the note from your changes. Review it before publishing. A message you provide yourself takes priority.

Reading a crashed version’s logs

artor logs latest artor logs v3 --json

Read a prototype’s error output to help your coding agent fix it. Use an alias or version number; without one, the command uses latest. You can also open the version’s Details → Logs in the dashboard.

A running version shows its recent output. A version that failed to start shows the captured startup error. If no output was captured, Artor reports “No logs captured.” Startup capture is limited to 512 KB per version and does not cover a crash that happens after startup.

Artor hides exact matches of saved environment values from logs. It may not recognize a value your prototype changed before printing, so check logs before sharing them. See Runtime errors for next steps.

Public sharing

Create a public link so someone without an Artor account can open a prototype. Choose whether they can comment when creating the link. See Public sharing for links, durations, and guest commenting.

CommandDescription
share add [--mode latest|pinned] [--deployment <id>] [--days <n>] [--warn] [--comments off|anonymous|name|name-email] [--hide-widget] [--password | --password-stdin]Create a link. latest follows new publishes; pinned selects --deployment. Duration defaults to 7 days, within the organization’s limit (maximum 90). --warn requests an expiry reminder. --comments chooses guest commenting; otherwise the terminal prompts with the organization default, and scripts use that default. --hide-widget creates the link with the in-page review widget hidden from signed-in organization members; it takes no value. --password asks for a link password; --password-stdin reads it from a pipe.
share list [--json] / share ls [--json]List links and copy live URLs. A live link shows password when it asks for one, or needs a password when the organization requires one and this link has none. Expired, turned-off, or older links may require a fresh share before you can copy a URL.
share set <share> [--comments off|anonymous|name|name-email] [--password | --password-stdin | --remove-password]Change a live link’s guest-commenting setting, its password, or both in one call. Put the password flags after the link id. The terminal prompts for a commenting mode if no flag is given; scripts must pass a flag. Expired or turned-off links require a fresh share.
share extend <share> [--days <n>]Extend a live link from now, within the organization’s duration limit. Restarts an opted-in expiry reminder. Expired or turned-off links cannot be extended.
share off <share>Turn off a link permanently. A full ID needs no prompt; a partial ID requires interactive confirmation.

<share> is a link id from artor share list, or a unique prefix of one (at least four characters, resolved against the linked prototype’s own links). A full id works from anywhere.

A live link’s guest-commenting mode and its password are changeable from either surface: share set here, or Edit on the link’s row in the dashboard’s Public sharing panel. Whether signed-in members see the review widget can be set when you create the link (the dashboard’s “Show the review widget” switch, or --hide-widget here), and changed later in that same Edit dialog. Allow new comments and repointing a link to another version stay dashboard-only, in that same Edit dialog.

share set needs a current CLI. Run artor update if the command isn’t recognised.

A public link can ask visitors for a password before it opens. Add one when creating the link, or set, change, and remove it later:

artor share add --password # prompts, hidden, typed twice printf %s "$LINK_PASSWORD" | artor share add --password-stdin artor share set <share> --password # change a live link's password artor share set <share> --remove-password # remove it

A password is never a flag value: --password=secret is refused, so the password can’t land in your shell history or process list. --password prompts for it twice and checks the rules (8 to 128 characters) on the first entry. --password-stdin reads it from a pipe for scripts, dropping one trailing newline.

--remove-password is refused while your organization requires a password on public links. When that requirement is on and you run share add without a password flag, an interactive terminal says so and asks for one, then creates the link. An unattended run stops with an error naming the two flags.

Link passwords require CLI 0.26.0 or newer. Against an older Artor deployment the command exits with an error saying the password was not set, and reports any commenting change that did apply. See Public sharing.

Spaces

A Space decides which organization members can open and work on a group of prototypes. See Spaces.

CommandDescription
space list [--json]List the Spaces you can see.
space create <name>Create a shared Space (Team plan or higher). You become its first admin.
space rename <space> "<new>" Admin access requiredRename a shared Space (Space admin or organization admin).
space read <space> on|off Admin access requiredLet every organization member open and comment on this Space’s prototypes, without being able to change anything. Space admin or organization admin.
space rm <space> [--yes] Admin access requiredDelete an empty shared Space.
space rm <space> --move-to <folder> [--yes] Admin access requiredMove the Space’s prototypes (trashed included) into a folder elsewhere, then delete it.
space members <space>List a shared Space’s members.
space members <space> add <email-or-id> [--role admin|member] Admin access requiredAdd a member or change their role (Space admin or org admin).
space members <space> rm <email-or-id> Admin access requiredRemove a member (Space admin or org admin).

<space> accepts an id, name, or unique part of the name. For space read and space members add|rm, a partial match on a terminal is confirmed with the full Space name before the change. Pre-approved and non-interactive runs require an exact reference. Members are referenced by email or user id; run artor org members for the roster. See Spaces.

Folders

Group prototypes into colored folders within a Space. Folders organize work; Spaces determine access. See Organizing with folders. Folder commands act on the linked folder’s organization — run them inside a folder linked to organization A and you manage organization A’s folders.

CommandDescription
folder list [--space <name|id>] [--json]List folders and how many prototypes each holds.
folder create [<name>] [--color <c>] [--space <name|id>]Create a folder (prompts if omitted). A duplicate name or the reserved name Draft is rejected.
folder rename <name|id> "<new>"Rename a folder (Draft can’t be renamed).
folder color <name|id> [<color|none>]Set or clear a folder’s color.
folder move [<project>] [<folder>] [--space <name|id>]Move a prototype into a folder, optionally in another Space.
folder rm <name|id> [--with-content] [--yes]Delete a folder; prototypes move to Draft, or with --with-content Admin access required are trashed too.
folder clear <name|id> [--yes] Admin access requiredTrash every prototype in a folder, keeping the folder.

A folder is referenced by id or name, a prototype by id, slug, or name. Both accept a unique partial match, and --space <name|id> scopes list / create / move to another Space. folder rm and folder clear require an exact folder reference when run with --yes or without a terminal. See Organizing with folders.

Env vars

Set configuration for the organization, a project, or one version. A linked folder defaults to project scope. Values marked --local can be downloaded; server-only values cannot. See Environment variables for how to choose and use them.

Organization set / rm require an owner or admin. Project/version changes require a publisher seat and permission to edit that Space. Members can list names for prototypes they can access. Pulling project values requires a publisher with source access; any member can pull organization-wide local values.

CommandDescription
env set KEY=VALUE [--local] [--scope org|project|version] [--version <ref>]Set a value. Project is the default scope in a linked folder. --local also allows env pull to write it to your machine.
env set KEY --stdin [--local] [scope flags]Read the value from a pipe so it does not appear in shell history, for example printf %s "$SECRET" | artor env set API_TOKEN --stdin.
env list [--scope org|project|version] [--version <ref>] [--json]List names and whether values can be downloaded; values are never shown.
env rm KEY [--scope org|project|version] [--version <ref>]Remove a variable at the selected scope.
env pullDownload the linked project’s local configuration to ./.env.local. From an unlinked folder, pull the organization values. Scope flags are not accepted.

Use --scope org for organization values and --version <ref> for one version. Prefer --scope org over the deprecated bare --org. See Environment variables.

Mock datasets

Add sample data for the organization, a project, or a version. Published versions keep their data when organization/project defaults change; explicit version edits change the selected version. See Mock datasets.

Organization writes require an owner or admin. Project/version writes require a publisher seat and permission to edit the prototype’s Space. Members can read and compare datasets for prototypes they can access.

CommandDescription
mock set <name> <file.json> [--scope org|project|version] [--version <ref>]Upload or replace the mock at the selected scope (project by default).
mock list [--scope org|project|version] [--version <ref>] [--json]List mock names, sizes, and timestamps — never the bodies.
mock rm <name> [--scope org|project|version] [--version <ref>]Remove the mock at the selected scope.
mock revisions <name> [--scope org] [--json]Show a name’s edit history. Project (default) or organization scope; --version isn’t supported.
mock pin <name> <sha> --version <ref>Repoint a published version’s mock to an existing revision — no republish.
mock pullDownload project data to ./mocks/*.json. Matching local files that differ are overwritten.
mock status [--json]Compare local and saved data without changing files.
mock promote <name> [--ref <r>] Admin access requiredMake a version’s bundled dataset an organization default. Owner/admin with a publisher seat required.

Use --scope org for shared organization data; the bare --org selector is deprecated. pull, status, and promote use the linked project and take no scope flag. promote selects its source version with --ref. See Who can do what.

Org skills

Share instructions with your team’s AI tools. The commands marked with a lock use the default admin-only setting; an admin can allow all members to manage skills and templates. See Org skills.

CommandDescription
skill add <gh-url> [--name X] [--ref <r>] [--credential <t>] [--enforced] Admin access requiredAdd shared instructions from GitHub. --enforced makes them mandatory. Private sources require --credential or ARTOR_GITHUB_TOKEN; the saved token is not shared with teammates.
skill list [--json]List organization skills.
skill enforce <name> [--off] Admin access requiredToggle a skill as organization-mandated.
skill pin <name> [--yes] Admin access requiredUpdate a skill to its latest version.
skill rm <name> [--yes] Admin access requiredRemove a skill from the whole organization. Confirms first; --yes is required without a terminal.
skill sync [--force]Download shared skills. Optional local edits are kept unless --force is used; mandatory skills always overwrite local edits.

Starter templates

CommandDescription
template push --name X [--slug y] [--desc z] Admin access requiredStore the current directory as an organization template.
template listList organization templates.

Use a template: artor init --template <slug>.

Usage

CommandDescription
usage [--org <ref>] [--json] Admin access requiredShow the organization’s plan and its storage, publisher seats, and public link views against the plan’s limits. Owner/admin only.

Without --org, this uses the linked folder’s organization or your saved default. Storage measurements are periodic; check the reading’s age. The same figures appear in Settings → Usage. See Usage.

Private registry

Map private packages to your organization. See Private registry.

CommandDescription
registry add <@scope> --type azure|npmjs [--uplink <url>] [--token <t>] [--name <label>] [--expires <date>] Admin access requiredMap a package scope to a private source. --name sets a display label; --expires <YYYY-MM-DD> records when the upstream token lapses. The token can also come from $ARTOR_REGISTRY_TOKEN.
registry list [--json]List configured scopes.
registry loginConfigure your machine to install scoped packages through Artor.
registry rm <@scope> Admin access requiredRemove a mapping.

Unlinking a folder

artor unlink removes the local setup that init / link wrote. It never deletes your code, and it never touches the server project (use artor rm for that).

FlagEffect
(none, on a terminal)Interactive checklist (below).
--link-onlyRemove only the project link.
--skillsRemove only the synced organization skills (.claude/skills/org/).
--npmrcStrip only the managed .npmrc registry block.
--allRemove all three in one shot.

Flags combine — --skills --npmrc strips skills and the managed .npmrc block while keeping the project link. With no flags on a terminal, a checklist lets you choose (the project link is pre-checked; skills and .npmrc appear only if present). With no flags and no terminal, it removes just the project link.

Organization context

When you belong to more than one organization, commands choose the target in this order:

  1. --org <ref> on the command line.
  2. The organization stamped into the folder’s link by init / link.
  3. Your saved default (artor org use).
  4. The organization you were in when you logged in.

status and whoami report the active organization, the one commands will use, together with your role. The organization used when you logged in is shown only when it differs.

Commands that act on the linked folder use that folder’s organization. Commands that target something by reference, including remix, pull --project, restore, rm <ref>, rename <ref>, trash, and usage, also accept --org <ref>. Without it they follow the same order above, including the linked folder before the saved default.

If the active organization is stale or you are no longer a member, run artor org list, then use artor org use <ref>, pass --org <ref>, or re-point the folder with artor link --org <ref> <id|slug> --force.

Your token

Your login token is stored securely on your computer. Treat it like a password. artor logout signs out locally; revoke the token under Settings → CLI tokens to stop it working everywhere.