La CLI arclip
arclip met un projet dans un terminal. Un agent que vous utilisez déjà — Claude Code, Codex,
Cursor — construit la scène avec les mêmes outils que l'assistant de l'éditeur, et vérifie son
propre travail avant de vous dire qu'il a terminé. Les scripts et la CI utilisent les mêmes
commandes.
Chaque commande correspond à un appel au serveur MCP : la CLI ne peut donc rien faire que les outils de l'éditeur ne sachent faire, et ne s'en écarte jamais.
Installation
npm i -g arclip
Il faut Node 18 ou plus récent. arclip render --real demande en plus Node 22 et Google Chrome ou
Chromium sur la machine.
Démarrage rapide
arclip login # sign in once, in the browser
arclip link <project-id> # in your folder: set it up for agents
arclip dev # a QR code — the live draft on your phone
claude # or codex, or Cursor — ask for the scene
arclip verify && arclip render -o shot.png
arclip publish # when you are happy
arclip projects liste les projets que vous pouvez ouvrir. L'identifiant est aussi la dernière
partie de l'adresse de l'éditeur : editor.arclip.design/project/<project-id>.
Se connecter
arclip login ouvre votre navigateur sur la même page de permissions que celle que reçoit un
client MCP. Décochez ce que vous ne voulez pas accorder, appuyez sur Allow, et la CLI reçoit un
jeton. arclip login --token arclip_… enregistre à la place un jeton que vous avez créé vous-même ;
--no-browser se contente d'afficher l'adresse, à ouvrir dans un navigateur sur la même machine.
Le jeton est conservé dans votre configuration utilisateur (~/.config/arclip), lisible par vous
seul, et n'est jamais envoyé qu'au serveur qui l'a émis. arclip whoami affiche le compte, le
serveur et les permissions utilisés ; arclip logout oublie le jeton. Vous pouvez le révoquer à
tout moment dans votre compte, sous API & MCP.
Ce que met en place arclip link
Lancez la commande dans n'importe quel dossier — un nouveau, ou votre dépôt existant :
| Fichier | À quoi il sert |
|---|---|
.arclip/project.json | à quel projet appartient ce dossier — vous pouvez le commiter sans risque |
CLAUDE.md | la routine de l'agent : construire, vérifier, faire un rendu, lancer un playtest, rendre compte — et ne jamais publier sans qu'on le lui demande |
.mcp.json | le serveur MCP d'AR Clip, lancé via la CLI et épinglé à ce projet ; aucun jeton à l'intérieur |
.claude/settings.json | permet à l'agent de lire cette documentation et de lancer les vérifications en lecture seule sans demander ; la publication, elle, demande confirmation |
Les fichiers que vous avez déjà sont fusionnés, pas écrasés ; un CLAUDE.md existant est conservé,
sauf si vous passez --force.
arclip clone <project-id> [folder] fait de même dans un nouveau dossier, et rapatrie les scripts
et les cartes UI du projet sous forme de fichiers.
Les scripts et les cartes UI comme fichiers
arclip pull # server → folder: scripts/**/*.ts and ui/**/*.json
arclip diff # what you changed, line by line
arclip push # folder → server
push compile d'abord chaque script, et n'envoie rien si le projet a changé sur le serveur depuis
votre dernier pull — faites un pull, regardez la différence, puis poussez à nouveau (--force
écrase). Les nouveaux fichiers sont créés sur le serveur ; supprimer un fichier en local ne le
supprime pas là-bas. pull laisse intact un fichier modifié des deux côtés et vous le signale.
La scène elle-même — objets, composants, événements — reste sur la plateforme, où plusieurs personnes la modifient ensemble ; elle n'est pas rapatriée sous forme de fichiers.
Votre scène sur votre téléphone
arclip dev
affiche un lien et un QR code. Scannez-le et le brouillon s'ouvre dans le navigateur du téléphone — sans connexion, sans publication. Le terminal continue de tourner : chaque modification, qu'elle vienne de l'agent ou d'un collègue dans l'éditeur, est signalée et la scène revérifiée, et le téléphone propose la nouvelle version. Une session AR en cours propose de recharger au lieu de remplacer la scène sous vos yeux.
arclip dev --watch pousse aussi scripts/ et ui/ à chaque enregistrement. Le lien expire au
bout de --hours (12 par défaut, 72 au maximum).
Le brouillon s'ouvre dans le navigateur du téléphone, pas dans l'application AR Clip.
Vérifier le travail
| Commande | Ce qu'elle vous dit |
|---|---|
arclip verify | ce qui s'enregistre sans erreur mais échoue en silence dans le lecteur — fichiers manquants, événements inconnus, scène sombre |
arclip render | un PNG dessiné sur le serveur : disposition, échelle, couleurs, textures |
arclip render --real | le runtime publié dans un Chrome headless sur votre machine — exactement ce que voit un visiteur |
arclip playtest | exécute les scripts et la physique, et actionne chaque commande qu'il trouve |
arclip test | exécute vos scénarios scriptés, tests/*.flow.json |
Chacune se termine avec le code 1 en cas d'échec : un agent — ou la CI — peut donc s'arrêter dessus.
render accepte --view front|side|back|top|three-quarter, --entity <id> pour cadrer un seul
objet, --size 960x720 et -o file.png. Le rendu côté serveur ne dessine ni les scripts, ni les
cartes UI, ni les effets ; --real, si, pour les scènes 3D et Surface. Les scènes qui démarrent
depuis une caméra — marqueurs, visages, VPS — demandent un appareil.
playtest et test jouent la scène dans l'éditeur : le projet doit donc être ouvert dans un
onglet du navigateur.
Tests scriptés (flows)
Un flow est un scénario avec ses résultats attendus, un par fichier dans tests/. arclip link en
ajoute un pour démarrer.
{
"name": "door opens",
"steps": [
{ "frames": 30 },
{ "tap": "Door button" },
{ "wait": 500 },
{ "expect": { "target": "Door", "position": { "x": 1.2, "tolerance": 0.05 } } },
{ "key": "KeyW", "ms": 400 },
{ "expect": { "target": "Player", "moved": true } },
{ "ui": "HUD", "action": "restart" },
{ "expect": { "noCrashes": true } }
]
}
| Étape | Fait |
|---|---|
frames | avance d'autant de ticks |
wait | avance d'autant de millisecondes |
key + ms | maintient une touche, puis la relâche |
tap | touche un objet |
ui + action | déclenche une action sur une carte UI |
input + target, payload | envoie n'importe quel déclencheur de script |
expect | vérifie exists, visible, position, moved, un champ de component, ou noCrashes |
Les cibles sont des noms d'objets tels que l'éditeur les affiche, ou des identifiants. Chaque flow s'exécute sur une copie neuve de la scène, et le temps n'avance que par pas fixes de 1/60 s — un flow qui passe une fois passe à chaque fois.
arclip test les exécute tous ; arclip test "door opens" n'en exécute qu'un.
Publier et héberger vous-même
arclip publish publie et affiche le lien et un QR code ; il demande d'abord confirmation (--yes
en CI). arclip status affiche les scènes et l'état de publication ; arclip open ouvre le lien
publié.
arclip export site && arclip serve site
export écrit un seul dossier — index.html, la scène en project.json, chaque fichier qu'elle
utilise, les polices et le lecteur — qui tourne depuis n'importe quel hébergement statique : votre
propre serveur, S3, un intranet. Seuls les glyphes de secours pour les écritures que les polices ne
couvrent pas (CJK, arabe, …) viennent encore du CDN d'AR Clip. Les assets de la bibliothèque
partagée conservent leurs conditions de licence.
Agents et autres clients MCP
arclip mcp serve est un pont local vers le serveur MCP, épinglé au projet lié — c'est ce que
lance .mcp.json. arclip mcp config affiche cette entrée, pour un client qui tient sa propre
liste.
N'importe quel outil est à une commande près :
arclip tools # what this account can call
arclip call get_entity '{"entityId":"…"}' # arguments as JSON, or "-" for stdin
Scripts et CI
- Le résultat va sur stdout, les diagnostics sur stderr ;
--jsonrend chaque résultat lisible par une machine. - Le code de sortie
0signale un succès,1une vérification ou un outil en échec,2un problème d'utilisation ou de connexion. - La CI n'a pas besoin de se connecter — placez un jeton et un projet dans l'environnement :
export ARCLIP_TOKEN=arclip_…
export ARCLIP_PROJECT=<project-id>
arclip verify --json
arclip render --view top -o top.png
ARCLIP_API pointe la CLI vers un autre serveur, comme --api. -p, --project et --space
choisissent le projet et la scène pour une seule commande.
Limites
- La scène vit sur la plateforme ; les scripts et les cartes UI sont les seules parties que vous travaillez sous forme de fichiers.
playtestettestdemandent que le projet soit ouvert dans un onglet de l'éditeur, y compris en CI.arclip renderest un aperçu ; utilisez--real, ou un appareil, quand le rendu exact compte.- Ce qu'un agent peut faire suit les permissions de votre jeton et votre offre. La génération par IA dépense les crédits de votre équipe, comme dans l'éditeur.
Suite : À quoi servent les agents ici