Commandes
Voici la référence complète des commandes de copera, regroupées par domaine. Lancez copera <command> --help pour la liste complète des flags et des exemples pour n'importe quelle commande.
La plupart des commandes acceptent --json pour une sortie lisible par machine, et la CLI bascule automatiquement en JSON lorsque stdout est pipé ou redirigé. Voir Formats de sortie.
Flags globaux disponibles sur chaque commande : --token, --profile, --json, --output auto|json|table|plain, --quiet/-q, --no-input, --verbose.
Auth
copera auth login # flux guidé dans le navigateur
copera auth login --token=cp_pat_xxx # enregistre un token directement
copera auth login --token # invite de collage masquée, sans navigateur
copera auth status # profil actif + origine du token
copera auth whoami # à qui appartient le token
copera auth logout # supprime l'identifiant stocké
Voir Authentification pour les types de tokens et les modes de connexion.
Boards
copera bases est un alias intégré de copera boards — utilisez celui qui vous semble le plus naturel.
copera boards list
copera boards list --query "roadmap" # recherche par nom ou description
copera boards get <board-id>
copera boards create --name "Q3 Roadmap"
copera boards create --name "CRM" --description "Sales pipeline" \
--table-name "Leads"
copera boards update <board-id> --name "Q3 Launch Plan"
copera boards update <board-id> --description "Updated plan" --icon "🚀"
copera boards delete <board-id> --force
copera boards participants add --board <board-id> \
--participant <user-or-team-id> --participant <another-id>
copera boards participants remove <participant-id> --board <board-id> --force
La CLI installée v0.15.0 crée un board avec une table initiale, mais sa commande boards create n'accepte pas de blueprint de colonnes personnalisées. La Public API plus récente, les outils MCP hébergés et Ask Copera peuvent créer le board et jusqu'à 32 colonnes personnalisées de façon atomique, et renvoyer les vrais IDs de colonnes et d'options. La saisie de blueprint atomique est prévue pour une future version de la CLI ; il n'y a pas de flag --columns en v0.15.0.
[
{
"_id": "64a1b2c3d4e5f6a7b8c9d0e1",
"name": "Engineering Roadmap",
"description": "Track features, bugs, and milestones across the engineering team.",
"createdAt": "2025-03-10T09:15:42.301Z",
"updatedAt": "2026-02-18T11:30:05.128Z"
}
]
Tables
copera tables list --board <board-id>
copera tables list --board <board-id> --query "tasks"
copera tables get <table-id> --board <board-id>
copera tables create --board <board-id> --name "Campaigns"
copera tables update <table-id> --board <board-id> --name "Launch Campaigns"
copera tables delete <table-id> --board <board-id> --force
Chaque table inclut son schéma de colonnes complet — columnId, label et type, plus options pour les colonnes STATUS et DROPDOWN. Utilisez tables get pour découvrir les IDs de colonnes et d'options dont vous avez besoin avant de créer ou mettre à jour des lignes.
Colonnes
copera tables columns add --board <board-id> --table <table-id> \
--label "Priority" --type STATUS \
--option "Low:green" --option "High:red"
copera tables columns update <column-id> --board <board-id> --table <table-id> \
--label "Stage"
copera tables columns update <column-id> --board <board-id> --table <table-id> \
--add-option "Blocked:red"
En CLI v0.15.0, --option et --add-option sont répétables et acceptent "Label" ou "Label:color". La CLI liste actuellement TEXT, PARAGRAPH, NUMBER, MONEY, DATE, EMAIL, PHONE, WEBSITE, CHECKBOX, STATUS, DROPDOWN, LABELS, USERS, LOCATION, DESCRIPTION et FILE pour --type.
La Public API prend en plus en charge les colonnes CHECKLIST et les formats DATE DATE_ISO et DATE_TIME_ISO. Ces entrées sont un suivi CLI : la v0.15.0 ne liste pas CHECKLIST et n'expose pas de flag de format DATE.
Exporter une table
copera tables export <table-id> --board <board-id> --view <view-id> \
--format CSV -o out.csv
--view est requis et exporte les lignes dans la même forme qu'une vue enregistrée. --format accepte CSV, XLSX, JSON, MARKDOWN, HTML, PDF, ZIP et ICS. -o/--output-file écrit vers un chemin (défaut : stdout ; - signifie aussi stdout).
Lignes
La CLI expose le cycle de vie complet d'une ligne — list, get, create, update, delete — plus les commentaires, pièces jointes, cellules rich-text et l'authentification de ligne.
copera rows list --board <board-id> --table <table-id>
copera rows list --board <board-id> --table <table-id> --query "oauth"
copera rows get <row-id> --board <board-id> --table <table-id>
copera rows create --board <board-id> --table <table-id> \
--data '{"columns":[{"columnId":"<column-id>","value":"Hello"}]}'
copera rows update <row-id> --board <board-id> --table <table-id> \
--data '{"columns":[{"columnId":"<column-id>","value":"Updated"}]}'
copera rows delete <row-id> --board <board-id> --table <table-id> --force
--query recherche dans les colonnes visibles et non-password de la table.
Descriptions et cellules rich-text
Les lignes ont deux surfaces de texte long distinctes :
- Description fixe héritée de la ligne — affichée par
rows getcommeDescription (legacy). Utilisezrows descriptionpour la lire. Sa mise à jour n'est plus prise en charge par la CLI. - Cellules de colonnes RICH TEXT / DESCRIPTION — colonnes modernes de texte long. Une table peut en avoir plusieurs, donc ciblez-en une avec
--column <column-id>.
# Lire la description héritée de la ligne
copera rows description <row-id> --board <board-id> --table <table-id>
# Lire une cellule de colonne RICH TEXT / DESCRIPTION
copera rows column-content <row-id> --board <board-id> --table <table-id> \
--column <column-id>
# Écrire une cellule de colonne RICH TEXT / DESCRIPTION
copera rows update-column-content <row-id> --board <board-id> --table <table-id> \
--column <column-id> --content "# Notes"
update-column-content prend en charge --operation replace (défaut), append ou prepend. Pour trouver l'ID d'une colonne de table nommée Description, lancez copera tables get <table-id> --board <board-id> --json.
Commentaires
copera rows comment <row-id> --board <board-id> --table <table-id> \
--content "Looks good"
copera rows comments <row-id> --board <board-id> --table <table-id>
Pièces jointes
Téléchargez des pièces jointes depuis des colonnes FILE ou depuis des commentaires :
# Depuis une colonne FILE
copera rows attachments download <row-id> --board <board-id> --table <table-id> \
--column <column-id> --file <file-id> -o ./contract.pdf
# Depuis un commentaire
copera rows comments attachments download <row-id> --board <board-id> --table <table-id> \
--comment <comment-id> --file <file-id> -o ./contract.pdf
Authentifier une ligne
Vérifiez une paire identifiant/mot de passe contre les colonnes correspondantes d'une ligne (par exemple une table d'identifiants) :
copera rows authenticate --board <board-id> --table <table-id> \
--identifier-column <column-id> --identifier-value "[email protected]" \
--password-column <column-id> --password-value "secret"
Prise en charge de stdin
rows create, rows comment et rows update-column-content lisent depuis stdin lorsque leur flag de contenu est omis :
echo '{"columns":[{"columnId":"<column-id>","value":"Hello"}]}' \
| copera rows create --board <board-id> --table <table-id>
echo "Looks good" \
| copera rows comment <row-id> --board <board-id> --table <table-id>
echo "# Notes" \
| copera rows update-column-content <row-id> --board <board-id> --table <table-id> \
--column <column-id>
Docs
Les commandes docs exigent un Personal Access Token (cp_pat_...).
copera docs tree
copera docs tree --parent <doc-id> # sous-arbre sous un doc
copera docs search "keyword"
copera docs get <doc-id> # métadonnées
copera docs content <doc-id> # corps en Markdown
copera docs content <doc-id> --no-cache # ignore le cache local
copera docs create --title "New Doc" --content "Initial content"
copera docs update <doc-id> --content "Replacement content"
copera docs update <doc-id> --operation append --content "More content"
copera docs metadata <doc-id> --title "New title"
copera docs delete <doc-id> --force
docs update --operation accepte replace (défaut), append ou prepend. Les mises à jour de contenu sont traitées de façon asynchrone — l'API accepte la requête et l'applique peu après. docs create et docs update lisent tous deux depuis stdin lorsque --content est omis :
cat ./notes.md | copera docs create --title "Q2 Strategy"
cat ./report.md | copera docs update <doc-id>
Drive
Les commandes drive exigent un Personal Access Token avec accès au drive.
copera drive tree
copera drive tree --parent <folder-id> # sous-arbre sous un dossier
copera drive tree --depth 5 # contrôle la profondeur d'imbrication (1-10, défaut 3)
copera drive search "quarterly report"
copera drive get <file-id>
copera drive download <file-id> -o report.pdf
copera drive upload ./report.pdf --parent <folder-id>
copera drive upload ./project/ --parent <folder-id> # envoi récursif d'un répertoire
copera drive mkdir "New Folder"
copera drive mkdir "Sub Folder" --parent <folder-id>
Les envois prennent en charge le transfert multipart, l'envoi récursif de répertoire (la structure de dossiers correspondante est créée automatiquement), et une barre de progression dans les terminaux interactifs. Ajustez-les avec --chunk-size <bytes> (défaut 10 Mo) et --concurrency <n> (défaut 4). download écrit dans le répertoire courant sauf si vous passez -o/--dest.
Channels
copera channels list
copera channels list --query "deploy" # nom, description ou participant
copera channels list --type <type> # filtrer par type de channel
copera channels list --kind dm --participant <user-id>
copera channels message send "Hello" --channel <channel-id>
copera channels message send "Hello" --user <user-id> # DM par ID utilisateur
echo "Deploy done" | copera channels message send --channel <channel-id>
channels list --kind accepte group ou dm. Pour envoyer un message direct, utilisez channels message send avec --user <user-id> au lieu de --channel — Copera réutilise le channel DM existant s'il y en a un. Les messages prennent en charge le Markdown (titres, gras/italique, listes, blocs de code, citations, liens) :
copera channels message send "## Build Report
* **Status:** Success
* **Duration:** 3m 42s
> All tests passed." --channel <channel-id>
Workspace
copera workspace info # métadonnées du workspace
copera workspace members # membres du workspace
copera workspace teams # équipes du workspace
Ces commandes exigent un Personal Access Token.
Search
Recherchez parmi les types de ressources. --type est répétable pour affiner les résultats :
copera search "contract"
copera search "contract" --type document --type driveContent
Exige un Personal Access Token.
Notifications
copera notifications list
copera notifications read <notification-id>
copera notifications unread <notification-id>
copera notifications delete <notification-id> --force
Exige un Personal Access Token.
Cache
La CLI met en cache le contenu des documents en local pour des lectures plus rapides.
copera cache status # taille, nombre de fichiers et chemin du cache
copera cache clean # vide le cache
Utilisez copera docs content <id> --no-cache pour ignorer le cache pour une seule lecture sans le vider.
Utilitaires
copera version
copera version --json
copera update # met à jour vers la dernière version
copera update --version 1.2.0 # fige une version précise
copera update --force # saute l'invite de confirmation
copera completion bash
copera completion zsh
copera completion fish
Pipez la sortie de completion dans le fichier de démarrage de votre shell pour activer la complétion par tabulation :
copera completion zsh >> ~/.zshrc # zsh
copera completion bash >> ~/.bashrc # bash
copera completion fish > ~/.config/fish/completions/copera.fish # fish
Redémarrez votre shell ou exécutez source ~/.zshrc (ou équivalent) pour activer.
Articles associés
- Authentification — types de tokens et flux de connexion.
- Configuration — profils, IDs par défaut et variables d'environnement.
- Référence de la Public API — les endpoints REST derrière chaque commande.